汇编详解
汇编结构
;版权声明:以下代码遵循 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 ;结束代码
标志寄存器里面的六个寄存器
-
进位标志 CF (Carry Flag)
进位标志 CF 主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为 1 ,否则其值为 0 。
使用该标志位的情况有:
- 多字(字节)数的加减运算
- 无符号数的大小比较运算
- 移位操作
- 字(字节)之间移位
- 专门改变 CF 值的指令
- ……
-
奇偶标志 PF (Parity Flag)
奇偶标志 PF 用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则 PF 的值为 1 ,否则其值为 0 。
利用 PF 可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。
-
辅助进位标志 AF (Auxiliary Carry Flag)
在发生下列情况时,辅助进位标志 AF 的值被置为 1 ,否则其值为 0 :
- 在字操作时,发生低字节向高字节进位或借位时;
- 在字节操作时,发生低 4 位向高 4 位进位或借位时。
-
零标志 ZF (Zero Flag)
零标志 ZF 用来反映运算结果是否为 0 。如果运算结果为 0 ,则其值为1,否则其值为 0 。在判断运算结果是否为 0 时,可使用此标志位。
-
符号标志 SF (Sign Flag)
符号标志 SF 用来反映运算结果的符号位,它与运算结果的最高位相同。
在微机系统中,有符号数采用补码表示法,所以,SF 也就反映运算结果的正负号。运算结果为正数时,SF 的值为 0 ,否则其值为 1 。
-
溢出标志 OF (Overflow Flag)
溢出标志 OF 用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,
OF 的值被置为 1 ,否则,OF 的值被清为 0 。
对以上6个运算结果标志位,在一般编程情况下,标志位 CF、ZF、SF 和 OF 的使用频率较高,而标志位 PF 和 AF 的使用频率较低。
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
其他参考资料:
- 计算机基础知识 https://article.itxueyuan.com/rx3g21