没有合适的资源?快使用搜索试试~ 我知道了~
单片机指令系统(DOC).doc
需积分: 5 0 下载量 104 浏览量
2022-10-19
23:32:26
上传
评论
收藏 38KB DOC 举报
温馨提示
试读
23页
单片机指令系统(DOC).doc
资源详情
资源评论
资源推荐
单片机指令系统(DOC)
指令系统
数据传送指令
数据传送指令包括数据的传送、交换、堆栈数据的压入与弹出,是最
基本、使用率最高的一类指令。助记符有 MOV、MOVX、MOVC、XCH、
XCHD、SWAP、PUSH、POP 共八种。
1.MOV 类指令及功能(16 条)
这类指令的功能是从源操作数到目的操作数的数据传送。
MOV A, Rn ;Rn→A,寄存器 Rn 的内容送到累加器 A
MOV A, direct ;(direct)→A,直接地址中的内容送 A
MOV A, @Ri ;(Ri)→A,Ri 间址的内容送 A
MOV A, #data ;data→A,立即数送 A
MOV Rn,, A ;A→Rn,累加器 A 中的内容送寄存器 Rn
MOV Rn, direct ;(direct)→Rn;直接地址中的内容送 Rn
MOV Rn, #data ;data→Rn;立即数送 Rn
MOV direct, A ;A→(direct),A 中的内容送入直接地址
中
MOV direct, Rn ;Rn→(direct),寄存器内容送入直接地
址中
MOV direct, direct ;(direct) →(direct),源操作数
直接地址的内容送入
;目的操作数的直接地址中
单片机指令系统(DOC)
MOV direct, @Ri ;(Ri)→(direct),Ri 间址内容送入直接
地址中
MOV direct, #data ;data→(direct),立即数送入直接
地址中
MOV @Ri, A ;A→(Ri),A 中内容送到 Ri 间址单元中
MOV @Ri, direct ;(direct)→(Ri),直接地址中内容送入 Ri
间址单元中
MOV @Ri, #data ;data→(Ri),立即数送入 Ri 间址单元
中
MOV DPTR, #data16 ;data16→DPTR,16 位常数送入
数据指针 DPTR 中,高 8
;位送入 DPH,低 8 位送入 DPH,低 8 位送入 DPL 中
从上述指令可以看出目的操作数有 A 累加器、Rn 寄存器、直接地址
direct 及间接地址@Ri,源操作数除此之外还多一种立即数 data.
例 1 R0 中有常数 30H,而 30H 地址中有常数 50H
执行 MOV A, R0 后,A=30H,R0 不变。
执行 MOV A, @R0 后 A=50H,而不是 30H,这条指令的功能是把 R0
中内容为地址的单元的书送入 A,R0 中是 30H 也就是把 30H 地址中内
容 50H 送入 A。
例 2 若(40H)=20H,(50H)=30H
执行 MOV 40H, 50H; (50H) →(40H)
结果:(40H)=30H,50H 地址中内容仍为 30H.
例 3 若 A=40H,R0=30H,
单片机指令系统(DOC)
执行 MOV @R0, A ;A→(R0)
结果:(30H)=40H,A 与 R0 皆不变,即 A=40H,R0=30H。
该指令功能是把 A 中内容送入 R0 间址单元即 R0 中内容为地址的单
元。
例 4 执行 MOV DPTR, #2040H ;2040H→DPTR
结果:DPH=20H, DPL=40H
DPTR 是片外 RAM 地址指针,只有这一条指令是传送 16 位数据。
2.MOVC 类指令及功能(2 条)
MOVC A, @A+PC ;PC+1→PC,
(A+PC) →A
MOVC A, @A+DPTR ;(A+DPTR)
→A
功能:该类属于查表指令,利用这两条指令很方便地查找放在程序存
储器中数据表格的内容。
例 1 程序
1000H MOV A, #10H ;10H→A
1002H MOVC A, @A+PC ;PC+1→PC,PC=1003H,
(A+PC)=(10H+1003H)→A
...
1010H 02H
1011H 04H
1012H 06H
1013H 08H
单片机指令系统(DOC)
程序执行结果:A=08H
用 MOVC A, @A+PC 指令需注意两点:
1)指令中的 PC 是执行完本条指令后的 PC 值,即 PC 等于本条指令地
址加 1。
2)A 是修正值,它等于查表指令和欲查数据相间隔字节数。A 的范围
是 0~255,一次该指令只能查找本指令后的 256B 范围内的表格,故
称为近程查表。
例 2 程序
1000H MOV A, #01H ;01H→A
1002H MOV DPTR, #6000H ;6000H→DPTR
1005H MOVC A,@A+DPTR ;(A+DPTR)=(01H+6000H)
=(6001H) →A
...
6001H 0AH
6002H 0BH
6003H 0CH
6004H 0DH
程序执行结果:A=0AH,查到了地址为 6001H 单元中的数据.
用 MOVC A, @A+DPTR 指令查表特点:A, DPTR 都可以改变,因此可
在 64KB 范围内查表,故称为远程查表。这条指令更方便。
3.MOVX 类指令(4 条)
MOVX A, @DPTR ;(DPTR) →A,DPTR 间址单元内
容送 A
剩余22页未读,继续阅读
智慧安全方案
- 粉丝: 3702
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0