就是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的解答,是“二进制的高四位与低四位”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)