标志寄存器

文章目录

    • 标志寄存器是什么
    • ZF标志
    • PF标志
    • SF标志
    • CF标志
    • OF标志
    • adc指令
    • sbb指令
    • cmp指令
    • 有条件的转移指令
    • DF标志和串传送指令
    • pushf和popf

标志寄存器是什么

在8086CPU中标志寄存器是一个特殊的寄存器,具有以下3中功能:

1.用来存储相关指令的某些执行结果
2.用来为CPU执行相关指令提供行为依据
3.用来控制CPU的相关工作方式

标志寄存器有16位,每一位都有专门的含义,记录特定的信息。

1514131211109876543210
OFDFIFTFSFZFAFPFCF

ZF标志

ZF是第六位,它记录了相关指令执行后,其结果是否为0,如果为0,那么ZF=1;否则ZF=0

mov ax,1
sub ax,1    ;此时ZF=1

注意:mov,push等传送指令对标志寄存器没有影响!!!。对后面的寄存器也用

PF标志

PF是第二位,它记录了相关指令执行后,其结果的所有bit位中的1的奇偶个数。当1的个数为偶数>时,PF=1;否则PF=0

SF标志

SF是第七位,它记录相关指令执行后,其结果是否为负数。如果为负数,SF=1;否则SF=0

CF标志

进位标志符CF是第零位,它记录相关指令执行后,是否使用到更高位。一般用于无符号数的运算

我们在执行0001减去1111时,会发现不够减,于是向高位借一位,变成10001减去1111,此时CF=1.
同样加法也是,当我们相加结果大于位数时,就会进一位,此时也有CF=1。

OF标志

OF是第十一位,它记录了相关指令执行后,是否溢出。与CF相对,一般使用与有符号数的运算

adc指令

adc是带进位加法
指令:adc 操作数1,操作数2
功能:(ax)=(操作数1)+(操作数2)+CF

作用:计算较大的数时进位。

add al,bl
adc ah,bh
;低位相加,如果产生溢出是无法表达的,同时高位也相加,将溢出的值加上溢出的1(CF)就是正确结果了.

当数据较大时,我们可以使用多个寄存器来进行加法,先算低位,产生溢出CF就为1,然后算高位时就可以得到正确结果了。

sbb指令

sbb是带借位减法指令
用法与adc相同
功能:(ax)=(ax)-(bx)-CF

cmp指令

cmp指令是比较指令。
功能相当于减法指令,只是不保存结果,如果两个对象相等,ZF=1,PF=1,SF=0,CF=0,OF=0

有条件的转移指令

指令含义检测的相关标志位
je等于则转移ZF=1
jne不等于则转移ZF=-
jb低于则转移CF=1
jnb不低于则转移CF=0
ja高于则转移CF=0且ZF-0
jna不高于则转移CF=1或ZF=1

DF标志和串传送指令

方向标志符DF是第十位。决定si,di寄存器的值改变方向。当DF=0,每次操作后si,di递增;当DF=1,si,di递减。

movsb:根据DF传输串,每传输完一个字节,si,di自增1(或者自减1)
movsw:功能与movsb相同,传输字。si,di递增2(或者递减)

在传送的时候我们肯定还会遇到一个问题,要传送多少次,这个时候就要结合rep指令

rep movsb
功能:相当与loop指令,根据cx的值来判断执行多少次。

修改DF的值

cld:DF=0
std:DF=1

pushf和popf

pushf:将标志寄存器的值压入栈
popf:从栈中弹出数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.SVN 信息泄露漏洞原理以及修复方法

漏洞名称:.SVN信息泄露、版本管理工具文件信息泄漏 漏洞描述:据介绍,SVN(subversion)是程序员常用的源代码版本管理软件。一旦网站出现SVN 漏洞,其危害远比SQL注入等其它常见网站漏洞更为致命,…

餐饮行业新风口:社区店的成功案例与经营秘诀

在竞争激烈的餐饮行业中,社区店正成为一个新的风口。作为一名90后的鲜奶吧创业者,我在社区开店已经5年时间,下面我将分享一些成功的社区店案例,并揭示其经营秘诀。 1、案例一:特色小吃店 这家小吃店以地方特色美食为…

MySQL安装与卸载

安装 1). 双击官方下来的安装包文件 2). 根据安装提示进行安装(全部默认就可以) 安装MySQL的相关组件,这个过程可能需要耗时几分钟,耐心等待。 输入MySQL中root用户的密码,一定记得记住该密码 配置 安装好MySQL之后,还需要配置环境变量&am…

平台总线--ID匹配和设备树匹配

一、ID匹配之框架代码 id匹配(可想象成八字匹配):一个驱动可以对应多个设备 ------优先级次低 注意事项: device模块中,id的name成员必须与struct platform_device中的name成员内容一致,因此device模块中…

数据结构与算法-插值查找

引言 在计算机科学的广阔天地中,数据结构和算法扮演着至关重要的角色。它们优化了信息处理的方式,使得我们在面对海量数据时能够高效、准确地进行检索与分析。本文将聚焦于一种基于有序数组且利用元素分布规律的查找算法——插值查找(Interpo…

C++面向对象程序设计-北京大学-郭炜【课程笔记(五)】

C面向对象程序设计-北京大学-郭炜【课程笔记(五)】 1、常量对象、常量成员函数1.1、常量对象1.2、常量成员函数1.3、常引用 2、友元(friends)2.1、友元函数2.2、友元类 3、运算符重载的基本概念3.1、运算符重载 4、赋值运算符的重…

二维码门楼牌管理系统应用场景:推动旅游与文化产业的智慧化升级

文章目录 前言一、二维码门楼牌管理系统在旅游领域的应用二、二维码门楼牌管理系统在文化产业的应用三、结语 前言 随着信息技术的不断发展,二维码门楼牌管理系统作为一种创新的信息化手段,正在逐渐渗透到旅游和文化领域。它通过为文化景点、旅游景点和…

ARM系统控制和管理接口System Control and Management Interface

本文档描述了一个可扩展的独立于操作系统的软件接口,用于执行各种系统控制和管理任务,包括电源和性能管理。 本文档描述了系统控制和管理接口(SCMI),它是一组操作系统无关的软件接口,用于系统管理。SCMI 是可扩展的,目前提供了以下接口: • 支持的接口的发现和自描述…

Java Map接口实现类之 HashMap

定义 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable{static final int DEFAULT_INITIAL_CAPACITY 1 << 4; //默认初始化容积&#xff0c;就是默认数组的长度为 16static final int MAXIMUM_CAP…

keep-alive 页面切换不触发onActivated和onDeactivated方法周期

<keep-alive :include"tagList"><component :is"Component" /></keep-alive>const tagList computed(() > {return $store.state.tagList })原因&#xff1a; store.state.app.tagList返回的是一个 Proxy&#xff0c; 代理了数组&am…

openxml获取xlsx的Excel.Validation

在 Open XML SDK 中&#xff0c;无法直接使用 Excel.Range 和 Excel.Validation&#xff0c;因为这是 VSTO (Visual Studio Tools for Office) 的概念&#xff0c;而不是 Open XML SDK 的概念。Open XML SDK 提供了对 Office Open XML (OOXML) 文件格式的低级访问&#xff0c;而…

Docker上部署LPG(loki+promtail+grafana)踩坑复盘

Docker上部署LPG&#xff08;lokipromtailgrafana&#xff09;踩坑复盘 声明网上配置部署踩坑 声明 参考掘金文章&#xff1a;https://juejin.cn/post/7008424451704356872 版本高的用docker compose命令&#xff0c;版本低的用docker-compose 按照文章描述&#xff0c;主要准备…

Windows下PostgreSQL安装教程

一、下载 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

自动化测试框架有哪些?

前言 自动化测试常用的Python框架有哪些&#xff1f;常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。Pytest、Robot Framework和UnitTest主要用于功能与单元测试&#xff0c;Lettuce和Behave仅适用于行为驱动测试。 一、Robot Framework Python测…

ASE 2023 Paper

1 CertPri: Certifiable Prioritization for Deep Neural Networks via Movement Cost in Feature Space. &#xff08;CertPri&#xff1a;通过特征空间中的移动成本对深度神经网络进行可认证的优先级排序。&#xff09; 2 Nuances are the Key: Unlocking ChatGPT to Find F…

3.8Code

基于顺序存储结构的图书信息表的新图书的入库 #include<iostream> #include<stdlib.h> #include<string.h>typedef int status;#define OK 1using namespace std;typedef struct{char no[50];char name[50];float price; }Book;typedef struct{Book* elem;i…

21世纪信息产业发展趋势与挑战

本报告旨在深入探讨21世纪信息产业的发展趋势与挑战。首先&#xff0c;通过分析信息技术的进步、互联网的普及和数字化的趋势&#xff0c;阐述了信息产业在各个领域的快速发展和深刻变革。其次&#xff0c;报告指出了信息产业面临的挑战&#xff0c;如信息安全、隐私保护和网络…

CTP-API开发系列之七:下报撤单及回报顺序

CTP-API开发系列之七&#xff1a;报撤单及回报顺序 前情回顾相关函数相关术语报单回报成交回报错单响应错单回报 重要序号RequestIDFrontIDSessionIDOrderRefExchangeID TraderID OrderLocalIDExchangeID OrderSysID 报单场景 前情回顾 CTP-API开发系列之一&#xff1a;各版…

Ducci Sequence(UVA 1594)

网址如下&#xff1a; Ducci Sequence - UVA 1594 - Virtual Judge (vjudge.net) 上乡村振兴概论&#xff0c;奖励自己一题 乐 一道set容器题&#xff0c;其中变成0的判断是利用了数组的每个数的总和&#xff08;毕竟每个数都大于或等于0&#xff09; 数组在原来的基础上&a…

计网(复习)黑书

1.整体概述 1.1 什么是Internet 从构成角度&#xff1a; 节点&#xff1a;主机端系统&#xff0c;及其运行的应用程序&#xff1b;路由器、交换机等网络交换设备 边&#xff1a;通信链路&#xff08;同轴电缆、光纤、无线电、卫星&#xff1b;传输速度带宽&#xff08;bps&am…