汇编语言学习笔记第二章 寄存器

2016-12-30 18:13

8086/8088CPU的寄存器有4类:
数据寄存器:AX、BX、CX、DX  (存放一般性的数据,又称通用寄存器)
指针及变址寄存器:SP、BP、SI、DI
段寄存器:CS、DS、SS和ES
控制寄存器:IP和Flags

AX (Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作;
BX称为基地址寄存器(Base Register),可作通用寄存器用,在计算存储器地址时,常用作基址存储器;
CX称为计数寄存器(Count Register),常用作循环计数器;在位操作中,要用CL来指明移位的位数;
DX称为数据寄存器(Data Register)。在进行双字的乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
CS:代码段寄存器
DS:数据段寄存器
SS:堆栈段寄存器
ES:附加段寄存器
IP:指令指针寄存器
CS和IP就指示了CPU当前要读取指令的地址
几条汇编指令
  在写一条汇编指令或一个寄存器的名称时不区分大小写.

物理地址
  CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址.

16位结构的CPU
  运算器一次最多可以处理16位的数据;
  寄存器的最大宽度为16位;
  寄存器和运算器之间的通路为16位.

8086CPU给出物理地址的方法
  地址加法器采用“物理地址 = 段地址 * 16 + 偏移地址”的方法合成物理地址

段的概念
  一个段的最大长度位64KB

CS和IP

8086CPU的工作过程可以简要描述如下:
1) 从CS:IP指向的内存单元处读取指令,读取的指令进入指令缓冲器;
2) IP=IP+所读取指令的长度,从而指向下一条指令;
3) 执行指令,转到步骤1,重复这个过程.

修改CS、IP的指令
“jmp 段地址 : 偏移地址”指令的功能为:  用指令中给出的段地址修改CS,偏移地址修改IP.
“jmp 某一合法寄存器”: 用寄存器的值修改IP.