编程将寄存器AX中的二进制数转换为ASCII码 结果放在ASCBUF开始的连续5...
发布网友
发布时间:2024-10-23 20:08
我来回答
共1个回答
热心网友
时间:2024-11-06 00:39
;你们老师题目出得不太准确。按所给程序,严格说来,应该是
;把(ax)中的数据,转换为10进制数,各位上的数字以ASCII码值放在ASCBUF中。
dseg segment
ascbuf db 5 dup(0)
dseg ends
assume cs:cseg, ds:dseg
cseg segment
start:
mov ax, dseg
mov ds, ax
mov ax, 0abcdh ; 这个数据你自己定
call bintoasc
mov ah,4ch
int 21h
BINTOASC PROC NEAR
MOV CX,10
LEA SI,ASCBUF+4
BTOA1: CMP AX,10
JB BTOA2
XOR DX,DX
DIV CX
OR DL,30H
MOV [SI],DL
DEC SI
JMP BTOA1
BTOA2: OR AL,30H
MOV [SI],AL
RET
BINTOASC ENDP
cseg ends
end start
----------------------------------------
看来你还没掌握汇编程序的基本结构啊,努力吧,少年。