菜鷄日記——《汇编与接口技术》第1章 基础知识 & 第2章 80X86计算机结构

第1章 基础知识


 

第2章 80X86计算机结构


(以16位的8086计算机为教学对象)

Intel 8086 CPU: 

  • 累加器:用于算术、逻辑运算以及与外设传送信息等。
  • 基址寄存器:常于存放存储器地址。
  • 计数器:作为循环或串操作等指令中的隐含计数器。
  • 数据寄存器:用来存放双字数据的高16位,或存放外设端口地址。 

指针寄存器和变址寄存器用于存放某个存储单元的偏移地址

  • 堆栈指针:用于存放当前堆栈段中栈顶的偏移地址。
  • 基址指针:用于存放堆栈段中某一存储单元的偏移地址。
  • 源地址:在字符串操作中,具有自动增量或减量的功能。
  • 目的地址:在字符串操作中,具有自动增量或减量的功能。
  • 指令指针:保存下一次将要取出指令的偏移地址,内容由微处理器硬件自动设置,有一些指令可改变IP的值。
  • 标志寄存器:包含9个标志位,保存一条指令执行后CPU所处状态信息及运算结果的特征。

  • 段寄存器:器用来确定该段在内存中的起始地址,便于操作系统执行。 

熟记:

  • AX:字乘法、字除法、字I/O。
  • AH:字节乘法、字节除法、DOS中断功能号。
  • AL:字节乘法、字节除法、字节I/O、十进制算术运算。
  • BX:存储器指针。
  • CX:串操作或循环控制计数器。
  • CL:移位计数器。
  • DX:字乘法、字除法、间接I/O。
  • SI:存储器指针(串操作中的源指针)。
  • DI:存储器指针(串操作中的目的指针)。
  • BP:存储器指针(存储堆栈指针)。
  • SP:堆栈指针。

【特别说明:堆栈的两种访问方式——随机访问(使用BP)、栈顶访问(使用SP)】

存储器:

字节单元(8位)*2 = 字单元(16位)

字单元的低位字节存入低位地址,高位字节存入高位地址,其地址以低位地址表示。

存储器采用分段方式:

20位物理地址,存储器寻址空间为1MB,

16位段地址,最多分64K段,每段最小寻址空间为16B,

16位偏移地址,每段最大寻址空间为64KB,最少分1MB/64KB=16段。

CS、DS、SS、ES寄存器所指向的各段在存储器中的分配是由操作系统负责的,一般情况下,根据需求量分配。

注意:只有CS段寄存器是操作系统分配的,应用程序可读但不可写,其它的段寄存器都可以被修改。