汇编 进制转换

来源:百度知道 编辑:UC知道 时间:2024/06/15 00:46:59
制作十进制转化十进制程序,要求输入十进制数,在屏幕输出十六进制结果.

提示: 1) 键盘输入功能

MOV AH, 1

INT 21H

注: 输入字符的ASC码值在AL 中.

2) 显示十六进制数 A~F 的 ASC 码 为 41H~46H

DATAS SEGMENT
num dw 0;存入输入的整数
str1 db 'input a decimal number: $'
str2 db 0ah,0dh,'decimal num to hexadecimal num: $'
DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX

lea dx,str1
mov ah,9
int 21h
;***************键盘接收数字转化成十进制
mov bl,10
continue:
mov ah,01
int 21h
cmp al,0dh;回车结束输入
jz exit
sub al,30h
mov cl,al
mov al,byte ptr num
mul bl
and cx,0ffh
add ax,cx
mov num,ax
jmp continue
;***************键盘接收数字转化成十进制
exit:

lea dx,str2
mov ah,9
int 21h

mov cx,0

next:
mov ax,num
mov bl,16
div bl
mov dl,ah
and dx,0ffh
push dx
inc cx
and ax,0ffh
mov num,ax
cm