shuiyu 发表于 2017-10-11 20:18:32

《零基础入门学习汇编语言》第五十四讲及检测点11.1

本帖最后由 shuiyu 于 2017-10-12 20:48 编辑

越努力,越幸运。欢迎大家来看我的笔记{:10_297:} ,不对的请各位大佬指正,谢谢{:10_254:}

在课程设计1用自己的方法写了一个星期,发现还是写不出来,索性就留着以后再写了(内心难受得一匹{:10_247:} )感觉自己很low{:10_280:} ,耽误了日常笔记的更新不好意思各位{:5_111:}

一、ZF标志、PF标志、SF标志
(1)8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。我们己经使用过8086CPU的ax、bx、cx、dx、si、di、bp、sp、ip、cs、ss、ds、es等13个寄存器了。本章中的标志寄存器(以下简称为flag)是我们要学习的最后一个寄存器。flag 和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义。而flag寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息。
8086CPU的flag寄存器的结构:


(2)
ZF:零标志位。判断结果是否为0。若为0,ZF=1,若不为0,则ZF=0

PF:奇偶标志位。判断所有二进制位中1的个数。偶数时PF=1,奇数时PF=0。

SF:符号标志位。判断结果正负(PS:怎样判断正负请看下面)。若为正SF=0,若为负SF=1。
有符号数(第一位为符号位)
把一个二进制数当成有符号数的时候,第一位为0时,表示该数为正的
把一个二进制数当成有符号数的时候,第一位为1时,表示该数为负的

(3)注意:
在8086CPU的指令集中,有的指令的执行是影响标志寄存器的,比如:add、sub、mul、div、inc、or、and等,它们大都是运算指令(进行逻辑或算术运算);有的指令的执行对标志寄存器没有影响,比如:mov、push、pop等,它们大都是传送指令。


检测点11.1
这个检测点很简单,对着ZF、PF、SF的定义对照就行了。主要让我们注意的是那些指令对标志寄存器没有影响。

sub al,al                al=0h                ZF=1        PF=1        SF=0
mov al,1                al=1h                ZF=1        PF=1        SF=0        mov指令对标志寄存器没有影响
push ax                al=1h                ZF=1        PF=1        SF=0        puah指令对标志寄存器没有影响
pop bx                bx=1h                ZF=1        PF=1        SF=0        pop指令对标志寄存器没有影响
add al,bl                al=2h                ZF=0        PF=0        SF=0
add al,10                al=12h                ZF=0        PF=1        SF=0
mul al                al=144h                ZF=0        PF=1        SF=0










谢谢小甲鱼带来的视频教程,感谢!! {:10_303:}

本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记{:10_297:} ,不对的请各位大佬指教,谢谢{:10_254:}

兰陵月 发表于 2017-10-12 10:38:22

{:5_90:}{:5_90:}
快学啊,学完了学32位汇编,学保护模式下的,咱们一起

shuiyu 发表于 2017-10-12 17:34:03

兰陵月 发表于 2017-10-12 10:38
快学啊,学完了学32位汇编,学保护模式下的,咱们一起

哈哈,好的好的。因为现在开学了没啥时间了,所以进度就有点慢{:10_250:}

兰陵月 发表于 2017-10-15 11:25:35

shuiyu 发表于 2017-10-12 17:34
哈哈,好的好的。因为现在开学了没啥时间了,所以进度就有点慢

基础最重要,基础学好了,以后学习就会顺利些

阿潘潘 发表于 2018-5-13 18:52:29

本帖最后由 阿潘潘 于 2018-5-13 18:54 编辑

1

燃烧的飞星 发表于 2019-12-22 18:19:25

进制好像错了,2h+10dec是Ch或者12dec吧

zwhe 发表于 2020-6-3 16:28:52

{:7_144:}

小飞侠NO.1 发表于 2021-5-19 09:13:18

最后一行错了,mul al   结果al应为144d,也就是90h,如果是144h的话,你转化二进制会有3个1,那么PF标志位就不为1了
页: [1]
查看完整版本: 《零基础入门学习汇编语言》第五十四讲及检测点11.1