- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR单片机状的态寄存器SREG
AVR单片机原理及应用;关于状态寄存器SREG ;送至寄存器某位,或用BST指令将寄存器某位存于T标志位,实现快速检测判断
H:半进位标志位,指示加、减运算时,低四位向高四位产生的进(借)位。以其与进位C配合,可实现十进制加减法运算软件调整(DAA)功能;或用于十进制数增1(如数字钟)调整场合
S:符号标志位,S=N?V,在正常运算条件下(V=0,不溢出)S=N,即运算结果最高位作为符号是正确的。而当产生溢出时V=1,此时 N 已不能正确指示运算结果之正负,但S=N?V 仍是正确的。对于单(或多)字节有符号数据来说,执行减法或比较操作之后,S标志能正确指示参与相减或比较的两个数的大小;V:溢出标志位,模2补码(即符号数)加、减运算溢出之标志,溢出表示运算结果超过了符号数所能表示的范围(-128~+127)。加法溢出表现为正+正=负,或负+负=正;减法溢出表现为正-负=负,或负-正=正。溢出时,运算结果最高位(即 N)取反才是真正的结果符号。例如:
$30+$50=$80,正+正=负,溢出
$80+$90=$10,负+负=正,也为溢出
N:负数标志位,直接取自运算结果最高位。N=1时运算结果为负,否则为正。但溢出时不能表示真实结果(见上条对溢出标志的说明)。
Z:零标志位,用以标示数据算术运算或逻辑运算结果是否为零,或多字节数据算术运算(包括比较)结果是否为零。运算(比较)结果为零(即所有位都清除)时,Z标志置位。就字节型数据运算结果来说,Z的逻辑表达式为Z=/R7·/R6·/R5·/R4·/R3·/R2·/R1·/R0;C:进/借位标志位,标志加法产生的进位,或减法产生的借位。多字节加、减法(包括比较)运算时,通过C将产生的进位或借位提供给高位字节,以实现多字节正确相加或相减。C也是判断相减(比较)两个无符号数大小的标志。多字节移位操作时以C传递衔接。
对全部标志位都可进行置位、清位操作;都可检测各标志位,以检测结果决定程序走向,引出繁多的条件转移指令。
标志位很重要,对运算结果的判断处理,要以相应标志位为依据。它们也是分支、循环走向的路标。初学者因为不熟悉指令系统,编程时要时时检索各指令功能及其执行后对标志位的影响,故要熟记才能提高编程的速度和质量。;;2 执行指令对标志位的影响
各类指令对标志位的影响归纳如下:
①8位加减法(包括带/不带进(借)位的加、减法,以及求补和带/不带借位比较等)指令,影响标志位 HSVNZC。
② 字加/减立即数(0~63)指令和求反指令不影响标志位H。
③ 增、减1指令不影响标志位C和H。
④ 逻辑运算指令都不影响标志位C和H,但清除溢出标志位V。其中CLR指令还清除标志位S、N,并使Z=1。;⑤ 逻辑左移和循环左移指令同8位加法指令一样影响标志位 HSNVZC。逻辑右移和循环右移指令以及算术右移指令都不影响半进位标志 H,但由于这些指令的特殊性,对标志位的影响面可进一步缩小或可简化。如算术右移指令不影响标志位S和 N,并使 V=0;逻辑右移指令清除标志位N,使S=V 等等。
⑥ 转移指令中除中断返回指令RETI会置位全局中断控制标志位外,其他指令都不影响标志位。
⑦ 数据传送指令如不向状态寄存器SREG输出数据,对标志位无影响。
⑧ 位操作指令只影响作为操作对象的标志位。;关于状态寄存器SREG;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, N=1, V=0, S=1, H=1
作为无符号数运算时,C=1(有进位)应加到高字节,否则结果不正确
作为符号数运算时, V=0(未溢出), N=1(负数),S=1(=N), 结果正确,不必修正(-21 + -54 = -75);;4 用软件实现十进制加、减法调整子程序的设计方法(即软件DAA)
计算机采用的十进制操作数一般为压缩型8421 BCD 码.每个 BCD 代表1位十进制数,每2位BCD码共存于同一字节单元中。BCD运算涉及状态寄存器中的进位C和半进位 H,它们分别为高、低位 BCD的进(借)位。在进行 BCD码的加/减运算时,计算机是按二进制数对待的,因此会产生与十进制运算规则不相符合的情况:;① 当产生进(借)位(C=1或H=1)时,该进(借)位等于16(对涉及的一位BCD码而言),而在十进制运算时应等于10,二者相差6。
② 可能产生非法 BCD
您可能关注的文档
最近下载
- 3#T8030-25U塔吊安拆施工方案.docx VIP
- 《临床研究协调员(CRC)从业能力要求》(TZJPA 001-2024).pdf VIP
- 《北美国际护理诊断定义与分类(2021-2023)》修订解读.pptx VIP
- 规范《DGJ32J33-2006-江苏省建筑安装工程施工技术操作规程-地面工程》.pdf VIP
- 《智能网联汽车概论(活页式)》全套教学课件.pptx
- ABB机器人通讯介绍.pptx VIP
- DB32╱T 3839-2020 水闸泵站标志标牌规范.docx
- Word页眉页脚模板06.docx VIP
- 04J008挡土墙图集标准.pdf
- QC成果-提高大型储罐现场防腐质量验收一次合格率.pdf VIP
文档评论(0)