购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

习题

1.本章只演示了部分指令的调试过程,请仿照书中的代码及视频中的调试过程,对其他的指令进行调试与分析。

2.对于下面汇编代码中的每一行,根据操作数,确定适当的指令后缀。

3.当我们调用汇编器的时候,下面代码中的每一行都会产生一个错误消息,请在机器上运行,阅读错误提示信息,并解释每一行是哪里出了错,如何修改。

4.将一个原型为void decode1(int*xp,int*yp,int*zp);的函数编译成汇编代码。代码如下:

参数xp、yp、zp分别存储在相对于寄存器%ebp中的地址偏移8、12、16的地方。

请写出与以上汇编代码的decode1函数等效的C语言代码。

5.假设寄存器%eax的值为x,%ecx的值为y。填写下表,指明下面每条汇编代码指令存储在寄存器%edx中的值。

6.假设下面的值存放在指定的存储器地址和寄存器中:

填写下表,给出下面指令的效果,说明将被更新的寄存器或存储器位置,以及得到的值。

7.我们经常可以看见以下形式的汇编代码行:

但是在产生这段汇编代码的C语言代码块中,并没有出现EXCLUSIVE-OR操作。

(1)解释这条指令实现了什么操作。

(2)更直接表达这个操作的汇编代码是什么?

(3)比较同一个操作的两种不同实现的编码字节长度。 N4nPKBeLUQZchDJ0reZexV0c/iAoUh0lMy9JNnUswbmo+PY4dlVEG71BXUD75/TS

点击中间区域
呼出菜单
上一章
目录
下一章
×