版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AVR单片机原理及应用陈渊睿Tel:-mail: 华南理工大学电力学院关于状态寄存器SREG 1 状态寄存器状态寄存器SREG(MCS51类似的寄存器为程序状态字类似的寄存器为程序状态字PSW,有进位,有进位/借位借位CY, 辅助进位辅助进位AC, 用户标志用户标志F0, 溢出溢出OV, 奇偶标志奇偶标志P等等) 其各标志位意义如下:其各标志位意义如下:全局中断触发禁止位,为中断总控制开关。将:全局中断触发禁止位,为中断总控制开关。将其清除,则禁止一切中断(但在异步工作方式下其清除,则禁止一切中断(但在异步工作方式下的的 T/C2 的中断唤醒的中断唤醒MCU功能除外)
2、功能除外):通用标志位,可将一对程序执行起重要作用:通用标志位,可将一对程序执行起重要作用(或常用)的标志位放在此处,通过对它测试,(或常用)的标志位放在此处,通过对它测试,实现执行不同功能。如:可用实现执行不同功能。如:可用BLD指令将指令将T标志标志位位76543210 $3F($5F)ITHSVNZC送至寄存器某位,或用送至寄存器某位,或用BST指令将寄存器某位存于指令将寄存器某位存于T标志位,实现标志位,实现快速检测判断快速检测判断:半进位标志位,指示加、减运算时,低四位向:半进位标志位,指示加、减运算时,低四位向高四位产生的进高四位产生的进(借借)位。以其与进位位。以其与进位C配合,
3、可实配合,可实现现十进制加减法十进制加减法运算运算软件调整软件调整(DAA)功能;或用功能;或用于十进制数增于十进制数增(如数字钟如数字钟)调整场合调整场合:符号标志位,:符号标志位, ,在正常运算条件下,在正常运算条件下(,不溢出),即运算结果最高位(,不溢出),即运算结果最高位作为符号是正确的。而作为符号是正确的。而当产生溢出时,此当产生溢出时,此时时 已不能正确指示运算结果之正负,但已不能正确指示运算结果之正负,但 仍是正确的仍是正确的。对于单。对于单(或多或多)字节字节有符号有符号数数据来说,执行减法或比较操作之后,据来说,执行减法或比较操作之后,标志能正标志能正确指示参与相减或比较的
4、两个数的大小确指示参与相减或比较的两个数的大小:溢出标志位,模补码:溢出标志位,模补码(即即符号数符号数)加、减运算加、减运算溢出之标志,溢出表示运算结果溢出之标志,溢出表示运算结果超过了符号数所超过了符号数所能表示的范围能表示的范围(-128+127)。加法溢出表现为正。加法溢出表现为正正负,或负负正;减法溢出表现为正负正负,或负负正;减法溢出表现为正负负,或负正正。负,或负正正。溢出时溢出时,运算结果最高位,运算结果最高位(即(即 )取反才是真正的结果符号取反才是真正的结果符号。例如:。例如: $30$50$80,正正负,溢出,正正负,溢出$80$90$10,负负正,也为溢出,负负正,也为
5、溢出:负数标志位,:负数标志位,直接取自运算结果最高位直接取自运算结果最高位。时运算结果为负,否则为正。但时运算结果为负,否则为正。但溢出时不能表溢出时不能表示真实结果示真实结果(见上条对溢出标志的说明)。(见上条对溢出标志的说明)。:零标志位,用以标示数据算术运算或逻辑运算:零标志位,用以标示数据算术运算或逻辑运算结果是否为零,或多字节数据算术运算(包括比结果是否为零,或多字节数据算术运算(包括比较)结果是否为零。较)结果是否为零。运算(比较)结果为零(即运算(比较)结果为零(即所有位都清除)时,标志所有位都清除)时,标志置位置位。就。就字节型数据字节型数据运算运算结果来说,的逻辑表达式为结
6、果来说,的逻辑表达式为/R7/R6/R5/R4/R3/R2/R1/R0:进:进/借位标志位,标志加法产生的进位,或减法借位标志位,标志加法产生的进位,或减法产生的借位。多字节加、减法(包括比较)运算产生的借位。多字节加、减法(包括比较)运算时,时,通过将产生的进位或借位提供给高位字节,通过将产生的进位或借位提供给高位字节,以实现多字节正确相加或相减以实现多字节正确相加或相减。也是判断相减。也是判断相减(比较)两个无符号数大小的标志。多字节移位(比较)两个无符号数大小的标志。多字节移位操作时以传递衔接。操作时以传递衔接。 对全部标志位都可进行置位、清位操作;都可检对全部标志位都可进行置位、清位操
7、作;都可检测各标志位,以检测结果决定程序走向,引出繁测各标志位,以检测结果决定程序走向,引出繁多的条件转移指令。多的条件转移指令。 标志位很重要,标志位很重要,对运算结果的判断处理,要以相对运算结果的判断处理,要以相应标志位为依据应标志位为依据。它们也是分支、循环走向的路。它们也是分支、循环走向的路标。初学者因为不熟悉指令系统,编程时要时时标。初学者因为不熟悉指令系统,编程时要时时检索各指令功能及其执行后对标志位的影响,故检索各指令功能及其执行后对标志位的影响,故要熟记才能提高编程的速度和质量。要熟记才能提高编程的速度和质量。例例:AD:ADD D运算时运算时各标志位定义各标志位定义对于其它指
8、令,对于其它指令,C,Z,V,HC,Z,V,H定义式可能不同定义式可能不同2 执行指令对标志位的影响执行指令对标志位的影响各类指令对标志位的影响归纳如下:各类指令对标志位的影响归纳如下:位加减法(包括带位加减法(包括带/不带进(借)位的加、减法,不带进(借)位的加、减法,以及求补和带以及求补和带/不带借位比较等)指令,影响标志不带借位比较等)指令,影响标志位位 。 字加字加/减立即数(减立即数(063)指令和求反指令不影响)指令和求反指令不影响标志位。标志位。 增、减指令不影响标志位和。增、减指令不影响标志位和。 逻辑运算指令都不影响标志位和,但清除溢逻辑运算指令都不影响标志位和,但清除溢出标
9、志位。其中出标志位。其中CLR指令还清除标志位、,指令还清除标志位、,并使。并使。关于状态寄存器SREG 逻辑左移和循环左移指令同位加法指令一样影逻辑左移和循环左移指令同位加法指令一样影响标志位响标志位 。逻辑右移和循环右移指。逻辑右移和循环右移指令以及算术右移指令都不影响半进位标志令以及算术右移指令都不影响半进位标志 ,但,但由于这些指令的特殊性,对标志位的影响面可进由于这些指令的特殊性,对标志位的影响面可进一步缩小或可简化。如算术右移指令不影响标志一步缩小或可简化。如算术右移指令不影响标志位和位和 ,并使,并使 ;逻辑右移指令清除标;逻辑右移指令清除标志位,使志位,使 等等。等等。 转移指
10、令中除中断返回指令转移指令中除中断返回指令RETI会置位全局中会置位全局中断控制标志位外,其他指令都不影响标志位。断控制标志位外,其他指令都不影响标志位。 数据传送指令如不向状态寄存器数据传送指令如不向状态寄存器SREG输出数据,输出数据,对标志位无影响。对标志位无影响。 位操作指令只影响作为操作对象的标志位。位操作指令只影响作为操作对象的标志位。关于状态寄存器SREG 关于状态寄存器SREG3 标志位与运算结果的关系标志位与运算结果的关系 运算时,计算机按二进制运算时,计算机按二进制(或十六进制或十六进制)逐位运算逐位运算得到结果,但会给出相应标志,以让用户判断结得到结果,但会给出相应标志,
11、以让用户判断结果是否正确。一般地,果是否正确。一般地,无符号数无符号数运算结果是否正运算结果是否正确只需看确只需看C和和Z,而,而符号数符号数运算要看运算要看N、V、(S)和和Z。(半进位标志半进位标志H主要用于十进制运算调整主要用于十进制运算调整)例例1:加法:加法 $30 + $50 = $80 运算后运算后C=0, Z=0, N=1, V=1, S=0作为无符号数加法时作为无符号数加法时, C=0(无进位无进位), 结果正确结果正确作为符号数加法时,作为符号数加法时,V=1(溢出溢出), N=1(负数负数),不正确,应,不正确,应软件修正软件修正(如用如用2个字节表示个字节表示, S=0
12、, 应为正数应为正数 $0080)3 标志位与运算结果的关系标志位与运算结果的关系例例2:$80 + $90 = $10运算后,运算后,C=1, Z=0, N=0, V=1, S=1作为无符号数运算时,作为无符号数运算时,C=1(有进位有进位)应加到高字节,否则结应加到高字节,否则结果不正确果不正确作为符号数运算时,作为符号数运算时, V=1(溢出溢出), N=0(正数正数),不正确,应软,不正确,应软件修正件修正(如用如用2个字节表示个字节表示, S=1, 应为负数应为负数 $FF10)-128 + -112 = -240例例3:$EB + $CA = $B5运算后,运算后,C=1, Z=0
13、, N=1, V=0, S=1, H=1作为无符号数运算时,作为无符号数运算时,C=1(有进位有进位)应加到高字节,否则结应加到高字节,否则结果不正确果不正确作为符号数运算时,作为符号数运算时, V=0(未溢出未溢出), N=1(负数负数),S=1(=N), 结结果正确,不必修正果正确,不必修正(-21 + -54 = -75)关于状态寄存器SREG 4 用软件实现用软件实现十进制加、减法调整十进制加、减法调整子程序的子程序的设计方法(即软件设计方法(即软件DAA) 计算机采用的十进制操作数一般为压缩型计算机采用的十进制操作数一般为压缩型8421 BCD 码码.每个每个 BCD 代表位十进制数
14、,每位代表位十进制数,每位BCD码共存于同一字节单元中。码共存于同一字节单元中。BCD运算涉及状运算涉及状态寄存器中的进位和半进位态寄存器中的进位和半进位 ,它们分别为高、,它们分别为高、低位低位 BCD的进(借)位。在的进(借)位。在进行进行 BCD码的加码的加减运算时减运算时,计算机是按二进制数对待的计算机是按二进制数对待的,因此会,因此会产生与十进制运算规则不相符合的情况:产生与十进制运算规则不相符合的情况:关于状态寄存器SREG 当产生进当产生进(借借)位位(或或)时,该进时,该进(借借)位位等于等于16(对涉及的一位(对涉及的一位BCD码而言),而在十进码而言),而在十进制运算时应等
15、于制运算时应等于10,二者相差,二者相差6。 可能产生非法可能产生非法 BCD 码(码(AF)。产生原因)。产生原因有二:一是在十进制加法运算时,该产生进位而有二:一是在十进制加法运算时,该产生进位而按二进制运算却不能产生进位,使和成为非法按二进制运算却不能产生进位,使和成为非法 BCD 码;二是相减产生借位时,借位应为码;二是相减产生借位时,借位应为10而按而按二进制运算为二进制运算为16,使差多并可能使差变为非法,使差多并可能使差变为非法BCD码。码。软件软件 DAA 即为纠正以上即为纠正以上“错误错误”而设。从以上说而设。从以上说明看到,明看到,“纠错纠错”的方法是做加减调整以及的方法是
16、做加减调整以及解决相关问题。解决相关问题。关于状态寄存器SREG (1)加法加法DAA经实践考察,经实践考察,BCD码码加法运算可产生以下种情况,加法运算可产生以下种情况,注意这里讲的进位是对和的泛指。注意这里讲的进位是对和的泛指。 不须调整。特点是既不产生进位,也不产生非法不须调整。特点是既不产生进位,也不产生非法,如,如$22$11$33。 产生非法产生非法BCD,必须对非法,必须对非法BCD加调整。特加调整。特点是点是BCD码相加后不产生进位,但加调整后产码相加后不产生进位,但加调整后产生进位,如生进位,如$36$37$6D,加,加$06调整后变为调整后变为$73(产生半进位)。(产生半
17、进位)。$68$87$EF,加,加$66调整后变为调整后变为$155(产生进位和半进位)等。产生进位和半进位)等。关于状态寄存器SREG 产生进位,必须加调整。特点是产生进位,必须加调整。特点是BCD码相加只码相加只产生进位,不会同时产生非法产生进位,不会同时产生非法BCD码;而加调码;而加调整后既不会再产生进位(而是清除了原来的进整后既不会再产生进位(而是清除了原来的进位),也不会产生非法位),也不会产生非法BCD。例。例$99$99$132,进位和半进位都置位,故加,进位和半进位都置位,故加$66来调来调整:整:$32$66$98,并要恢复进位。并要恢复进位。综合以上种情况,得出下面加法综
18、合以上种情况,得出下面加法DAA之实现方法:之实现方法:首先保存首先保存BCD码相加后的状态寄存器码相加后的状态寄存器SREG(保(保存其中的进位和半进位,分别称为存其中的进位和半进位,分别称为Co和和 Ho),再将),再将BCD码之和加上立即数码之和加上立即数$66,产生出,产生出新的进位新的进位Cn和半进位和半进位Hn。关于状态寄存器SREG 若若Co、Cn中有一个置位中有一个置位(只能有一个只能有一个),说明高位,说明高位BCD满足调整条件并调整完毕;否则为不够调整满足调整条件并调整完毕;否则为不够调整条件,应减条件,应减$60恢复。若恢复。若Ho、Hn中有一个置位中有一个置位(只能有一个只能有一个),说明低位,说明低位BCD满足调整条件并调满足调整条件并调整完毕;否则为不够调整条件,应减恢复。程整完毕;否则为不够调整条件,应减恢复。程序中是将新旧进位、半进位对应或起来,只对或序中是将新旧进位、半进位对应或起来,只对或结果进行判断。注意,软件结果进行判断。注意,软件DAA功能既要保证本功能既要保证本字节压缩字节压缩BCD码相加值的正确性,又要保证对高码相加值的正确性,又要保证对高位位BCD产生进位的正确性,故要将产生进位的正确性,故要将 CoCn 的结的结果返还给果返还给SREG中的进位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼伦贝尔学院《化工制图与CAD》2021-2022学年第一学期期末试卷
- 红河学院《新媒体数据分析与应用》2023-2024学年第一学期期末试卷
- 红河学院《思想政治教育方法论与案例分析》2021-2022学年第一学期期末试卷
- 红河学院《教育测量与评价》2023-2024学年第一学期期末试卷
- 最后姿势读后感
- 租用民房的协议书范文范本
- 农村买地修坟合同协议书范文
- 大型拖拉机耕地转让协议书范文
- 电子消费卡订购协议书范文
- 有关新学期学习计划范文集锦五篇
- 20世纪时尚流行文化智慧树知到答案章节测试2023年浙江理工大学
- 化工原理版天津大学上下册课后答案
- 特聘防疫员年终工作总结
- 可靠性的基本概念演示
- 【农村小品搞笑大全剧本】农村题材小品剧本;拍广告
- GB/T 23990-2009涂料中苯、甲苯、乙苯和二甲苯含量的测定气相色谱法
- GB/T 15238-2000术语工作辞书编纂基本术语
- GA/T 628-2006城市警用地理信息空间数据质量
- 二年级上册数学教案-除法的初步认识(青岛版五四制)
- 八年级上册道德及法治非选择题专项训练
- 中职学校人才培养模式-课件
评论
0/150
提交评论