关于jmp指令!!!求助
如果有一个jmp指令 机器码是F6EB即跳到偏移为F6的地址去
那怎么知道F6是个正数还是个负数?就是说CPU执行这条指令的时候怎么知道要向下跳转还是向上跳转?
是负数应该往上跳 此问题纠结已久。。
请问如何判断一个十六进制数补码是正数还是负数? 正数的补码是其本身。
十六进制 F6H的二进制 数表示为1111-0110
1-111-0110最左边为1代表为负数
负数以补码存放,对其减一取反
减一1111-0101
取反0000-1010
结果为 -10 这一点我倒是没注意,谢楼主提醒额 4楼的哥十分彪悍 威猛..
你最后算到的是0000-1010 十进制是10吧? 我是这样算的 看看对吗
F6的二进制原码:11110110除符号位外取反得10001001然后加1得10001010 Snow 发表于 2011-7-13 10:02 static/image/common/back.gif
4楼的哥十分彪悍 威猛..
你最后算到的是0000-1010 十进制是10吧? 我是这样算的 看看对吗
F6的二进制原码 ...
{:5_109:}
000-1010 是十进制10
你后面的理解我说下,做个交流!
这个数是正数或者负数,我们看它的符号位,1为负,0为正
负数是补码形式存放的,
也就是正数先去反加1
例:
0000-0101 ??你猜我们算下这个正数的负数表示形式
先取反
1111-1010
在加1
1111-1011 由符号位,这个数已经是负数了,至于是负几,看下它的正数!
知道负数,求正数
先减1,在取反,就是把上面的一个逆向!
是全部位进行操作!
以上理解的话,你之前计算的二进制码!
10001010算下正数
~~~~~~~~算完再看~~~~~~~~~~~~
减一
10001001
取反
01110110
结果76H十进制118!
demon 发表于 2011-7-13 10:42 static/image/common/back.gif
以上理解的话,你之前计算的二进制码!
10001010算下正数
取反 符号位是不变的吧? 看你说得好晕啊。 没问题 了 搞掂了 谢谢 :lol。。。。。。。。。。。。 这就是SF标志位的作用了! 看来的我理解能力还是太差啊
:Q
页:
[1]