汇编语言 第二章 寄存器(CPU工作原理) 05

段寄存器

段寄存器就是提供段地址的。
CS(Code Segment):代码段寄存器
DS(Data Segment):数据段寄存器
SS(Stack Segment):堆栈段寄存器
ES(Extra Segment):附加段寄存器

CS和IP(指令指针寄存器 (instruction pointer))是8086中最关键的寄存器,它们指示了CPU当前要读取指令的地址。

修改CS、IP的指令

mov 指令不能用于设置CS、IP的值,8086CPU没有提供这样的功能,8086CPU提供了另外的指令来改变它们的值:转移指令。

同时修改CS、IP的内容:

jmp 段地址:偏移地址
	jmp 2AE3:3		// 物理地址:2AE33
	jmp 3:0B16		// 物理地址:00B46

仅修改IP的内容

jmp 某一合法寄存器
jmp ax(类似于 mov IP, ax)
jmp bx

代码段

可以将长度为 N(N <= 64 KB)的一组代码,存在一组地址连续、起始地址为16的倍数的内存单元中,这段内存是用来存放代码的,从而定义了一个代码段。

CPU只认被 CS:IP 指向的内存单元中的内容为指令。
所以要将 CS:IP 指向所定义的代码段中的第一条指令的首地址。

8086CPU的工作过程

  1. 从 CS:IP 指向内存单元读取指令,读取的指令进入指令缓冲器
  2. IP 指向下一条指令(IP += 刚执行指令的长度)
  3. 执行指令(转到步骤1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值