汇编语言——CPU工作原理:寄存器(基于8086CPU)

1. 修改CS、IP的指令

  • cs指向代码段,IP是偏移地址
  • 修改IP的内容:
    • jmp 寄存器:jmp ax (类似于mov IP, ax)用寄存器中的值修改IP
  • 同时修改CS和IP:
    • jmp 段地址:偏移地址:jmp 2AE3:3
  • 修改CS和IP之后,CPU会执行指向的指令,之后默认IP+n,n为指令长度,也就是会自发执行下去。
  • 如何让内存中的代码被执行:
    • 把CS,IP指过去,CPU不会判断什么是代码段什么是数据段,只要CS和IP指的,就是代码段。
    • CPU只认CS:IP指向的内存单元是代码段
  • 在这里插入图片描述

2. 使用Debug调试工具

在这里插入图片描述

r

r ax
AX 0000
:1111

r 寄存器 回车
打印寄存器当前值
:xxxx 把寄存器的值改为xxxx
这样就能把AX寄存器的值改为1111

a, d, u

  • 以汇编写入内存,注意内存地址,例如我这里写入的是0483:0100
  • d 0483:0100查看对应的内存地址的内容
  • d 0483:0100 8查看0483:0100之后八个字节的内容
  • 机器码在这里插入图片描述
  • u 0483:0100翻译成汇编
    在这里插入图片描述

t

  • 修改CS和IP-r
  • t执行
  • 在这里插入图片描述

e直接修改

  • 使用d 2000:0100查看内存
  • 使用e 2000:0100修改内存,回车之后会显示内存地址中的值,就是00,在.后边加上修改的数据,回车
  • d再次查看,发现内存已经修改
  • 注意,有一些内存受到保护,是没法修改的
  • 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值