用汇编语言编写一个多字节非压缩BCD减法程序。要求显示被减数、减数及结果有谁会做的吗
1个回答
2017-12-30 · 知道合伙人互联网行家
关注
展开全部
;经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
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
更多追问追答
追问
大佬
能发电子档不
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询