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次方了。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值