- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机-汇编
第3章 MCS-51单片机的指令系统;3.1 汇编语言的指令格式及符号简介
;3.2 寻 址 方 式 ;3.2.1 立即寻址;3.2.2 直接寻址;3.2.3 寄存器寻址 ;例如:设R0的内容为60H,且(60H)=10H,即60H地址单元中的内容为10H,则语句MOV A, @R0的执行过程如图3.3所示。执行后,(A)=10H,即累加器A的内容成为10H。;3.2.5 变址寻址; 相对寻址是把指令中给定的地址偏移量rel与程序计数器?PC的当前值(读出该双字节或三字节的跳转指令后,PC指向的下条指令的地址)相加,得到真正的程序转移地址。 ;3.2.6 相对寻址;3.2.7 位寻址;3.3.1 通用传送指令;例1 若(50H)=10H,则执行指令MOV A, 50H之后,(A)=10H。
例2 若(R0)=20H,(20H)=39H,则执行指令MOV A, @R0后,(A)=39H。
例3 若(R5)=55H,则执行指令MOV A, R5后,(A)=55H。;;例1 若(30H)=20H,(R0)=30H,则执行指令MOV 90H, @R0的结果为(90H)=20H。
例2 若例1中的条件不变,而执行指令MOV P1, @R0,则(P1)=20H。 ;例1 若(R0)=50H,(50H)=20H,(A)=10H,则执行指令“MOV @R0, A”后,50H单元的内容由原来的20H变为10H。;5. 16位目标地址传送指令;3.3.2 外部数据存储器(或I/O口)与累加器A传送指令;3.3.2 外部数据存储器(或I/O口)与累加器A传送指令;例1 在外部程序存储器2000H单元开始存放了数字0~9的共阴极数码管的16进制数的字形代码3FH、06H、…、6FH。要求根据A中的值(0~9)来查找该数字所对应的代码以便显示。
若用PC作基址寄存器,则需要在MOVC A, @A+PC指令前用一加法指令对地址进行调整:
ADD A, #data
MOVC A, @A+PC; 1. 字节交换指令;2. 半字节交换指令;3. 累加器A中高四位与低四位交换指令;例1 PUSH A ;保护A中数据
PUSH PSW ;保护标志寄存器中数据
… ;执行服务程序
POP PSW ;恢复标志寄存器中数据
POP A ;恢复A中数据;3.4.1 加减运算指令 ;例1 执行指令:
MOV A, #0A9H
ADD A, #0B8H
对程序状态寄存器的影响如图3.6所示。;例2 8位数加法程序片断1:
MOV A, #23H
ADD A, #5AH
…;例3 8位数加法程序片断2:
MOV A, #0ABH
ADD A, #9AH
…;;;;;例1 设(40H)=0BAH,(41H)=98H,试编写40H内容减去41H内容后,结果再存入40H单元的程序。
MOV A, 40H ;(A)←(40H)
CLR C ;进位位C清0
SUBB A, 41H ;(A)←(A)-(41H) -(C)
MOV 40H, A ;(40H)←(A)
执行以上程序后,(40H)=22H,CY=0,OV=0。;例2 设有两个16位数相减,被减数的高8位放在41H,低8位放在40H,减数高8位放在43H,低8位放在42H,差的低8位存放在50H,高8位存放在51H,借位位存放在52H。 ;1. 乘法指令;程序编制如下:
MOV R0, #K ;设置被乘数地址指针
MOV A, @R0 ;被乘数送A中
MOV B, M ;乘数送B中
MUL AB ;(K)×(M)
MOV R1, A ;乘积的0~7位存入R1
MOV R2, B ;暂存积的8~15位
INC R0 ;指向被乘数高8位地址
MOV A, @R0 ;取被乘数高8位
MOV B, M ;乘数送B中
MUL AB ;(K+1)×(M)
ADD A, R2 ;求得乘积的8~15位
MOV R2, A ;乘积的8~15位存入R2
MOV A, B
ADDC A, #00H ;求得乘积的16~23位
MOV R3, A ;乘积的16~23位存入R3;2. 除法指令;例
文档评论(0)