从零开始学汇编

从零开始学汇编

5 (96人评价)
  • 课时:(62)

  • 学员:(2514)

  • 浏览:(147669)

  • 加入课程

第二章 寄存器(CPU工作原理)05的笔记

相关课时: 笔记详情:

8086CPU有4个段寄存器:

CS:代码段

DS:数据段

SS:堆栈段

ES:附加段

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

CS为代码段寄存器 IP为指令指针寄存器 8086CPU工作的简要描述:

1.从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;

2.IP=IP+所读取指令的长度,从而指向下一条指令。

3.执行指令。转到步骤1.重复这个过程。 在8086CPU加电启动或复位后,(即CPU刚开始i工作时)CS和IP被设CS=FFFFH,IP=OOOOH。

即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令。 FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。


在CPU中,程序员能够用指令读写的不见只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制

CPU从何处执行指令是由CS。IP中的内容决定的,程序员可以通过改变CS。IP中的内容来控制CPU执行目标指令

MOV指令不能用于设置CS,IP的值。修改可以用:

同时修改CS。IP:

jmp 段地址:偏移地址

例如:jmp 2AE3:3

 

单纯修改IP:(段地址不变)

jmp 某一合法寄存器

 jmp ax

jmp bx

 

CPU只认被CS。IP指向的内存单元中的内容为指令。

所以要将CS.IP指向所定义的代码段中的第一条指令的首地址。

CS存放指令的段地址,IP存放指令的偏移地址。

8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。

8086CPU的工作过程:

1.从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器。

2.IP指向下一条指令;

3.执行指令。(转到步骤1.重复这个过程)

8086CPU提供转移指令修改CS.IP的内容

1 1