美文网首页
【汇编】【分享】一张图总结寄存器知识

【汇编】【分享】一张图总结寄存器知识

作者: 骑龟赛跑 | 来源:发表于2019-06-23 15:28 被阅读0次

    基本寄存器分为 4 类,

    分别是 8 个通用寄存器、

    4 个段寄存器(32位扩充2个)、

    1个指令指针寄存器和1个标志寄存器.

    AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据。

    BX(base):基址寄存器,常用于地址索引

    CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.

    DX(data):数据寄存器,常用于数据传递。

    SP(Stack Pointer):堆栈指针,与SS配合使用,可指向的堆栈位置

    BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置

    SI(Source Index):源变址寄存器,可用来存放相对于DS段之源变址指针

    DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。

    段寄存器:

    CS(Code Segment):代码段寄存器

    DS(Data Segment):数据段寄存器

    SS(Stack Segment):堆栈段寄存器

    ES(Extra Segment):附加段寄存器

    IP(Instruction Pointer):指令指针寄存器

    16位的标志寄存器可以分为两部分,分别是条件标志和控制标志。

    条件标志寄存器说明如下:

    ① OF(OverFlow Flag):溢出标志位,用来反映有符号数加减法运算所得结果是否溢出。 如果运算超过当前运算位数所能表示的范围,则称为溢出,该标志位被置为1,否则为0。

    ② SF(Sign Flag):符号标志位,用来反映运算结果的符号位。运算结果为负时为 1, 否则为0。

    ③ ZF(Zero Flag):零标志位,用来反映运算结果是否为0。运算结果为0时该标志位 被置为1,否则为0。

    ④ AF(Auxiliary carry Flag):辅助进位标志位。在字操作时,发生低字节向高字节进位 或借位时该标志位被置为1,否则为0(注意:在字节操作时,发生低4位向高4为进位或借位时该标志位被置为1,否则为0)。

    ⑤ PF(Parity Flag):奇偶标志位,用于反映结果中“1”的个数的奇偶性。如果“1” 的个数为偶数,该标志位被置为1,否则为0。

    ⑥ CF(Carry Flag):进位标志位。运算结果的最高位产生了一个进位或借位,则该标 志位被置为1,否则为0。

    控制标志寄存器说明如下:

    ① DF(Direction Flag):方向标志位,用于串操作指令中,控制地址的变化方向。当 DF为0时,存储器地址自动增加;当DF为1时,存储器地址自动减少。操作DF标志寄存器可以使用指令CLD和STD进行复位和置位。

    ② IF(Interrupt Flag):中断标志位,用于控制外部可屏蔽中断是否可以被处理器响应。 当IF为1时,允许中断;当IF为0时,则不允许中断。操作IF标志寄存器可以使用CLI和STI进行复位和置位。

    ③ TF(Trap Flag):陷阱标志位,用于控制处理器是否进入单步操作方式。当 TF 为 0 时,处理器在正常模式下运行;当 TF 为 1 时,处理器单步执行指令,调试器可以逐条指令进行执行就是使用了该标志位。

    附图:

    相关文章

      网友评论

          本文标题:【汇编】【分享】一张图总结寄存器知识

          本文链接:https://www.haomeiwen.com/subject/sgoiqctx.html