- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章_51单片机的指令系统
字节交换指令XCH 数据交换指令XCH、XCHD和SWAP 数据交换属于同时进行的双向传送 【例3-20】若(R0)=80H,(A)=20H。 执行指令 XCH A,R0 后, (A)=80H,(R0)=20H。 半字节交换指令XCHD 【例3-21】若(R0)=30H,(30H)=67H, (A)=20H。执行指令 XCHD A,@R0 指令后,(A)=27H,(30H)=60H。 XCHD是间址操作数的低半字节与A的低半字节互换。 SWAP是累加器的高低4位互换 【例3-22】若(A)=30H,执行指令SWAP A后,(A)=03H 。 【例3-17】 设片内存储器40H和41H中分别存放有5和8的ASCII码35H和38H,试编制程序将两个ASCII码转换成BCD码58H,存放在42H中。 3.4 算术运算类指令(24条) 算术运算结果要影响PSW中标志位 CY为1,无符号数(字节)加减发生进位或借位 OV为1,有符号数(字节)加减发生溢出错误 AC为1,十进制数(BCD码)加法的结果应调整 P为1,存于累加器A中操作结果的“1”的个数为奇数 标志位意义 标志位与相关指令影响 指令 标志 ADD、ADDC、SUBB DA MUL DIV CY √ √ 0 0 AC √ √ × × OV √ × √ √ P √ √ √ √ 算术运算影响标志位示例 【例3-23】有2个参与相加的机器数,一个是84H,另一个是8DH。试分析运算过程及其对状态标志的影响。 结果:CY为1;AC为1 ;OV为1 ;P为0 3.4.1 加法 不带进位加法 【例3-24】若有2个无符号数存于累加器A和RAM的30H单元,即(A)=84H,(30H)=8DH,试分析执行指令 ADD A,30H 后的结果。 由于对无符号数相加,要考察CY。由上页图可知,CY=1,因此知道运算的结果发生了进位,即实际值应该是100H+11H。 所以,编程者应确保单字节无符号数运算结果不要超过255 【例3-25】若有2个有符号数存于累加器A和RAM的30H单元,即(A)=84H,(30H)=8DH,试分析执行指令 ADD A,30H 后的结果。 有符号数相加,只需考察溢出标志OV即可。由上图可见OV=1,因此可知运算的结果发生了溢出,这说明累加器A中的结果已经不是正确的值了。 编程者应确保单字节有符号数运算结果不超过-128~127。否则,就要将数据用多字节表示或在程序运行中对状态标志进行判断: 无符号数用JNC或JC,有符号数要用JNB或JB。 带进位加法(这组指令方便了多字节加法的实现) 加1 十进制调整 DA A ;调整A的内容为正确的BCD码 两个压缩的BCD码按二进制相加后,必须经过调整方能得到正确的和。 当A中低4位出现了非BCD码(1010~1111)或低4位的进位AC=1,则应在低4位加6调整。 当A中高4位出现了非BCD码(1010~1111)或高4位的进位CY=1,则应在高4位加6调整。 执行十进制调整指令后,PSW中的CY表示结果的百位值 【例3-24】若(A)=0110 1001B,表示的BCD码为 (R2)=0101 1000B,表示的BCD码为 ,执行指令: ADD A,R2 DA A (A)=0010 0111B,即 且(CY)=1,即正确的结果为:127 3.4.2 减法 带借位减法 用此组指令完成不带借位的减法,只需先清CY为0即可 CY为1,表示D7位需借位 AC为1,表示D3位需借位 OV为1,表示“D6有借位D7无借位”或“D7有借位D6无借位” 【例3-25】若(A)=C9H,(R2)=54H,(CY)=1,试分析指令SUBB A,R2执行后,累加器的内容及状态标志。 (A): 1 1 0 0 1 0 0 1(201) -(CY): 1(1) 1 1 0 0 1 0 0 0 -(R2): 0 1 0 1 0 1 0 0(84) 结果: 0 1 1 1 0 1 0 0(116) 即:(A)=74H,(CY)=0,(AC)=0,(OV)=1,(P)=0。 分析:数据为无符号类型。该指令执行前CY=1,说明此指令不是运算的最低字节,即在此指令执行之前,一定执行过低字节的减法并产生了借位。因此,本次相减(201-1-84=116=74H)结果为74H。 减1 这组指令仅 DEC A 影响P标志。其余指令都不影响标志位的状态。 【例3-20】如果(A)=0C9H,(R3)=54H,CY=1,此时,用带借位减法
文档评论(0)