请懂程序的人告诉一下以下程序每一步什么意思,非常感谢,时间紧急,请尽快回答!!!!
发布网友
发布时间:2022-11-28 23:03
我来回答
共1个回答
热心网友
时间:2023-10-24 16:23
DATAS SEGMENT //数据段
data1 db '22+20=','$' //字串
data2 db 4 p(?) ,'$'
DATAS ENDS
CODES SEGMENT //代码段
ASSUME
CS:CODES,DS:DATAS //段寄存器初始值
START:
MOV AX,DATAS //把数据段付给DS
MOV DS,AX
mov dx,offset data1 //字串指针
mov ah,9
int 21h //调用DOS中断显示算式字串
lea di,data1
lea si,data2
;mov ah,0
mov al,[di+1] //低位做加法
add al,[di+4]
aaa
mov [si+2],al //存结果
;add [di+2],30h
mov al,[di] //高位做加法
adc al,[di+3]
;add al,ah
;mov ah,0
aaa //调整10进制运算结果
mov [si+1],al
;add [si+1],30h
mov al,0
adc al,0
aaa
mov [si],al
;add [si],30h
add [si+2],30h //结果值转换为对应数字的ascii码
add [si+1],30h
add [si],30h
lea dx,data2 //显示结果字串
mov ah,9
int 21h
MOV AH, 4CH
INT 21H //带返回码结束程序
CODES ENDS
END START