当前位置: 首页 > news >正文

8086 FLAGS标志位详解

8086微处理器有一个16位的标志寄存器(FLAGS),其中只使用了9位,分为状态标志(6位)和控制标志(3位)。


一、状态标志(6位)

反映ALU运算结果的特征,供后续条件跳转指令判断。

标志位英文全称含义置1条件
CFCarry Flag进位/借位标志加法产生进位或减法产生借位
PFParity Flag奇偶标志结果低8位中“1”的个数为偶数
AFAuxiliary Carry Flag辅助进位标志低4位向高4位产生进位/借位(BCD码运算用)
ZFZero Flag零标志运算结果为0
SFSign Flag符号标志运算结果的最高位为1(即负数,有符号数视角)
OFOverflow Flag溢出标志有符号数运算结果超出范围
CF 与 OF 的区别:
  • CF针对无符号数:超出 0~65535(或 0~255)时置1

  • OF针对有符号数:结果超出 -32768~+32767(或 -128~+127)时置1

  • 示例:
MOV AL, 0x7F ; 127 ADD AL, 1 ; 结果 0x80 (128) ; CF=0, OF=1(有符号溢出), SF=1(最高位为1), ZF=0

二、控制标志(3位)

由程序员设置,控制CPU行为。

标志位英文全称作用
IFInterrupt Flag中断允许标志:1=允许可屏蔽中断,0=禁止
DFDirection Flag方向标志:1=串操作地址递减,0=递增
TFTrap Flag陷阱标志:1=单步调试模式(每执行一条指令产生一次中断)

控制标志只能通过专用指令修改:

  • IFSTI(置1),CLI(置0)

  • DFSTD(置1),CLD(置0)

  • TF→ 无直接指令,需通过PUSHF/POPF修改


三、未使用的标志位

8086的FLAGS寄存器共16位,实际只用9位,其余位(bit 1, 3, 5, 12~15)保留,读出不固定,写入应置0以保证兼容性。

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 [ 保留 ] [ OF ] [DF] [IF] [TF] [SF] [ZF] [ 保留 ] [AF] [ 保留 ] [PF] [ 保留 ] [CF]

四、常用指令对标志位的影响

指令CFOFSFZFAFPF
ADD / ADC
SUB / SBB
INC / DEC
MUL / DIV变化变化变化?变化
AND / OR / XOR00?
NOT
CMP同SUB同SUB同SUB同SUB同SUB同SUB
MOV

✓ = 受影响,— = 不影响,? = 未定义


五、典型应用场景

1. 判断无符号数大小(利用CF)
CMP AX, BX JA label ; AX > BX (CF=0 and ZF=0) JB label ; AX < BX (CF=1)
2. 判断有符号数大小(利用OF和SF)
CMP AX, BX JG label ; AX > BX JL label ; AX < BX
3. 多字节加法(利用CF)
ADD AL, BL ; 低8位相加 ADC AH, BH ; 高8位加上低位进位
4. 单步调试(利用TF)

TF=1时,CPU执行每条指令后自动触发INT 1,调试器可利用此功能。

5. 快速数组复制(利用DF)
CLD ; DF=0,地址递增 REP MOVSB ; 正向复制 STD ; DF=1,地址递减 REP MOVSB ; 反向复制

总结表速查

标志含义最常用时机
CF无符号数加减进位/借位多精度运算、无符号比较
OF有符号数溢出有符号比较、算术运算错误检测
ZF结果为零相等判断、循环计数
SF结果为负有符号数符号判断
AF低4位进位BCD码调整(DAA/DAS)
PF低8位1的个数为偶通信数据校验
IF可屏蔽中断开关临界区保护、中断控制
DF串操作方向字符串/数组复制方向控制
TF单步陷阱调试器实现

http://www.gsyq.cn/news/1430478.html

相关文章:

  • SAP变式权限管理避坑指南:从DB278错误看如何设计安全的变式交接流程
  • 别再只看FLOPs了!用MobileOne实测告诉你,移动端模型优化的真正瓶颈是什么
  • Keil Monitor串口中断冲突解决方案
  • Hugo基本用法(转)
  • Steam游戏自动破解终极指南:从源码编译到实战应用的完整教程
  • 植物健康系统毕业设计源码
  • 零知识证明集成失败率高达67%?Lovable 2.3.0 ZK-Rollup适配手册(含BLS签名加速实测数据)
  • 语音芯片厂家一览
  • 2020流程挖掘趋势:从RPA导航到数字孪生,AI驱动流程发现与实时监控
  • 个人品牌战略转型:公司、奖学金、研讨会三位一体同步启动的实践指南
  • 昌吉白蚁消杀防治优选金盾虫控 青蚁卫士:深耕 15 年本土知名品牌,专业虫害防控本地靠谱推荐 - 卓一科技
  • OpenRCT2 v0.5.1“沼泽城堡”版本发布,多项特性更新且将停对Win7/8官方支持!
  • SuperAGI与LlamaIndex集成:构建异构数据智能分析系统
  • Playwright连接浏览器踩坑实录:解决端口占用、配置文件污染与连接超时
  • 从数据洞察到模型调优:用Seaborn和Sklearn完整走一遍房价预测项目
  • 实战 Claude 的 effort 参数:让智能体“按需用力“省 token(含 Opus 4.8 更新)
  • 告别闪退!手把手教你用VS2010旗舰版写出第一个C++程序(附Hello World完整代码)
  • MedMNIST:18个标准化医疗图像数据集如何重塑医疗AI开发范式
  • 20253921 2025-2026-2 《网络攻防实践》第十周作业
  • 13502开源:黄大年茶思屋榜文135期 第2题:多模态Agentic Reasoning
  • Keil MDK USB调试中Event Recorder语法错误解决方案
  • 你的Power BI散点图还不会‘说话’?手把手教你添加动态标题和智能切片器
  • 20260530 3
  • 【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究附Matlab代码
  • 2026实测:专业降AI率网站选它准没错
  • 网盘文件直链获取终极指南:如何实现跨平台高速下载体验
  • 模块二,规划模式的定义
  • 基于复杂网络理论的快递网络优化方案【附仿真】
  • 别再删库重Fork了!Gitee同步上游代码的3种正确姿势(附Git命令详解)
  • 终极Android设备安全检测:免费开源工具Play Integrity API Checker完整指南