2)地址指针寄存器和变址寄存器 SP堆栈指针 (Stack Pointer) BP 址指针( Base Pointer 地址指针主 要用于地址 SI 源变址指针 ource Index) 操作 表2.1 DI 旧的变址指针 Destination IndeX)) 都是16位,一般用来存放偏移地址。 指针寄存器SP和BP用来存取位于当前堆栈段中的数据,但SP 和BP使用上有区别。 ■堆栈指针寄存器SP给出栈顶的偏移地址。 ■基址指针寄存器BP用来存放位于堆栈段中的一个数据区基址 的偏移地址。 源变址寄存器SI和目的变址寄存器D用来存放当前数据段的偏 移地址
2)地址指针寄存器和变址寄存器 ➢ 都是16位,一般用来存放偏移地址。 ➢ 指针寄存器SP和BP用来存取位于当前堆栈段中的数据,但SP 和BP使用上有区别。 ◼ 堆栈指针寄存器SP给出栈顶的偏移地址。 ◼ 基址指针寄存器BP用来存放位于堆栈段中的一个数据区基址 的偏移地址。 ➢ 源变址寄存器SI和目的变址寄存器DI用来存放当前数据段的偏 移地址。 表2.1 DI 目的变址指针(Destination Index) SI 源变址指针(Source Index) BP 基址指针(Base Pointer) SP 堆栈指针(Stack Pointer) 地址指针主 要用于地址 操作
表21寄存器的隐含使用 表2.1寄存器的隐含使用 寄存器 执行操作 AX 整字乘法、整字除法和整字I/O 字节乘法、字节除法、字节1O、查表和十进制算术运算 AH 字节乘法和字节除法 查表 CX 字符串操作和循环 变量的移位和循环移位 整字乘法、整字除法和间接寻址I/O 堆栈操作 字符串操作 字符串操作
表2.1 寄存器的隐含使用
2指令指针寄存器IP 16位,存放着BIU要取的下一条指令的偏移地址。 指令执行时,每取一次指令P就自动加1,这样 保证能按顺序取出并执行指令。 指令代码存放在存储器的代码段,CPU利用CS 和P取得要执行的指令。 修改IP中的内容,就可以改变指令的执行流向
2.指令指针寄存器IP ➢16位,存放着BIU要取的下一条指令的偏移地址。 ➢指令执行时,每取一次指令IP就自动加1,这样 保证能按顺序取出并执行指令。 ➢指令代码存放在存储器的代码段,CPU利用CS 和IP取得要执行的指令。 ➢修改IP中的内容,就可以改变指令的执行流向
3标志寄存器(6位) 16位标志寄存器FR用于反映指令执行结果或控制指 令执行的形式。 >只用了其中的9位,分为:状态标志位和控制标志位 DI5 D14 D13 D1 Du D10 Do DD, D Ds D4 D3 D2 D, D OF DF IF TF SF ZF AF PF CF 控方向标志 进位标志 制标 中断标志 奇偶标志状 志跟踪标志 半进位标志态 零标志 标 符号标志志 溢出标志
3.标志寄存器(16位) ➢ 16位标志寄存器FR用于反映指令执行结果或控制指 令执行的形式。 ➢ 只用了其中的9位,分为:状态标志位和控制标志位
标志寄存器 or( Overflow Flag):溢出标志(指补码) oF=1:在运算过程中,如操作数超过了机器表示的范围 称为溢出。 nOF=0:在运算过程中,如操作数未超过了机器能表示的 范围称为不溢出。 求解方法:最高位进位次高位进位 字节允许范围:-128-+127 字允许范围:-32768+32767 PF( Parity Flag):奇偶标志 PF=1:运算结果中低8位有偶数个1。 ■PF=0:运算结果中低8位有奇数个1。 D1sD14D13D12D1D10D。DsD7D。D:D:D3D2D1Do OF DF IF TF SF ZF AF PF CF
20 标志寄存器 ◼ OF(Overflow Flag):溢出标志(指补码) ◼ OF=1:在运算过程中,如操作数超过了机器表示的范围 称为溢出。 ◼ OF=0:在运算过程中,如操作数未超过了机器能表示的 范围称为不溢出。 ◼ 求解方法:最高位进位次高位进位 ◼ 字节允许范围:-128—+127 ◼ 字允许范围:-32768—+32767 ◼ PF(Parity Flag):奇偶标志 ◼ PF=1: 运算结果中低8位有偶数个1。 ◼ PF=0: 运算结果中低8位有奇数个1