- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例如:将片内RAM 30H单元与40H单元中的内容互换。 方法1(直接地址传送法): MOV 31H,30H MOV 30H,40H MOV 40H,31H SJMP $ 方法2(间接地址传送法): MOV R0,#40H MOV R1,#30H MOV A,@R0 MOV B,@R1 MOV @R1,A MOV @R0,B SJMP $ 方法4(堆栈传送法): PUSH 30H PUSH 40H POP 30H POP 40H SJMP $ 方法3(字节交换传送法): MOV A,30H XCH A,40H MOV 30H,A SJMP $ 加、减法指令 所有的加法(ADD)、带进位加法(ADDC)、带借位减法(SUBB)运算都是以 A为一个加数或被减数,最终结果也存进 A 。 加法(ADD)、带进位加法(ADDC) 以及带借位减法(SUBB)运算中,如果产生了进位或借位,将自动对PSW中的Cy标志位置“1” 。 带进位加法(ADDC):(A)?(A)+(Cy)+(第二操作数) 带借位减法(SUBB):(A)?(A)-(Cy)-(第二操作数) 3.3.2 算术运算指令 加1/减1、乘/除指令 加1/减1操作: (INC,DEC——9条) INC, DEC与用加/减法指令做加1/减1 操作不同之处在于INC、DEC不影响标志位. 单字节乘/除运算: (MUL,DIV——2条) 两个单字节数的乘/除法运算只在A与B之间进行。 MUL AB: (A)与(B)相乘, 积为16位数, (A)?积的高8位; (B)?积的低8位 DIV AB: (A)除以(B),结果用2字节表示, (A)?商的整数部分;(B)?余数 十进制调整指令 十进制调整: DA A 用于两个BCD码之间的相加,这条指令只能跟在 ADD 或 ADDC 之后 若(A)3~0?9或(AC)=1则(A)3~0?(A)3~0+6; 若(A)7~4?9或(CY)=1则(A)7~4?(A)7~4+6; 例如:两个十进制数“65” 与“58”相加,根据常识, 显然其和应当为“123”。 MOV A,#65H ADD A,#58H DA A 结果:(A)= 23H (CY)= 1 试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。 解:参考程序如下: MOV A,R2 ;取第一个数的低8位 ADD A,R4 ;两数的低8位相加 MOV R6,A ;保存和的低8位 MOV A,R1 ;取第一个数的高8位 ADDC A,R3 ;两数的高8位相加,并把低8位相加 时的进位位加进来 MOV R5,A ;把相加的高8位存入R5寄存器中 SJMP $ 3.3.3 逻辑运算与循环类指令 逻辑与、或、异或指令 逻辑与(ANL),逻辑或(ORL),逻辑异或(XRL): 指 令 形 式 Byte Tm ANL(ORL,XRL) direct, A 2 1 ANL(ORL,XRL) direct,#data 3 2 ANL(ORL,XRL) A, #data 2 1 ANL(ORL,XRL) A, direct 2 1 ANL(ORL,XRL) A, @Ri 1 1 ANL(ORL,XRL) A, Rn 1 1 已知累加器A中已存有数:9AH 逻辑与ANL用于清0或者保留某些位: 例如: ANL A, #0FH; 则(A) = 0AH 逻辑或ORL用于置1或者保留某些位: 例如: ORL A, #0FH; 则(A) = 9FH 逻辑异或XRL用于取反或者保留某些位: 例如: XRL A, #0FH; 则(A) = 95H (A) ? 1001 1010 #0FH ? 0000 1111 A ? 1001 0101 清零、取反、循环指令 累加器清零/取反操作 (CLR,CPL—2条) CLR A ——对累加器清零 CPL A ——对累加器按位取非 累加器移位操作:(RL,RLC,RR,RRC—4条) RL A 左环移 RR A 右环移 累加器 A 累加
原创力文档


文档评论(0)