djsk132 发表于 2020-2-25 16:26:54

汇编语言 ----- 实验八


复制s2处的jmp指令到某一位置,相当于将jmp的指令码复制过去,而jmp中的指令码还是原来的指令码,编译器不会再根据新位置重新计算位移,
而jmp指令码记录的位移是 -10 ,而此时的IP在CPU读取s处的jmps后指向了下一指令,然后根据该指令向上移动10字节进行定位,发生中断
应该是这样,但有几点不理解?
01.为什么在复制指令码后,编译器不会重新更新指令的指令码,就是位移?
02.如果0000处不是中断指令,是不是就会继续执行下一套指令,而不是回到s0中?










405794672 发表于 2020-2-26 14:54:21

编译器不是系统,不会执行你的命令,它只是翻译。东西就摆在那里。你执行的时候,它给复制了,难道你还要把它变了?复制任何内容都是复制。说向上跳就是向上跳,改了就不叫复制了,完全就不是它了
页: [1]
查看完整版本: 汇编语言 ----- 实验八