题目描述:编写一段子程序BINIHEX,完成十六进制的输出,需要输出的书在AX。
分析:数据在寄存器是二进制保存的,每四位对应一位十六进制,可以通过循环移位输出。
代码:
code segment
start:
assume cs:code
main proc far
mov ax,1256
call BINIHEX
mov ah,4CH
int 21h
ret
MAIN ENDP
;=================================
BINIHEX proc near
mov bx,ax
mov cH,4 ;循环次数
L:
MOV CL,4
rol bx,CL
mov dl,bl
and dl,0FH ;保留最低四位
cmp dl,10 ;判断是否小于10
jb next
add dl,7H ;大于10(A..F),多加7
next:
add dl,30H ;输出
mov ah,02h
int 21h
DEC CH
JNZ L
ret
BINIHEX ENDP
code ends
end start