计算的结果差1,请问是什么原因?
本帖最后由 aliyes 于 2012-1-15 13:56 编辑我的问题有两个,第一是把FFFFH赋值给AX,使用MASM编译时会爆错,反正编译不成功,换成十进制的65535却可以。请高手们解答下
第二个问题,add ax, 的和应该是2F31 但是AX寄存器的值是2F30 最后结果差1。。。
http://www.ouliu.net/r/20120115135533f8l2g.jpg
http://www.ouliu.net/r/201201151357306ubgp.jpg
assume cs:cod
cod segment
ks:mov ax,65535
mov ds,ax
mov bx,6
add ax,
add ax,
add ax,
mov ax,4c00H
int 21H
cod ends
end ks
FFFFH 前面加0来没有 十六进制数值的第一位必须为 数字 0ffffh
add ax, 第一步时 ax=0ffffh数据段内存 ffff:6地址的数据为2f31h ax=0ffffh+2f31h=2f30h 进位给CF
谢谢小马的解答,明白了。。。。 1楼正解!!!! 小马过河 发表于 2012-1-15 16:50 static/image/common/back.gif
FFFFH 前面加0来没有 十六进制数值的第一位必须为 数字 0ffffh
add ax, 第一步时 ax=0ffffh数 ...
你这头像是韩国妞吧,我有点hold不住啊 seuer126 发表于 2012-1-16 11:47 static/image/common/back.gif
你这头像是韩国妞吧,我有点hold不住啊
不要被头像所迷惑
页:
[1]