用非压缩型BCD码进行以下运算:73621-4203,显示结果,要求数据按照低位存放在高地址字节

来源:百度知道 编辑:UC知道 时间:2024/06/02 13:21:41
此题应该要用到位移量和借位符号,比起多位加法比较难,请各位高手指点。
这位大虾,大体上我能看得懂,但能不能在旁边加上详细的注释呢,我刚学汇编,跟我的一些知识还是有出入,谢谢,如果可以,我会追加分数的!!! 呃噢,那好吧,这位大虾好像不在,那就这样吧。

;经DEBUG调试结果正确:73621-4203=69418
code segment
assume cs:code
org 100h
start:
push cs
pop ds
push cs
pop es
lea dx,Str ;显示算式
mov ah,9
int 21h
clc
lea si,BCD1[4];定位被减数地址
lea di,BCD2[4];定位减数地址
mov cx,5 ;共5位
Q1:mov al,[si];取一数
sbb al,[di];减
das ;BCD校正
mov [si],al ;存差值
dec si
dec di
loop Q1 ;下一位
cld
lea si,BCD1
mov di,si
mov cx,5
Q2:lodsb
and al,0fh ;清除字节高4位
stosb
or al,30h
mov ah,0eh
int 10h ;显示结果
loop Q2
mov ah,0
int 16h
mov ah,4ch
int 21h
Str db '73621-4203 = $'
BCD1 db 7,3,6,2,1
BCD2 db 0,4,2,0,3

code ends
end start