- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例3-3 设(70H)=60H,(60H)=20H,P1口为输入口, P1口当前的状态为AAH。分析下面程序的结果。 MOV R0,#70H MOV A,@R0 MOV R1,A MOV B,@R1 MOV @R0,P1 例题 设从程序存储器的TABLE开始存放0~9的平方值,设A中存放0~9间的某数。分析程序: MOV DPTR,#TABLE MOVC A,@A+DPTR ;改用MOVC A,@A+PC指令行不行?为什么? XCH A,@R0 (占1B空间) RET (占1B空间) TABLE:DB 0,1,4,9,16,25,36,49,64,81 例 题 例: (A)=80H, (R7)=97H 执行:XCH A , R7 结果:(A)=97H, (R7)=80H 例:将片内RAM 60H单元与61H单元的数据交换。 XCH 60H,61H ←对吗? 例:(R0)=60H, (60H)=3EH, (A)=59H 执行: XCHD A, @R0 结果:(A) =5E H (60H)=39 H 应用举例1 8段数码管显示 应用举例2 例3-12 双字节无符号数减法,被减数分别在31H,30H中,减数分别在41H,40H单元中,差存于31H,30H单元中. CLR C MOV A,30H SUBB A,40H MOV 30H,A MOV A,31H SUBB A,41H MOV 31H,A 三. 乘法指令(Multiplication) MUL AB ; (A)×(B) 低8位→A 高8位→B A、B中都是无符号整数 如果积大于255,OV=1,否则OV=0;进位标志总是清零 Cy=0。 注意P91的例3-13中的:ADDC A,#0指令的用法。 四. 除法指令(Division) DIV AB ; (A)÷(B) 商 →A 余数→B A、B中都是无符号整数 如果除数B为“0”,OV=1,否则OV=0; 进位标志总是清零 Cy=0。 3.3.3 逻辑运算指令 除带进位的循环指令RRC、RLC对标志位有影响外,其它指令不影响标志位。 1. 简单逻辑操作指令 CLR A ; A← “0” CPL A ; A← A SWAP A ; A0~3 A4~7 例: (A)=3AH, CPL A, (A)=0C5H 0011 1010B → 1100 0101B (A)=3AH, SWAP A, (A)=0A3H 注:指令SWAP,也可看成一个4位循环移位指令,不影响标志位。 2. 循环指令 (1)、左循环指令 (Rotate Accumulator Left) RL A ;左移1位 例 (A)=6CH = 0110 1100B RL A (A)=1101 1000B=0D8H (2)、带进位左循环指令(Rotate Accumulator Left through Carry flag) RLC A ;左移1位,对标志位CY有影响 例(A)=6CH = 0110 1100B, (C) =1 RLC A (A)=1101 1001B=0D9H, (C) =0 (3)、右循环指令(Rotate Accumulator Right) RR
文档评论(0)