有关汇编指令问题的一点小问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:06:45
条件转移指令JXX(如JNZ)共2字节,第一字节为操作玛,第二字节为相对偏移量.若在10000H处有指令JXX LOP,其中LOP的物理地址为0FFFAH,则该指令第二个字节值为?
A. FBH B.F8H
哪个?为什么?
负数的补码不是先取反再加1的吗?怎么是加一取反啊?

1楼的说的还好,
这样看,只是为了理解,
地址 机器码(操作码,偏移地址) 汇编指令
addr op offset op offset addr1
10000 7e 10 7e 10 jne 10012
10002 ....................
10005 ....................
10008 ....................
10010 ....................
10012 7e 04 7e 04 jne 10018
10014 ................
10016 ......................... ...
10018 .................... mov.....
计算转移指令(转移指令)是有这样来算的
我们设addr是跳转指令的下一条指令地址
addr1是要跳转到的地址
offset是上面标识的地址

addr+offset=addr1
哪这个题目就是
10002H+offset=0FFFAH
得到offset=-8=F8H

应该计算那两个字节的
还是把式子列出来吧呵呵
IP=IP+指令字节数+rel
该指令为2字节
也就是偏移量rel=0FFFAH-10000H-2H=-8H
然后求补码得F8H
负数补码是绝对值取反加一
好久没搞汇编呵呵

选B
首先JXX LOP在10000H的位置上,这条指令占两个字节,那么执行好之后,PC指针是在10002H的位置上,
而LOP位于0FFFAH,那么两者的偏移地址就是10002H-0FFFAH=8H,
由于是向所在的位置之前跳转,要减去偏移地址,00H-8H,
也就是相当于100H-8H=0F8H