您的位置:首页 > 其它

《汇编语言(王爽)》第二章——寄存器(CPU工作原理)【总结】

2015-10-09 17:06 316 查看
8086 CPU有14个寄存器(均为16位):AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

1、通用寄存器:

AX、BX、CX、DX

16位,可存储的数据的最大值为2^16-1

每个寄存器可分为两个独立使用的8位寄存器,eg. AX可分为AH、AL

2、字在寄存器中的存储:

8086中一个字=2B(高位字节、低位字节)

3、几条汇编指令(不区分大小写):

ADD AL,93H   ;若产生进位,不会修改AH

指令的两个操作对象的位数应当一致

4、物理地址(CPU内部形成)

5、16位结构的CPU(8086内部能够一次处理、传输、暂存的信息的最大长度为16位)

6、8086给出物理地址的方法

8086CPU有20位地址总线,1MB的寻址能力,但是只能送出16位地址,因此——>段地址、偏移地址

段地址、偏移地址——> 地址加法器——> 物理地址=段地址*16+偏移地址(相当于段地址左移4位)

7、“段地址*16+偏移地址=物理地址”的本质含义(“基础地址+偏移地址=物理地址”的思想)

8、段的概念

段的起始地址一定是16的倍数;偏移地址为16位,变化范围0~FFFFH,因此一个段的长度最大为64KB

CPU可以用不同的段地址和偏移地址形成同一个物理地址

9、段寄存器(CS、DS、SS、ES)

10、CS和IP

代码段寄存器(CS)、指令指针寄存器(IP)

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

8086CPU工作过程:

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

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

3)执行指令。转到1),重复。

11、修改CS、IP的指令

在CPU中程序员能够用指令读写的部件只有寄存器

MOV指令——传送指令,不能用于修改CS、IP的值

JMP指令——转移指令(能够修改CS:IP)

1)JMP 段地址:偏移地址

2)JMP 某一合法寄存器(仅修改IP)

12、代码段

编程时,根据需要,将一组内存单元定义为一个段

可以长度<=64KB的一组代码存放在一组地址连续,起始地址为16倍数的内存单元中

实验 查看CPU、内存,用机器指令和汇编指令编程

Debug

R(查看、改变CPU寄存器的内容)

D(查看内存中的内容;d 段地址 :偏移地址,会显示128B内容)

E(改写内存中的内容)

U(查看内存中的机器码的含义)

T(执行一条指令)

A(以汇编指令形式在内存中写入机器指令)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  汇编 寄存器