第03章MCS-51单片机指令系统(3-4)._第1页
第03章MCS-51单片机指令系统(3-4)._第2页
第03章MCS-51单片机指令系统(3-4)._第3页
第03章MCS-51单片机指令系统(3-4)._第4页
第03章MCS-51单片机指令系统(3-4)._第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、KMU FWJ1 1/26/263.3 算术运算指令算术运算加法指令加法指令减法指令减法指令乘法指令乘法指令除法指令除法指令十进制调整十进制调整KMU FWJ2 2/26/26一、加法指令1. 不带进位加指令不带进位加指令进进位位半半进进位位自自定定义义工作工作寄存寄存器区器区溢溢出出PSWKMU FWJ3 3/26/26KMU FWJ4 4/26/26KMU FWJ5 5/26/262. 带进位加法指令带进位加法指令PSW的生成规则与的生成规则与ADD指令相同指令相同KMU FWJ6 6/26/263. 加加1指令指令注意:加注意:加1指令不影响指令不影响PSWKMU FWJ7 7/26/2

2、6为什么用ADDC指令?KMU FWJ8 8/26/264. 十进制调整指令十进制调整指令 为什么要十进制调整为什么要十进制调整 十六进制数的加法规则不完全适用于十进制数加法规则十六进制数的加法规则不完全适用于十进制数加法规则 出错原因出错原因 十六进制数(十六进制数(4位二进制数)是逢位二进制数)是逢16进进1 十进制数是逢十进制数是逢10进进1 调整方法调整方法低低4 4位或高位或高4 4位的和大于位的和大于9 9(1010B1010B1111B1111B),则该),则该4 4位要位要加加6 6修正修正低低4 4位的和有进位,则低位的和有进位,则低4 4位要位要加加6 6修正修正KMU F

3、WJ9 9/26/26KMU FWJ1010/26/26二、减法指令1. 带借位减带借位减KMU FWJ1111/26/26KMU FWJ1212/26/262. 减减1指令指令注意:减注意:减1指令不影响指令不影响PSWKMU FWJ1313/26/26三、乘除法指令KMU FWJ1414/26/263.4 逻辑运算与移位指令一、逻辑与指令 与运算规则与运算规则0 0 = 00 1 = 01 1 = 1KMU FWJ1515/26/26MOV 30H,AANLA,#0FH;清高清高4位,保留低位,保留低4位位MOV 40H,A ;低位低位BCD码放入码放入40H中中MOV A,30HANL

4、A,#0F0H;清低清低4位,保留高位,保留高4位位SWAP A ;高高4位和低位和低4位进行互换位进行互换MOV 41H, AEND拆字程序 例:将累加器例:将累加器A中的压缩中的压缩BCD码变成非压缩码变成非压缩的的BCD码,存入码,存入40H、41H单元中。单元中。KMU FWJ1616/26/26二、逻辑或指令 或运算规则或运算规则0 + 0 = 00 + 1 = 11 + 1 = 1KMU FWJ1717/26/26 例:将累加器例:将累加器A中的低中的低4位送位送P1口的低口的低4位输位输出,出,P1口的高口的高4位保持不变。位保持不变。KMU FWJ1818/26/26三、逻辑异

5、或指令 异或运算规则异或运算规则0 0 = 01 1 = 01 0 = 10 1 = 1KMU FWJ1919/26/26KMU FWJ2020/26/26四、累加器清0和取反指令KMU FWJ2121/26/26五、移位指令KMU FWJ2222/26/26 算法:左移算法:左移1 1位即乘位即乘2 2 CLRC; MOV A, #18H ;A = 0001 1000B = 24 RLCA ;A = 0011 0000B = 48编程实现无符号数2KMU FWJ2323/26/26编程实现两字节无符号数2 低字节先左移一次低字节先左移一次 然后高字节也左移一次然后高字节也左移一次 注意低字节

6、最高位不要移丢掉注意低字节最高位不要移丢掉M1低字节先左移低字节先左移CM1+1高字节后左移高字节后左移为什么不用RLC M1指令?KMU FWJ2424/26/26下次课前请预习下次课前请预习3.53.6节,并思考下列问题节,并思考下列问题 已知已知MA=2000H,SUBPR=4060H,下列程序是否下列程序是否正确?为什么?正确?为什么? MA:ACALL SUBPR 已知已知SP=70H,PC=2345H,执行调用指令执行调用指令LCALL 3456H后堆栈指针和堆栈中的内容是什么?此时调后堆栈指针和堆栈中的内容是什么?此时调用何处的子程序?用何处的子程序? 在上题中在上题中,当当80

7、31执行完程序末尾一条执行完程序末尾一条RET指令时,指令时,堆栈指针堆栈指针SP和程序计数器和程序计数器PC变为多少?变为多少?71H和和72H单元中的内容是什么?它们是否属于堆栈中的数据?单元中的内容是什么?它们是否属于堆栈中的数据?KMU FWJ2525/26/26练 习 题 二 已知:已知:A=38H,说明执行说明执行DA A指令前后,指令前后,累加器累加器A中的值分别是多少?中的值分别是多少? ADD A, #34H ; A=? DA A ;A=? 用什么指令实现如下操作?如何操作?用什么指令实现如下操作?如何操作?将累加器将累加器A A的低的低4 4位清位清0 0,其他位保持不变,其他位保持不变将累加器将累加器A A的高的高4 4位置位置1 1,其他位保持不变,其他位保持不变将累加器将累加器A A的高两位取反,其他位保持不变的高两位取反,其他位保持不变有几种方法可以将累加器有几种方法可以将累加器A A的所有位清的所有位清0 0KMU FWJ2626/26/26 已知已知:A=38H,R1=37H,C=1,片内片内RAM(37H)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论