Skip to content

汇编详解

汇编结构

;版权声明:以下代码遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
;原文链接:https://blog.csdn.net/weixin_46285416/article/details/116637114
DATAS SEGMENT   ;数据段
    ;此处输入数据段代码  
DATAS ENDS

CODES SEGMENT   ;代码段
    ASSUME CS:CODES,DS:DATAS        ;数据段给DS,代码段给CS
START:          ;开始代码
    MOV AX,DATAS    ;需要先把DATA给AX寄存器,然后再从AX给DS,DATA不能直接给DS
    MOV DS,AX
    ;此处输入代码段代码
    MOV AH,4CH      ;结束语句
    INT 21H

CODES ENDS      ;代码段结束
    END START   ;结束代码

标志寄存器里面的六个寄存器

  1. 进位标志 CF (Carry Flag)

    进位标志 CF 主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为 1 ,否则其值为 0 。

    使用该标志位的情况有:

    • 多字(字节)数的加减运算
    • 无符号数的大小比较运算
    • 移位操作
    • 字(字节)之间移位
    • 专门改变 CF 值的指令
    • ……
  2. 奇偶标志 PF (Parity Flag)

    奇偶标志 PF 用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则 PF 的值为 1 ,否则其值为 0 。

    利用 PF 可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。

  3. 辅助进位标志 AF (Auxiliary Carry Flag)

    在发生下列情况时,辅助进位标志 AF 的值被置为 1 ,否则其值为 0 :

    1. 在字操作时,发生低字节向高字节进位或借位时;
    2. 在字节操作时,发生低 4 位向高 4 位进位或借位时。
  4. 零标志 ZF (Zero Flag)

    零标志 ZF 用来反映运算结果是否为 0 。如果运算结果为 0 ,则其值为1,否则其值为 0 。在判断运算结果是否为 0 时,可使用此标志位。

  5. 符号标志 SF (Sign Flag)

    符号标志 SF 用来反映运算结果的符号位,它与运算结果的最高位相同。

    在微机系统中,有符号数采用补码表示法,所以,SF 也就反映运算结果的正负号。运算结果为正数时,SF 的值为 0 ,否则其值为 1 。

  6. 溢出标志 OF (Overflow Flag)

    溢出标志 OF 用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,

    OF 的值被置为 1 ,否则,OF 的值被清为 0 。

对以上6个运算结果标志位,在一般编程情况下,标志位 CF、ZF、SF 和 OF 的使用频率较高,而标志位 PF 和 AF 的使用频率较低。


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

其他参考资料:

  1. 计算机基础知识 https://article.itxueyuan.com/rx3g21