《汇编语言(第三版)》标志寄存器
标志寄存器
8086CPU中的flag寄存器包括:
CF、PF、ZF、SF、OF、DF。
传送指令不影响标志寄存器
ZF标志寄存器
zf标志寄存器位于flag中的第6为,表示零标志位。(至于flag是什么,暂时不用管)
ZF寄存器的作用
判断指令执行后结果是否为0。
举例
mov ax,1
sub ax,1
该指令执行后结果为0,ZF=1
PF标志寄存器
pf标志寄存器位于flag中的第2位,表示奇偶标志位。
PF寄存器的作用
判断指令执行完之后结果中bit位为1的个数是否为偶数。如果1的个数为偶数,pf=1;如果为奇数,pf=0。
举例
mov al,1
add al,10
执行后结果为00001011B,其中有3个1,pf=0。
SF标志寄存器
sf标志寄存器位于flag中的第7位,表示符号标志位。
SF寄存器的作用
判断指令执行之后结果是否为负。如果为负,sf=1。
SF寄存器的特点
如果我们进行无符号运算,sf寄存器无意义,如果进行有符号运算,sf记录正负。
举例
00000001B 可以看做无符号数1,有符号数+1。
10000001B 可以看做无符号数129,有符号数-127。
无符号加法:
mov al,10000001B
add al,1
结果 al = 10000010B,表示129+1 = 130。
有符号加法:
mov al,10000001B
add al,1
结果 al = 10000010B, sf=1,表示-127+1 = -126。
CF标志寄存器
cf标志寄存器位于flag中的第0位,表示仅为标志位。
CF寄存器的作用
在无符号数运算的时候,它录入了运算结果的最高有效位向更高位进位的进位值,或从更高位的借位值。
CF寄存器的特点
仅在无符号运算时起作用。
举例
进位:
mov al,98h
add al,al
执行后al=30h,cf=1,cf记录了从最高有效位向更高位的进位值。
add al,al
执行后al=60h,cf=0,cf记录了从最高有效位向更高位的进位值。
借位:
mov al,97h
sub al,98h
执行后al=ffh,cf=1,cf记录了向更高位的借位值。
sub al,al
执行后al=0,cf=0,cf记录了向更高位的借位值。
OF标志寄存器
of标志寄存器位于flag中的第11位,表示溢出标志位。
OF寄存器的作用
判断计算后的结果是否溢出。溢出,of=1;不溢出,of=0。
OF寄存器的特点
OF仅在有符号数运算时起作用。
如果因为溢出导致了实际结果为负,那么逻辑上真正的结果必定为正。
如果因为溢出导致了实际结果为正,那么逻辑上真正的结果必定为负。
举例
mov al,0f0h
add al,88h
指令执行后发生了溢出of=1。
mov al,0f0h
add 78h
指令执行后不发生溢出of=0。
标志寄存器在 Debug 中的表示
在寄存器中,标志局存起是按有意义的各个标志位单独表示的。在 Debug 中,我们可以看到:
标志 | 值为1的标记 | 值为0的标记 |
---|---|---|
of | OV | NV |
sf | NG | PL |
zf | ZR | NZ |
pf | PE | PO |
cf | CY | NC |
df | DN | UP |
《汇编语言(第三版)》标志寄存器相关推荐
- 读书笔记:汇编语言 第三版 王爽 清华出版社 前言 章一 章二 章三 章四 章五
汇编语言 第三版 王爽 清华出版社文档记录创建 2020年8月9日15:21:11初稿完成 2020年9月5日15:38:22前言汇编语言,CPU提供的机器指令的助记符的集合不同处理器,机器指令可能不 ...
- 王爽 汇编语言第三版 第11章 标志寄存器
条件码: ① OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配. ② SF(Sign Flag)符号标志,结果为负时置1,否则置0. ③ Z ...
- 王爽 汇编语言第三版 第10章 call 和 ret 指令 以及 子程序设计
第10章 call 和 ret 指令 10.1 ret 和 reft 指令 call 和 ret 指令都是转移指令,他们都修改 IP,或同事修改 CS 和 IP .他们经常被共同来实现子程序的设计. ...
- 王爽 汇编语言第三版 第7章 --- 更灵活的定位内存地址的方法(可以理解为 数组形式的内存定位)
汇编语言(第三版)王爽著 的十二个实验:https://blog.csdn.net/OrangeHap/article/details/89791064 大小端 字节对齐 对于 arm,intel 这 ...
- 王爽汇编语言第三版答案
转载自 https://blog.csdn.net/modiz/article/details/88776695 部分加上自己的分析,感谢 Modiz 汇编语言答案(王爽) 检测点1.1 (1)1个C ...
- 汇编语言-第三版-王爽-实验6、7、9、10、11、12、13、14、15
实验6(p160).实验7(p173).实验9(p189).实验10(p206,p208, p209).实验11(p234).实验12(p251).p256(编写7cH中断例程完成loop指令功能). ...
- 汇编语言-第三版-王爽-第15章 外中断-第16章 直接定址表
P280:在屏幕中间依次显示a~z, 显示过程中,按下ESC键后,改变显示颜色 P283:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理 P293:以十六进制的形式显示给定的字节型数据 ...
- 王爽 汇编语言第三版 第9章 转移指令的原理
第九章 转移指令的原理 汇编代码: assume cs:codesgcodesg segments: mov ax,bx ; mov ax,bx 的机器码占两个字节mov si, offset sm ...
- 读书笔记:汇编语言 第三版 王爽 清华出版社 章六 章七 章八 章九 章十
第六章 包含多个段的程序6.0 概述合法地通过操作系统取得的空间都是安全的操作系统不会让多个程序之间发生空间冲突程序向操作系统获得空间的方法程序加载时分配在程序中定义各种段程序运行时分配通过指令向操作 ...
- 王爽 汇编语言第三版 第8章( 寻址方式 ) --- 数据处理的两个问题
第八章 数据处理的两个基本问题 8.6 综合应用 示例代码 1: assume cs:codesg,ds:datasgdatasg segmentdb 1024 dup (0) datasg e ...
最新文章
- 《React Native移动开发实战》一一3.4 完善商品列表——ListView组件
- SpringCloud(Gateway网关使用)
- tensorflow安装正确, import tf, the problem is Couldn't find field google.protob.ExtensionRange.options
- 一步步编写操作系统 55 CPL和DPL入门2
- Symfony2博客应用程序教程:第四部分(续)-测试安全页
- android案例_Android实训案例——计算器的运算逻辑
- DistributionDB过大的原因
- 引入深国际、鲲鹏资本战略投资 苏宁易购复牌涨停
- 使用cairo绘制图形的部分函数总结
- python有哪些用途-Python有哪些用途
- 深度学习图形工作站环境安装与配置(1)CUDA和cuDNN的安装
- lzg_ad:XPE数据库组件
- 【雅思大作文考官范文】——第七篇: 'dress code' essay
- Pure Strategy Game
- Gary Marcus:因果熵理论的荒诞和认知科学带给AI的11个启示 | 文末赠书
- 宝塔linux webshell提权,linux提权 Root权限WebShell提权
- 迅雷链总工程师来鑫:区块链3.0需解决4大难题
- Primeng修改组件样式
- archlinux安装
- python语法报错原因_python萌新最常见5大错误
热门文章
- c语言斐波那契数列_视频丨神奇的斐波那契数列科学性与艺术性
- Java黑皮书课后题第3章:**3.24(游戏:抽牌)编写程序,模拟从一副52张的牌中抽一张牌,程序应显示牌的大小、花色
- 安装库_Python快速安装库的靠谱办法
- OpenCV C++ 01 - Load Image from File and Display
- Python中为什么推荐使用isinstance来进行类型判断?而不是type
- 如何测得存储空间大小
- 剑指Offer_12_数值的整数次方
- 核心动画03-图标抖动.mp4
- 子界类型的定义和应用
- 【转】【Asp.Net】Asp.net发送邮件的两种方法小结