2.3.1通用寄存器 通用寄存器共8个(右图) AH ALI AX 分两组,数据寄存器(前4个:AX,B, CX,DX)用作存放数据。 BH BL BX 指针和变址寄存器(后4个),用CHcL|cx 于存放指针。 1.数据寄存器 DH DLI DX AX,BX,CX,DX可分别拆分成2个8位寄 存器 SP AX:累加器( accumulator),在算术运 算时,用AX来存放操作数和运算结果。 BP BX:基址寄存器( base address),计算 存储器地址时使用 SI CX:计数寄存器( count),循环、串 操作时用于计数 DI
2.3.1 通用寄存器 通用寄存器共8个(右图) 分两组,数据寄存器(前4个: AX,BX, CX,DX)用作存放数据。 指针和变址寄存器(后4个),用 于存放指针。 1.数据寄存器 AX,BX,CX,DX可分别拆分成2个8位寄 存器。 AX:累加器(accumulator),在算术运 算时,用AX来存放操作数和运算结果。 BX:基址寄存器(base address),计算 存储器地址时使用。 CX:计数寄存器(count),循环、串 操作时用于计数
DX:数据寄存器(data),双倍字长运算 时,存放高16位。 AH ALI AX 2.指针及变址寄存器 BH BL BX sP;堆栈指针 stackpointer),指示堆 CH CL CX 栈栈顶的偏移地址。 BP:基址指针(89onte2,也是- DH DL DX 种基地址寄存器(类似于BX),所不 同的是它相对于堆栈段而不是数据 SP 段 SI:源变址寄存器( source index):用 BP 作地址指针,在寻址时提供地址偏 移量。(主要用于串处理指令)。 SI DⅠ:目的变址寄存器( destination index) 用作地址指针,在寻址时提供地址 偏移量。(主要用于串处理指令) DI
DX:数据寄存器(data),双倍字长运算 时,存放高16位。 2.指针及变址寄存器 SP:堆栈指针(stackpointer),指示堆 栈栈顶的偏移地址。 BP:基址指针(base pointer),也是一 种基地址寄存器(类似于BX),所不 同的是它相对于堆栈段而不是数据 段。 SI:源变址寄存器(source index):用 作地址指针,在寻址时提供地址偏 移量。(主要用于串处理指令)。 DI:目的变址寄存器(destination index): 用作地址指针,在寻址时提供地址 偏移量。(主要用于串处理指令)
2.3.2段寄存器 CS:代码段寄存器( code segment):存放代码 段的段地址。程序执行时必须有代码段。 CS DS:数据段寄存器( data segment):存放数据 段的段地址。 DS SS:堆栈段寄存器( stack segment):存放堆栈 段的段地址。设置堆栈段是为了给入栈操作和 出栈操作保留临时数据区 ES:附加段寄存器( extra segment):存放的是 ES 附加数据段的段地址。当一个程序同时用到 个以上的数据段时,附加段就是必不可少的。 IP IP:指令指针寄存器( instruction pointer)是专用的16位寄 存器,它表示的是当前要执行的指令在代码段中的偏移地址 程序员不能直接访问IP,只有转移指令、子程序调用及返回 指令、中断调用及返回指令才能修改IP(有时还会修改CS)
2.3.2 段寄存器 CS:代码段寄存器 (code segment):存放代码 段的段地址。程序执行时必须有代码段。 DS:数据段寄存器 (data segment):存放数据 段的段地址。 SS:堆栈段寄存器 (stack segment):存放堆栈 段的段地址。设置堆栈段是为了给入栈操作和 出栈操作保留临时数据区。 ES:附加段寄存器 (extra segment):存放的是 附加数据段的段地址。当一个程序同时用到— 个以上的数据段时,附加段就是必不可少的。 IP:指令指针寄存器 (instruction pointer)是专用的16位寄 存器,它表示的是当前要执行的指令在代码段中的偏移地址。 程序员不能直接访问IP,只有转移指令、子程序调用及返回 指令、中断调用及返回指令才能修改IP(有时还会修改CS)
2.3.4标志寄存器 OF DF IF TF SF ZF AF PF CF 标志寄存器:用于表示程序运行时(数据处理时)的状态。 各标志位的作用: 进位标志CF( carry flag):有进位或借位时为1; 奇偶标志PF( parity flag):结果低8位“1〃的个数为偶数时 为1 辅助进位标志AF(auκ xiliary carry flag):进行算术运算时, 如果低位产生了进位时为1。此标志用于十进制运算时的 调整。 零标志ZF( zero flag):运算结果为0时为1。 符号标志SF( sign flag):等于运算结果的最高位(符号位) 溢出标志:0F( overf1owf 溢出时为
2.3.4 标志寄存器 标志寄存器:用于表示程序运行时(数据处理时)的状态。 各标志位的作用: 进位标志CF(carry flag):有进位或借位时为l; 奇偶标志PF(parity flag):结果低8位“1”的个数为偶数时 为l。 辅助进位标志AF(auxiliary carry flag):进行算术运算时, 如果低4位产生了进位时为l。此标志用于十进制运算时的 调整。 零标志ZF(zero flag):运算结果为0时为1。 符号标志SF(sign flag):等于运算结果的最高位(符号位)。 溢出标志:OF(overflow flag),溢出时为1。 O F D F I F T F S F Z F A F P F C F
以下几个标志可暂不讲述。 跟踪标志TF( trap flag),当TF=1时,在执行完一条指 令后就会产生单步中断,然后由单步中断处理程序把 TF置为0。TF标志用于调试。 中断标志IF( interrupt f1ag),当IF=1时,允许响应可 屏蔽中断,否则关闭中断。 方向标志DF( direction flag),DF用于控制串操作指令地 址的增减。如果DF=1,则每次串操作后使变址寄存 器S和DI减Ⅳ(字节指令)或减2(字指令);如果DF=0, 则每次串操作后使变址寄存器S和D加字节指令)或 加2(字指令)
以下几个标志可暂不讲述。 跟踪标志TF(trap flag),当TF=1时,在执行完一条指 令后就会产生单步中断,然后由单步中断处理程序把 TF置为0。TF标志用于调试。 中断标志IF(interrupt flag),当IF=1时,允许响应可 屏蔽中断,否则关闭中断。 方向标志DF(direction flag),DF用于控制串操作指令地 址的增减。如果DF=1,则每次串操作后使变址寄存 器SI和DI减l(字节指令)或减2(字指令);如果DF=0, 则每次串操作后使变址寄存器SI和DI加l(字节指令)或 加2(字指令)