Assemble 实验1

(1)使用debug,将程序段写入内存,逐条执行,观察执行后cpu中的相关寄存器的变化。

 Assemble 实验1

 运用a命令,将指令写入内存中,我们应注意到4e20后的十六进制h不应输入到程序段中,否则系统将报错,接着运用t命令逐步执行,观察CS:IP指向

Assemble 实验1

Assemble 实验1

可以看到寄存器AX 和BX的值如程序指令中的变化。

现在我再用u 反汇编指令观察汇编指令的机器码是否与书上相同。

Assemble 实验1

结果显而易见 是正确的。 

-u 0:200 代表从0:200开始反汇编32个字节内存。

(2)将3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

逻辑思路:

      执行完第一步后ax= 1;

      执行完第二步后ax  = 2;

执行add 1次 2*2, 执行2次 就是2*2*2就是2的3次方 ,那么2的8次方 就 add 执行 7次。

执行之前先将指令指向add语句 这样就会重复执行 add语句,用jmp 指令更改CS、IP寄存器的值,从而

控制CPU执行目标指令。

Assemble 实验1

接着用r指令修改CS:IP的值为2000:0观察ax的值

结果即为2的8次方了。