自己做的网站和ie不兼容,怎么做网站超链接,如何创建自己的网址,永康高端网站建设章节目录
简介 ZF 标志寄存器PF 标志寄存器SF 标志寄存器CF 标志寄存器OF 标志寄存器几条相关指令DF 标志寄存器PUSHF and POPF 标志寄存器 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介
8086 CPU…章节目录
简介 ZF 标志寄存器PF 标志寄存器SF 标志寄存器CF 标志寄存器OF 标志寄存器几条相关指令DF 标志寄存器PUSHF and POPF 标志寄存器 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介
8086 CPU 寄存器的结构如下如: 每个标志寄存器都有它特殊的含义,下面我们将一一介绍他们的含义及用途.
ZF
ZF 称为零标志位(Zero Flag). 它记录了相关指令执行后, 其结果是否为 0. 如果结果为 0, 则 ZF1; 如果结果不为 0, 则 ZF 0. 至于哪些指令的执行会影响 ZF 标记位, 则要参考该指令的说明了.
示例: mov ax, 1sub ax, 1// 执行上述指令之后, ZF 1mov ax, 2sub ax, 1// 执行上述指令之后, ZF 0
PF
PF 称为奇偶标记位(Parity Flag). 它记录了执行相关指令之后, 其结果的所有 bit 中 1 的个数是否为偶数. 如果 1 的个数为偶数个, 则 PF 1; 如果为奇数个, 则 PF 0. (0 是偶数, 因此,如果某个指令执行之后结果为 0 且该指令会影响 PF 标志位, 此时 PF 1),
示例: mov al, 1add al, 10// 执行上述指令之后, 结果为 00001011B, 有三个 1, 则 PF 0mov al, 1add al, 11// 执行上述指令之后, 结果为 00001100B, 有四个 1, 则 PF 1
SF
SF 称为符号标记位(Sign Flag). 它记录了执行相关指令之后, 其结果是否为负数. 如果是负数, 则 SF 1; 如果不为负数, 则 SF 0.
CF
CF 称为进位寄存器(Carry Flag). 一般情况下, 在进行无符号数运算的时候, 它记录了运算结果的最高有效位向更高位的进位值, 或从更高位的借位值.
比如, 我们要计算 98H 加 98H 的两个八位数据, 计算结果为 130H. 而 120H 超过了八位寄存器所能存储的最大值, 因此会产生进位. mov al, 98Hadd al, al // 执行上述指令之后, AL 30H, CF 1. add al, al // 执行这条指令之后, AL 60H, CF 0
同样的, 当我们要计算 98H 减去 99H 时, 就需要借位. mov al, 98Hsub al, 99H // 执行这条指令之后, AL FFH, CF 1. sub al, al // 执行这条指令之后, AL 00H, CF 0.
ADC 指令
ADC 是带进位加法指令. 它利用了 CF 标志位上记录的进位值. 指令格式: adc num1, num2 功能: num1 num1 num2 CF
示例: mov ax, 2mov bx, 1sub bx, axadc ax, 1// 执行上述指令之后, ax 4. // adc ax, 1 等价于 ax 1 CF 2 1 1 4.
SBB 指令
SBB 是带借位减法, 它利用了 CF 标志位上记录的借位值. 指令格式: sbb num1, num2 功能: num1 num1 - num2 - CF
示例: mov bx, 1000Hmov ax, 003EHsub bx, 2000Hsbb ax, 0020H // sbb ax, 0020H1 等价于 ax - 0020H - CF.
OF
OF 称为溢出标志位(Overflow Flag). 一般情况, OF 记录了有符号数运算结果是否发生了溢出. 如果发生溢出, 则 OF 1; 如果没有溢出, 则 OF 0. mov al, 98add al, 99 // 执行上述指令之后, 则会发生溢出. 8 位寄存机能存储的值的范围为 -128-127. // 98 99 197. 197 超出了 8 位寄存器的存储范围. 因此, CF 0, OF 1.
这里注意 CF 和 OF 的区别: CF 对无符号数运算有意义 OF 对有符号数运算有意义 几条相关指令
CMP 指令
指令格式: cmp num1, num2 功能: 计算 num1 - num2 但不保存结果. 但根据计算结果对标志寄存进行设置.
示例: mov ax, 8mov bx, 3cmp ax, bx// 执行上述指令之后, ZF 0, PF 1, SF 0, CF 0, OF 0
常用相关指令
指令含义检测的标志位JE等于则转移ZF1JNE不等于则转移ZF0JB小于则转移CF1JNB大于等于则转移CF0JA大于则转移CF0 ZF 0JNA小于等于则转移CF1 ZF 1
DF
DF 称为方向标志位(Direction Flag). 在串处理指令中, 控制每次操作后 SI, DI 的增减. DF 0 每次操作后 SI, DI 递增 DF 1 每次操作后 SI, DI 递减
PUSHF and POPF
PUSHF 的功能是将标志寄存器的值压栈 POPF 的功能室将标志寄存器的值出栈, 送入标志寄存器中.
欢迎交流任何想法.
End…