汇编语言个人学习笔记——第二章 寄存器(CPU工作原理)第三部分

2.9 段寄存器

段寄存器就是提供段地址的。

8086CPU有4个段寄存器:CS(代码段地址寄存器)、DS(数据段地址寄存器)、SS(堆栈段地址寄存器)、ES(附加段地址寄存器)。

当8086CPU要访问内存时由这4个段寄存器提供内存单元的段地址。

2.10 CS和IP

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

CS为代码段寄存器。

IP为指令指针寄存器。

8086PC读取和执行指令相关部件过程如图所示:

8086PC工作过程的简要描述:

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

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

3、执行指令。转到步骤1,重复这个过程。

8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H。

即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行。

FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。

(病毒木马免杀思路:修改CS和IP的值,让它指向病毒或木马,然后内部程序想办法屏蔽掉杀毒,或者将病毒和木马的地址放在杀毒软件的前面,让CPU先加载病毒或木马程序)

在任何时候,CPU将CS、IP中的内容当作zhi指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。

如果说,内存中的一段信息曾被CPU执行过的话,那么,他所在的内存单元必然被CS:IP指向过。

2.11 修改CS、IP的指令

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

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

如何改变CS、IP的值:

8086CPU必须提供相应的指令

先回想如何修改AX中的值:

mov指令,如:mov ax,123

mov指令可以改变8086CPU大部分寄存器的值,被称之为传送指令。

mov指令不能用于设置CS、IP的值,8086CPU没有提供这样的功能。

8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令。

同时修改CS、IP的内容:

jmp段地址:偏移地址,如:

jmp 2AE3:3

jmp 3:0B16(不是30B16H,应该是00B46,这里容易出错)

功能:用指令中给出的段地址修改CS,偏移地址修改IP。

仅修改IP的内容:

jmp 某一合法寄存器

jmp ax (类似于mov IP,ax)

jmp bx

问题分析:CPU运行的流程

内存中存放的机器码和对应汇编指令情况:

(初始:CS=2000H,IP=0000H)

运行情况:

mov ax,6622H

jmp 1000:3

mov ax,0000H

mov bx,ax

mov ax,0123H

mov bx,ax

返回mov ax,0123H循环下去

CPU会卡在这里(CPU占用率永远是100%,就可能死机了)

2.12 代码段

对于8086PC机,在编程时,可以根据需要,将一组将一组内存单元定义为一个段。

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

例如:

这段长度为10字节的指令,存在从123B0H~123B9H这段内存单元是用来存放代码的,是一个代码段,它的段地址为123BH,长度为10字节。

如何使得代码段中的指令被执行?

将一段内存当作代码段,仅仅是我们在编程时的一种安排,CPU并不会由于这种安排,就自动地将我们定义的代码段中的指令当作指令来执行。

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

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

小节:

1、段地址在8086CPU的寄存器中存放。当8086CPU要访问内存时,由段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址。

2、CS存放指令的段地址,IP存放指令的偏移地址。8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。

3、8086CPU的工作过程:

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

(2)IP指向下一条指令;(IP有一个递加器,每一次执行完IP会加上指令的长度)

4、8086CPU提供转移指令修改CS、IP的内容。

先做完检测题,再继续学习。

猜你喜欢

转载自blog.csdn.net/K17010/article/details/81134735
今日推荐