computer007 发表于 2011-4-10 20:31:13

实验八不懂啊


这里 mov ax,cs:
mov cs:,ax 不是把偏移地址为s2里的数据送到第一个nop中吗
为什么到nop那里变成了jmp short s1 如果有条指令在cs段中mov AX,F6B8 那么ax里存的是数据F6B8还是jmp 。。指令

为什么nop变成了jmp short s1后不执行跳到s1处 如果 把一条jmp指令变换位置后 他是不是只执行未移动前的位移

wangzhiying 发表于 2011-4-11 12:52:10

你Debug跟踪一下就知道了。用编译器编译成机器码的时候,jmp指令后边是转移的位移。而不是位置
mov ax,cs:
mov cs:,ax   是把s2中的机器指令复制到s处的。因为jmp指令后边是转移的位移。所以在执行s处指令jmp short s时,实际上执行的是jmp short 0。因为s处的转移位移正好指向IP=0处。我表达能力不好。还不明白的话说一声。
页: [1]
查看完整版本: 实验八不懂啊