11.1 标志寄存器

8086CPU中有14个寄存器,在历来文章中已经介绍过大部分,还有一个标志寄存器,在cpu中也担任着重要的位置。

在标志寄存器中是按位来起作用的,也就是说其中每一位的0和1都有着特殊的含义。

ZF—零标志

PF—奇偶标志

SF—符号标志

CF—进位标志

OF—溢出标志

习题

11.2 adc指令

在adc中使用了上述的CF进位标志,他的作用是将俩这相加时查看CF中的值,若为1,即若有进位或借位,则在最终结果中加1。可以用于大数相加。
adc ax,bx=(ax)+(bx)+(CF)


11.3 sbb指令

是adc的反向指令,相应的减法借位指令。
sbb ax,bx=(ax)-(bx)-(CF)

11.4 cmp指令

用来当做比较指令,不会对数值寄存器中实现操作,只会调整标志寄存器中的各个标志的01。
cmp ax,bx=(ax)-(bx)



jxxx的判断只关心标志位,cmp命令不是必须的。

例题



11.5 DF标志和串传送指令


movsb(byte)

  • ((es)*16+(di))=((ds)*16+(si))

DF=0时:
(si)=(si)+1
(di)=(di)+1
DF=1时:
(si)=(si)-1
(di)=(di)-1

movsw(word)

  • ((es)*16+(di))=((ds)*16+(si))

DF=0时:
(si)=(si)+2
(di)=(di)+2
DF=1时:
(si)=(si)-2
(di)=(di)-2

std和cld指令

std标志寄存器DF位置1.
cld标志寄存器DF位置0
在执行rep时,DF=0,(si)=(si)+1,(di)=(di)+1,DF=1,(si)=(si)-1,(di)=(di)-1

rep指令

rep 指令配合movsb/movsw指令相当于简化loop指令。

【汇编】流程转移——标志寄存器(ZF—零标志、PF—奇偶标志、SF—符号标志、CF—进位标志、OF—溢出标志)、adc进位加法指令、sbb借位减法指令、cmp指令、DF标志、REP指令、std、cld相关推荐

  1. 汇编语言-013(DAS 、DAA与DAS、QWORD类型用SBB借位减法、编写指令将AX符号扩展到EAX,不能使用CWD、用SHR和条件判断指令将AL循环右移一位、SHLD、压缩十进制转换)

    1:DAS : SUB或SBB在AL中生成二进制结果,DAS(减法后的十进制调整)转压缩十进制格式 .386 .model flat,stdcall.stack 4096 ExitProcess PR ...

  2. 汇编语言-012(扩展加法指令ADC、带借位减法指令SBB、执行加法后进行ASCII调整指令、AAS 、AAM、AAD 、DAA指令将和数转成压缩十进制格式)

    1:ADC : 扩展加法指令ADC .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.code main P ...

  3. 贺利坚老师汇编课程54笔记:ZF零标志ZERO FLAG

    指路老师的博客 ZF零标志ZERO FLAG ZF标记相关指令的计算结果是否为0 ZF = 1,表示结果是0,1表示逻辑真 ZR MOV AX,1 AND AX,0 ZR代表ZF值为1,表示结果是0 ...

  4. 贺利坚老师汇编课程55笔记:带借位减法指令SBB

    指路老师的博客 SBB是带借位的减法格式,利用CF位上记录的借位值 SBB AX,BX;(AX) = (AX)-(BX)-CF 对任意大的数进行减法运算 003E 1000H - 0020 2000H ...

  5. 标志寄存器(flag)

    8086CPU的标志寄存器有16位,其中储存的信息通常被称为程序状态字. 其他寄存器时用来存放数据的,整个寄存器具有一个含义. flag寄存器是按位起作用的,它的每一位都有专门的含义,记录特定的信息. ...

  6. 汇编语言随笔(3)-条件转移指令和标志寄存器

    标志寄存器 标志寄存器通常具有以下三种作用:       1,用来存储相关指令的某些执行效果       2,用来为CPU执行相关指令提供行为依据       3,用来控制CPU的相关工作方式     ...

  7. 汇编:CPU结构 - FLAG标志寄存器和相关指令

    文章目录 一.概述 1.标志寄存器的作用 2.8086CPU标志寄存器的结构 3.debug查看标志位 二.标志位 1.CF(0):进位标志位 2.PF(2):奇偶标志位 3.AF(4):辅助进位标志 ...

  8. 标志寄存器的详细解释

    简介:    CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有三种作用.    (1)用来存储相关指令的某些执行结果.    (2)用来为CPU执行相关指令提供行 ...

  9. 标志寄存器——标志位

    标志位简介: 标志寄存器,又称程序状态寄存器(它的内容是Program Status Word,PSW).这是一个存放条件码标志,控制标志和系统标志的寄存器. 6个状态标志位 CF-进位标志,加法时的 ...

最新文章

  1. 把梯度下降算法变成酷炫游戏,这有一份深度学习通俗讲义
  2. 如何保护数据中心免受电子腐蚀和突然故障的威胁?
  3. 多项式输出pascal程序
  4. python实现跨excel的工作表sheet之间的复制
  5. php计算经纬度距离,php经纬度计算距离
  6. python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载
  7. 洛谷1005 【NOIP2007】矩阵取数游戏
  8. openlayers之EPSG3857
  9. Spring Boot(二):Web 综合开发
  10. C++ double转CStringW/LPCWSTR
  11. mongoDB--1 概念
  12. WebServices SOAP简单介绍
  13. laravel 理论
  14. 题解 JZOJ 1354.土地购买
  15. app指纹登录 java后端_Android应用实现指纹登录
  16. IIS8/IIS7/IIS6 出现ADODB.Connection 错误 '800a0e7a'的解决办法
  17. C语言写的简单病毒程序
  18. nginx配置和优化详解
  19. Excel VBA 金融建模 培训
  20. 最全介绍的代理模式---第一节-静态代理

热门文章

  1. 笔记本正版风扇与盗版风扇 ADDA区别
  2. 蜘蛛爬取网页服务器卡死,总结搜索引擎蜘蛛抓取不到页面的原因及改善措施
  3. sql拼接字段,拼接同1行的不同列,拼接同1列的不同行
  4. 【Hackintosh】记录Nvidia GTX1080Ti吃上Monterey12.4的折腾历程
  5. js replace 全局替换的操作方法
  6. java毕业设计校园商城网站平台mybatis+源码+调试部署+系统+数据库+lw
  7. Blender基础:布尔修改器、线框修改器、表面细分修改器
  8. python输入文字字符串、如何提取字符_python如何提取字符串
  9. Android managedQuery查询如果加入group by条件(及其猥琐的方法)
  10. Lazada新手卖家快速入门技巧