单片机基础之汇编语言入门学习(五) 标志寄存器

**标志寄存器**

在这里插入图片描述
在这里插入图片描述
标志位

状态标志:
    用于记录程序运行结果的状态信息
    CF   ZF   SF   PF   OF   AF
控制标志:
    用于控制处理器执行指令
    DF     IF    TF
状态标志

CF进位标志:当运算结果的最高有效位有进位(加法)或借位(减法)的时候,进位标志置1,
ZF 零标志:看最低字节即后8位的数值是否全部为0.
SF 符号标志: 一般是看有符号的运算,看最低字节即后8位的最高位D7 有符号:-128~127
PF奇偶标志:看运算结果最低字节中‘1’的个数为0或偶数时,则PF=1,否则PF=0
AF辅助进位标志:若运算时D3(低半字节)有进位或借位时,AF=1,否则AF=0
OF溢出标志:若运算结果有溢出,则OF=1,否则OF=0

溢出:如果运算结果超出了范围,就产生了溢出,有溢出,说明有符号的运算结果不正确
说明:我们通常认为溢出(上溢)就是因为进位时当前存储格式(1B、2B、4B等)的位数(8bit、16bit、32bit)不够而引起的。比如8为寄存器:11111111B+1B=100000000B超过了八位的1则被认为是溢出寄存器(放不下),当然也是进位进上去的1
溢出与进位 区别
溢出标志(OF):表示有符号数运算结果是否超出范围,运算结果已经不正确。
进位标志(CF):表示无符号数运算结果是否超出范围,运算结果仍然正确。

OF范围:-128~127
CF范围:0~255

控制标志

DF方向标志:用于串操作指令中,控制地址的变化方向:

 设置DF为0,存储器地址自动增加
 设置DF为1,存储器地址自动减少
示例:
      CLD指令用于复位方向标志即复位操作,执行后DF=0;
      STD指令用于置位方向标志即置位操作,执行后DF=1.

IF中断允许标志:用于控制外部可屏蔽中断是否可以被处理器响应:

  设置IF为0,则禁止中断;
  设置IF为1,则允许中断。
示例:
      CLD指令用于复位中断标志,执行后IF=0;
      STD指令用于置位中断标志,执行后IF=1.

TF陷阱标志:用于控制处理器进入单步操作方式:

设置TF为0,处理器正常工作
设置TF为1,处理器单步执行指令

单步执行命令:处理器在每条指令执行结束时,便产生一个编号为1的内部中断。
这种内部中断称为单步中断,所以TF也成为的单步标志:利用单步中断可对程序进行逐条指令的调试。
(这一个操作主要是用于程序的调试)

学到这里我有点疑惑为啥这个和程序状态字PSW不太一样,有啥区别,有大佬知道的话能说一说吗

明白为啥了,这里的我所学的时汇编 CPU 8086的标志寄存器,而我所想的psw程序状态字是C51单片机的CPU的标志寄存器。
另附上看到一位大佬的博文关于PSW的写的很棒,膜拜
https://blog.csdn.net/yannanxiu/article/details/17225927?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&dist_request_id=1328760.2991.16172012905639187&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 make 这个工具自上个世纪 70 年代 Stuart Feldman 在贝尔实验室开发出以来,就一直是类 UNIX 程序员的最爱之一。通过检查文件的修改时间,make 工具可以知道编译目标文件所要依赖的其他文件。在复杂的项目中,如果只有少数几个文件修改过,make 工具知道仅仅需要对哪些文件重新编译就可以确保目标程序被正确的编译链接。这样做的好处就是在编译中,不仅可以节省大量的重复输入,还可以确保程序可以被正确的链接,缩短编译的时间。虽然如此,但是为 make 工具编写建造规则却不是一件容易的事。它复杂的配置规则,即使是有经验的开发者也望而生畏。make 工具的许多替代品便因此而诞生,SCons 就是是其中之一。SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,除此之外,它还有许多的优点。 -------------------------------------------------------------------------------- 回页首 SCons 简介 SCons 是一个开放源代码、以 Python 语言编写的下一代的程序建造工具。它最初的名字是 ScCons, 基于由 perl 语言编写的 Cons 软件开发而成,它在 2000 年 8 月获得了由 Software Carpentry 举办的 SC 建造比赛的大奖。现在 ScCons 已经被改名为 SCons,目的是为了表示不再与 Software Carpentry 有联系,当然,还有一个目的,就是为了更方便的输入。 作为下一代的软件建造工具,SCons 的设计目标就是让开发人员更容易、更可靠和更快速的建造软件。与传统的 make 工具比较,SCons 具有以下优点: 使用 Python 脚本做为配置文件 对于 C,C++ 和 Fortran, 内建支持可靠自动依赖分析 . 不用像 make 工具那样需要执行"make depends"和"make clean"就可以获得所有的依赖关系。 内建支持 C, C++, D, Java, Fortran, Yacc, Lex, Qt,SWIG 以及 Tex/Latex。用户还可以根据自己的需要进行扩展以获得对需要编程语言的支持。 支持 make -j 风格的并行建造。相比 make -j, SCons 可以同时运行 N 个工作,而不用担心代码的层次结构。 使用 Autoconf 风格查找头文件,函数库,函数和类型定义。 良好的夸平台性。SCons 可以运行在 Linux, AIX, BSD, HP/UX, IRIX, Solaris, Windows, Mac OS X 和 OS/2 上。 -------------------------------------------------------------------------------- 回页首 安装 SCons SCons 支持多种操作系统平台,并为各个系统制作了易于安装的文件,因此在各个系统平台上的安装方法不尽相同,在 SCons 的官方网站上可以查每个平台的具体安装方法。 如果 SCons 没有为你的系统制作相应的安装包,你也可以下载 SCons 的源代码,直接进行安装。 首先,从 SCons 的网站上下载最新的 SCons 源代码包(目前 SCons 的最新版本是 2.0.1)。其次,解压下载的源代码。视下载的源代码包的格式不同而有不同的方法,在 Windows 平台上,可是使用 winzip 或者其他类似的工具解压。在 Linux 平台上,对于 tar 包,使用 tar 命令进行解压,如: $ tar -zxf scons-2.0.1.tar.gz 然后切换进入解压后的目录进行安装,如 $ cd scons-2.0.1 $ sudo python setup.py install 命令执行如果没有错误,那么 scons 就被安装到系统上了。对于 Linux 来说,scons 会默认安装到 /usr/loca/bin 目录下,而在 Windows 平台上,则会被安装到 C:\Python25\Scripts 下。 -------------------------------------------------------------------------------- 回页首 使用 SCons 在 SCons 安装完成后,我们就可以使用 SCons 来建造我们的程序或者项目了。像很多编程书籍那样,在这里我们也通过一个简单的 helloscons 例子来说明如何使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值