【汇编学习(二)】寄存器相关

这只是新手学习汇编的一个小笔记,帮助自己理解的,不建议观看!

一、段寄存器:

前面的学习,已经知道了8086 cpu在访问内存时,要由相关部件提供内存单元的段地址和偏移地址,接着送入地址加法器合成物理地址,产生的段地址在cpu的段寄存器中存放着,8086 cpu4个段寄存器:CSDSSSES

二、CS、IP寄存器:

这两个寄存器是8086 cpu中比较关键的寄存器,它指示了CPU当前要读取指令的地址,CS为代码 段寄存器,IP为指令指针寄存器,假设任意时刻,CS的值为MIP的值为N,那么8086 cpu将从M*16+N单元开始读取一条指令并执行;

读取命令并执行的大致过程:

1、根据CSIP的值,在地址加法器中产生物理地址;

2、将物理地址送入输入输出控制电路;

3、输入输出控制电路将物理地址送入地址总线;

4、读取以物理地址单元开始的一条指令,并通过数据总线送入cpu 

5、输入输出控制电路,将读取到的指令送入到指令缓冲器,以备cpu执行;

6、读取数据完成后,IP寄存器的的值自动增加,以指向下一条命令的起始单元,增加的值是当前读取完成的指令的字节数;

7、执行控制器开始执行命令,完成相关的操作;

8、接着根据当前CSIP的值,读取下一条指令;

 

8086 cpu加电启动或者复位后,CSIP的值被设置为FFFFH0000H,即是说,CSIP寄存器的内容提供了CPU要执行的命令的地址;在任何时候,CSIP指向的地址单元的数据被当作指令;

三、修改CS、IP的指令:

CSIP的值,决定了CPU从何处开始执行指令;8086中的大部分寄存器的值都可以使用mov指令来修改,比如:mov ax,123mov指令被称为传送指令。mov指令不能用于设置CSIP的值,想修改这个得使用jmp指令;它被称之为转移指令;若想同时修改CSIP的值,可以这样:jmp CSvalue:IPvalue也可以只修改IP寄存器的值:jmp IPvalue

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值