第2章 典型微处理器 (2)指针与变址寄存器:8086的指针寄存器和变址寄存 器都是16位寄存器,一般用来存放偏移地址,4个寄存器的功 能如下: SP:堆栈指针寄存器,保存位于当前堆栈段中的数据,其内容 为栈顶的偏移地址。 BP:基址指针寄存器,在访问内存时存放内存单元的偏移地址 或用来存放位于堆栈段中的一个数据区基址的偏移地址 SI:源变址寄存器,用来存放源操作数的偏移地址。 DI:目的变址寄存器,用来存放目的操作数的偏移地址 11
11 (2)指针与变址寄存器:8086的指针寄存器和变址寄存 器都是16位寄存器,一般用来存放偏移地址,4个寄存器的功 能如下: SP:堆栈指针寄存器,保存位于当前堆栈段中的数据,其内容 为栈顶的偏移地址。 BP:基址指针寄存器,在访问内存时存放内存单元的偏移地址, 或用来存放位于堆栈段中的一个数据区基址的偏移地址。 SI:源变址寄存器,用来存放源操作数的偏移地址。 DI:目的变址寄存器,用来存放目的操作数的偏移地址。 第2章 典型微处理器
第2章 典型微处理器 2.控制寄存器 (1)指令指针寄存器IP:由于指令代码是存放在存储器的 代码段中,代码段寄存器CS指示代码段的开始,16位指令指 针寄存器IP用来指示当前指令在代码段的偏移位置。CPU利 用CS和IP取得要执行的指令,然后修改IP中的内容,使之指 向BIU要取的下一条指令的偏移地址 指令序列执行时,每取一次指令IP就自动加1,这样保 证按顺序取出指令并执行相应操作。需要注意的是,IP是指 令代码存放单元的地址指针,不能用指令取出IP或给IP设置 给定值,但可以通过某些指令(如转移类指令)来修改IP的 内容
12 2. 控制寄存器 (1)指令指针寄存器IP:由于指令代码是存放在存储器的 代码段中,代码段寄存器CS指示代码段的开始,16位指令指 针寄存器IP用来指示当前指令在代码段的偏移位置。CPU利 用CS和IP取得要执行的指令,然后修改IP中的内容,使之指 向BIU要取的下一条指令的偏移地址。 指令序列执行时,每取一次指令IP就自动加1,这样保 证按顺序取出指令并执行相应操作。需要注意的是,IP是指 令代码存放单元的地址指针,不能用指令取出IP或给IP设置 给定值,但可以通过某些指令(如转移类指令)来修改IP的 内容。 第2章 典型微处理器
第2章 典型微处理器 (2)标志寄存器FLAG:FLAG用于反映指令执行结果或控 制指令执行的形式。它是一个16位的寄存器,共有9个可用 的标志位,其余7个位空闲不用。各种标志按作用可分为两 类: 6个状态标志:CF-进位标志;PF-奇偶标志;AF-辅助进位 标志;ZF-零标志;SF-符号标志;OF-溢出标志 3个控制标志:TF-陷阱标志或单步操作标志:IF-中断允许 标志;DF-方向标志 13
13 (2)标志寄存器FLAG:FLAG用于反映指令执行结果或控 制指令执行的形式。它是一个16位的寄存器,共有9个可用 的标志位,其余7个位空闲不用。各种标志按作用可分为两 类: 6个状态标志:CF-进位标志 ;PF-奇偶标志 ;AF-辅助进位 标志; ZF-零标志 ;SF-符号标志 ;OF-溢出标志 3个控制标志:TF-陷阱标志或单步操作标志 :IF-中断允许 标志; DF-方向标志 第2章 典型微处理器
第2章 典型微处理器 3.段寄存器 (1)代码段( Code Segment):用来存放程序和常 数。系统在取指时将寻址代码段,其段地址和偏移 地址分别由段寄存器cS和指令指针|P给出。 (2)数据段( Data segment):用于数据的保存 用户在寻址该段内的数据时,可以缺省段的说明, 其偏移地址可通过多种寻址方式形成 14
14 3. 段寄存器 (1)代码段(Code Segment):用来存放程序和常 数。系统在取指时将寻址代码段,其段地址和偏移 地址分别由段寄存器CS和指令指针IP给出。 (2) 数据段(Data Segment):用于数据的保存。 用户在寻址该段内的数据时,可以缺省段的说明, 其偏移地址可通过多种寻址方式形成。 第2章 典型微处理器
第2章 典型微处理器 (3)堆栈段( Stack Segment):“堆栈”是数据的 种存取方式,按照“先进后出”的方式操作。堆栈指针 sP用来指示栈顶。堆栈为保护、调度数据提供了重要的 手段。系统在执行栈操作指令时将寻址堆栈段,这时, 段地址和偏移地址分别由段寄存器SS和堆栈指针SP提供。 (4)附加数据段( Extra Segment):该段用于数据的 保存。用户在访问段内的数据时,其偏移地址同样可以 通过多种寻址方式来形成,但在偏移地址前要加上段的 说明(即段跨越前缀ES)
15 (3)堆栈段(Stack Segment): “堆栈”是数据的一 种存取方式,按照“先进后出”的方式操作。堆栈指针 SP用来指示栈顶。堆栈为保护、调度数据提供了重要的 手段。系统在执行栈操作指令时将寻址堆栈段,这时, 段地址和偏移地址分别由段寄存器SS和堆栈指针SP提供。 (4)附加数据段(Extra Segment):该段用于数据的 保存。用户在访问段内的数据时,其偏移地址同样可以 通过多种寻址方式来形成,但在偏移地址前要加上段的 说明(即段跨越前缀ES)。 第2章 典型微处理器