Assemble 实验1
(1)使用debug,将程序段写入内存,逐条执行,观察执行后cpu中的相关寄存器的变化。
运用a命令,将指令写入内存中,我们应注意到4e20后的十六进制h不应输入到程序段中,否则系统将报错,接着运用t命令逐步执行,观察CS:IP指向
可以看到寄存器AX 和BX的值如程序指令中的变化。
现在我再用u 反汇编指令观察汇编指令的机器码是否与书上相同。
结果显而易见 是正确的。
-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执行目标指令。
接着用r指令修改CS:IP的值为2000:0观察ax的值
结果即为2的8次方了。