题目:把一个65535以内的十进制数转换成十六进制形式,并送显示,如:
输入 65535
输出 FFFF
6楼的大哥写的都对,但我是初学者,看不大懂,有哪位能帮我解释下?拜托了~!
[此贴子已经被作者于2006-12-10 21:15:22编辑过]
code segment
assume cs: code
org 100h
start:
MOV bx, 0
input : MOV ah, 01
int 21h ;
; cmp al, 65H
; JZ EXIT
cmp al, 0dh
jz write ;
sub al, 30h
MOV cl, al
MOV ch, 0
MOV ax, bx
MOV bx, 0ah ;
mul bx
MOV bx, ax
add bx, cx
jmp input
write : MOV dl, 0dh
MOV ah, 02h
int 21h
MOV dl, 0ah
MOV ah, 02
int 21h ; 输出回车和换行
MOV dh, 2 ;
CC : MOV si, 2 ;
BB: MOV AH, 0
MOV AL, BH
MOV CL, 4
SHL AX, CL ;
cmp ah, 10
MOV BH, al
jC disp
add ah, 7
disp: add ah, 30h
MOV dl, ah
MOV ah, 02
int 21h
dec si
mov cx, si
jcxz disp1
jmp bb
disp1 : MOV bh, bl
dec dh
jnz cc
EXIT: MOV AH, 1
INT 21H
MOV AH, 4CH
INT 21H
code ends
end start