高分跪求汇编语言8位(4字节)压缩BCD码加、减法程序!

程序要完整,注释请务必详细。在此先行谢过,一经采纳,还有加分送上!是使用8086/8088的汇编语言。... 程序要完整,注释请务必详细。
在此先行谢过,一经采纳,还有加分送上!
是使用8086/8088的汇编语言。
展开
 我来答
汤旺河边
2009-10-21 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2675
采纳率:0%
帮助的人:2960万
展开全部
; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
BCD_1 db 56h,23h,62h,19h
BCD_2 db 38h,96h,27h,49h
BCD_Add db 4 dup(?) ;预留相加结果存储单元
BCD_Sub db 4 dup(?) ;预留相减结果存储单元
Start: push cs
pop ds ;使数据段与代码段同段
push cs
pop es ;使附加段与代码段同段
; -------------------------------------
; 压缩BCD码加法
mov si,3 ;数组下标初值
lea di,BCD_Add[3] ;相加结果存储单元起始地址
mov cx,4 ;4字节
std
clc ;清进位标志
@@Add: mov al,BCD_1[si] ;读取1位被加数
adc al,BCD_2[si] ;带进位加法
daa ;十进制数加调整指令DAA(Decimal Adjust After Addition)
stosb ;保存相加结果
dec si ;下标减1
loop @@Add
; -------------------------------------
; 压缩BCD码减法
mov si,3 ;数组下标初值
lea di,BCD_Sub[3] ;相减结果存储单元起始地址
mov cx,4 ;4字节
clc ;清进位标志
@@Sub: mov al,BCD_1[si] ;读取1位被减数
sbb al,BCD_2[si] ;带借位减法
das ;十进制数减调整指令DAS(Decimal Adjust After Subtraction)
stosb ;保存相减结果
dec si ;下标减1
loop @@Sub
; -------------------------------------
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式