汇编语言程序设计:一个字的压缩BCD码的减法

如题。本人汇编语言属于白痴级别,由于课程调整,硬是要求学。所以请高人写得尽量详尽,多写提示。非常感谢!!我们做实验的机器字长是8位。并且我们的编程是在DOS状态下输入的,... 如题。
本人汇编语言属于白痴级别,由于课程调整,硬是要求学。所以请高人写得尽量详尽,多写提示。非常感谢!!
我们做实验的机器字长是8位。并且我们的编程是在DOS状态下输入的,也就是说一上来要用A命令指定起始内存位置。比如:a 2000。这道题就是实现一个压缩BCD码的减法,任意的两个数。并且要写出算法。请回答的高手尽量把代码和注释写出来,我便于理解,谢谢了!
展开
 我来答
生生ZDH
2009-09-25 · TA获得超过1404个赞
知道小有建树答主
回答量:562
采纳率:0%
帮助的人:587万
展开全部
压缩的BCD码减法的十进制调整指令是DAS,指令格式为:DAS(隐含对寄存器AL操作) 功能为:如果AL的低四位>09H,或者标志位AF=1,则将AL减06H调整,AF=1;如果AL的高四位>09H,或者标志位CF=1,则将AL-60H调整,CF=1。
纳兰旖儿
2009-09-25 · TA获得超过323个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:328万
展开全部
BCD码貌似不是重点吧~我教材上也只有一小段说明而已~压缩的BCD码剑法的十进制调整指令是DAS~。。。。你题目太笼统了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汤旺河边
2009-09-26 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2675
采纳率:0%
帮助的人:2960万
展开全部
十进制数减法调整指令DAS(Decimal Adjust After Subtraction)

该指令于调整AL的值,该值是由指令SUB或SBB运算两个压缩型BCD码所得到的结果。其调整规则如下:

如果AL的低四位大于9,或标志位AF=1,那么,AL=AL-6,并置AF=1;
如果AL的高四位大于9,或CF=1,那么,AL=AL-60H,并置CF=1;
如果以上两点都不成立,则,清除标志位AF和CF。

经调整后,AL的值仍是压缩型BCD码,即:两个压缩型BCD码相减,并进行调整后,得到的结果还是压缩型BCD码。

指令格式:DAS
受影响的标志位:AF、CF、PF、SF和ZF(OF无定义)

理解十进制数减法调整指令DAS,是解决这个问题的关键。以3546-1978为例,正确结果是1568。指令代码如下:

mov ax,3546h ;一个字的压缩BCD码(被减数)
sub al,78h ;46h-78h
das ;十进制数减法调整
xchg ah,al ;交换寄存器中的数据(因为das指令只能调整AL寄存器的值)
sbb al,19h ;带借位减法
das ;十进制数减法调整
xchg ah,al ;交换回来,实现一个字的压缩BCD码减法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式