QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

鱼友Ⅲ

Rank: 4Rank: 4

积分
317
查看: 216|回复: 4

[学习笔记] 《零基础入门学习汇编语言》第五十五讲及检测点11.2

[复制链接]
最佳答案
1 
累计签到:136 天
连续签到:11 天
shuiyu 发表于 2017-10-12 22:06:16 2164 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 shuiyu 于 2017-12-5 17:31 编辑

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

一、CF:进位标志位(总结:记录无符号运算结果是否有进/借位,结果有进/借位时,CF=1)
(1)一般情况下,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值。对于位数为8的无符号数(从0开始)来说,其对应的二进制信息的最高位,即第7位,的最高有效位,而假想存在的第8位,就是相对于最高有效位的更高位。
(2)通俗的说就是:一个8 位的数因为加减乘除等原因变为9位时,这个第九位会被记录到标志寄存器的CF中。
(3)当两个数据做加法的时候,有可能向更高位借位。比如,两个 8 位数据:98H+98H,将产生借位。
另外一种情况,而当两个数据做减法的时候,有可能向更高位借位。比如,两个 8 位数据:97H-98H,将产生借位,借位后,相当于计算197H-98H。而flag的CF位也可以用来记录这个借位值。
(4)标志寄存器第0位中:当为NC时表示为0即无进位,CY表示为1即有进位。

二、OF标志:溢出标志位(总结:记录有符号运算结果是否溢出,结果溢出时,OF=1)
(1)OF与CF标志基本相似,要注意CF和OF的区别:CF是对无符号数运算有意义的标志位;而OF是对有符号数运算有意义的标志位。
对于无符号数运算,CPU用CF位来记录是否产生了进位;
对于有符号数运算,CPU 用 OF 位来记录是否产生了溢出,
(2)差别就是有符号数和无符号数之间的问题。比如:98+99=197;在无符号数的计算中,答案就是197(11000101),而在有符号数的计算中,答案则是-69,造成这种情况的原因是在 8 位寄存器al中存放不下。发生了溢出
(3)对于有无符号,计算机是分不清楚状况的,因此他必须两种都记载着,要怎么用,看的是你当他是什么!


检测点11.2
写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。
这个检测点难就难在怎么区分CF和OF,我们主要记住下面两点就可以了:
1.CF:进位标志位:记录无符号运算结果是否有进/借位,结果有进/借位时,SF=1
2.OF标志:溢出标志位:记录有符号运算结果是否溢出,结果溢出时,OF=1

2.PNG



三、adc指令
(1)adc是带进位加法指令 ,它利用了CF位上记录的进位值。(其实就是说两个数相加之后再加上此时CF的值)
比如:adc ax,bx 实现的功能是:
(ax)=(ax)+(bx)+CF
(2)在执行 adc 指令的时候加上的 CF 的值的含义,由 adc指令前面的指令决定的,也就是说,关键在于所加上的CF值是被什么指令设置的。显然,如果CF 的值是被sub指令设置的,那么它的含义就是借位值;如果是被add指令设置的,那么它的含义就是进位值。

编程任务
编程计算1EF000H+201000H,结果放在ax(高16位)和bx(低16位)中。
解:
分析:因为这两个数都超过了通用寄存器的存储范围,所以我们要分解运算(就是先计算处低16位相加的结果,再求去高16位相加的结果)。
通过计算器得到答案为:3F0000
看图,图中有解析:
3.PNG
由图可知我得到了正确答案。。


谢谢小甲鱼带来的视频教程,感谢!!

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

本帖被以下淘专辑推荐:

楼层
跳转到指定楼层
最佳答案
0 
累计签到:17 天
连续签到:1 天
微末非末 发表于 2017-12-4 20:24:51 | 显示全部楼层
mov al,10h        al=10h        0                0                0                1                1
楼主确定PF和ZF没错吗?al=10h,也就是16啊,PF应该等于0,并且ZF也应该等于0吧
最佳答案
0 
累计签到:17 天
连续签到:1 天
微末非末 发表于 2017-12-4 20:27:21 | 显示全部楼层
不会好意思,懵逼了。懂了
最佳答案
3 
累计签到:55 天
连续签到:27 天
xiaohaituan 发表于 2017-12-4 23:00:55 From FishC Mobile | 显示全部楼层
add al,90h的of不是0吗为啥是1
最佳答案
1 
累计签到:136 天
连续签到:11 天
shuiyu  楼主| 发表于 2017-12-5 17:33:24 | 显示全部楼层
xiaohaituan 发表于 2017-12-4 23:00
add al,90h的of不是0吗为啥是1

谢谢指正,我把题目错的都改正了(错了好几个地方)谢谢

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /2 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-12-17 16:13

快速回复 返回顶部 返回列表