汇编中CALL的地址和机器码那地址为什么不是一样的?
{:5_96:}我记得小甲鱼说过是什么位移算的.具体是怎样的忘记了。谁能帮帮我{:5_111:} call命令下 只有call 标号 call命令下 只有call 标号 即:
call s是依据位移进行转移的call指令
因为calls== push IP jmp near ptr s
即将IP压入堆栈中,然后是一个近转移 ,也就是说只有这一个call命令
其他的例如callax
相当于 push IP jmp 16 位reg 刚刚理解错你的意思了,重新解答:
你上面题目里所说的call中的地址是 要跳往(jmp)地址的ip或者 cs:ip
而你上面题目里的机器码有两种可能;
第一:如果是近转移或者短转移,则这个机器码是标号地址与call指令后第一个字节地址之差。
第二:如果是段间转移,例如call far ptr s,call ax, call word ptr ds:【bx】 则你题目里所说的机器码和你题目里所说的地址是相同的。
希望能帮到你,写的有点乱,希望你自己调试一下。
页:
[1]