汇编语言,将一个BCD码拆成两个字节,如何编程

汇编语言,将一个BCD码拆成两个字节,如何编程,第1张

bcd码相减等于加上减数的补数。如55-22

就是55+(100-22)=133,丢掉进位之后,就能得到正确的结果。由于影响进位,因此cy会变为1的。

具体程序如下:

clr

c

mov

a,

#9ah

做100-22的减法

subb

a,

#22h

add

a,

#55h

da

a

整型 int 一般是4字节(32位系统)呢?

建议,你用字符指针,访问整数首地址,看看能不能读取成功,如果可以,那就可以解决了。

关键看看 char *能不能读取!!!

您的“把十进制数20载入26H”这个说法有些糊涂。

数的本身是无所谓“进制”的。一个数就是一个数,所谓“进制”只不过是一种表示方式而已。

您的这一条指令,不过就是把“这个数”送入26H单元。

这个指令中,数字20,只不过是您的程序里写成10进制的样子了,但并不是要求CPU也按照“这个样子”来载入存储单元。

这个指令中,你把20改写成14H,CPU来说,含义完全一样。因为这仍然是同一个数。这个数如果化为二进制就是00010100。

至于CPU实际载入存储单元时只可能是按二进制:00010100。

所谓“字节”,就是指8位二进制的存储单元存放的数据。

一般说一个字节的高四位、低四位,都是指二进制形式中的位。

所以,您的题目中的措辞“十进制字节的高四位与低四位”非常糊涂。

何谓“十进制字节”?何谓“位”?是哪个进位制的“位”?

顺便指出:楼上DMF_WYW的解答,是“二进制的高四位与低四位”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11581567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存