初学汇编小程序

2025-05-16 12:32:46
推荐回答(3个)
回答(1):

这是一个bcd码转ASCII的.
----------------------
BCD码,本身就是十进制数,不用转换,也无法转换;
这是一个BCD码转ASCII的程序。

回答(2):

DSEG SEGMENT
BCD DB 86H
ASCLL DB 2 DUP(0)
DSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG ;原本DS DSEG间少了冒号:
START: MOV AX ,DSEG
MOV DS ,AX
MOV AL,BCD
AND AL,0FH
ADD AL,30H

MOV ASCLL+1,AL
MOV AL,BCD
MOV CL,4
SHR AL,CL
add al,30h ;少了这句
MOV ASCLL,AL
;------可以用一下循环来验证ASCII是否正确
mov ah,02h
mov cx,02
lea di,ascll
l1: mov dl,[di]
int 21h
inc di
loop l1
;---------------------
MOV AH,4CH
INT 21H
CSEG ENDS
END START

回答(3):

你的程序应该是将BCD码转化成ASCII代码,以便之后输出吧!
如果是这样,那应该改成
SHR AL,CL
ADD AL,30H
MOV ASCII,AL
另外,你的开头
ASSUME CS:CSEG,DS:DSEG
你少写了一个冒号