单片机的汇编语言与程序设计.ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例2:MOV DPTR,# 8000H ;DPTR #8000H
DP DP
RO
H80 L00
PC
9M0H
操作码 H H
PC
80H
立即数的高8位
PC
00H
立即数的低8位
PC
2、直接寻址
直接寻址
❖在指令中直接给出操作数的真实地址 ❖操作码后面紧跟一个实际操作数地址
寻址空间:
CPU内部
✓内RAM的低128字节 00H~7FH ✓特殊功能寄存器SFR区 80H~FFH
直接寻址是访问 SFR 的唯一方法
例1:MOV A, 30H ;A (30H)
RO
A
PC
EM5H
操作码内RAM
××
PC
30H
操作30数H 地×址×
PC
××
例2:ANL 30H,#30H
;30H
RO
PC
5M3H
操作码
PC
30H
直接地址
PC
30H
立即数
PC
××
(30H)∧ #30H 内RAM
30H × ×
addr16 — 16位目的地址,用于LCALL、LJMP指令
地址范围64KB ROM空间
addr11 — 11位目的地址,用于ACALL、AJMP指令
地址范围2KB ROM空间 rel — 8位带符号的偏移量, 范围-128~127
用于SJMP和所有的条件转移指令中 DPTR — 数据地址指针,可做16位间址寄存器
bit — 内RAM或SFR中的直接位寻址
A — 累加器 B — 专用寄存器,用于MUL和DIV指令 C — 位累加器 ( PSW.7 ),进位/借位标志
@ — 间址或基址寄存器前缀如 @Ri , @A+DPTR @DPTR , @A+PC
/ — 位操作的前缀,表示对该位操作数取反 (X) — X中的内容 ((X))— 由X寻址的单元中的内容
二、常用符号
n=0~7
Rn —当前选中寄存器区的8个工作寄存器(R0~R7) Ri —当前选中寄存器区中可做间址寄存器的
2个工作寄存器(R0、R1) i=0、1
direct -—— 8位内部RAM单元地址 00H~7FH
—— 专用特殊功能寄存器SFR的地址80H~FFH
#data —— 立即数(8位) #data16—— 立即数(16位)
;将F0位置1 ; Cy位清0
小结: 寻址方式与相应的寻址空间
方式
寄存器
利用的变量 R0~R7,A,B
CY,DPTR
直接寻址
direct
寄存器间址
立即数 基址加变址 相对寻址
@R0, @R1, SP @R0, @R1 ,@DPTR
#data @A+DPTR,@A+PC
PC+rel
位寻址
bit
使用的空间
“与”
ALU “结果”
3、寄存器寻址 寄存器寻址: 当前选定的寄存器内容就是实际操作数
寻址空间: R0~R7,由RS0、RS1确定寄存器区/4 A、B、CY(位),DPTR、AB
例1: 例2:
MOV A,R3 ADD A,R3
;A (R3) ;A (A)+(R3)
4、寄存器间接寻址
寄存器间接寻址: 指令选定的寄存器内容就是实际 的操作数地址
箭头左边的内容被箭头右边的内容所代替
三、 寻址方式
指令的寻址方式: 用何种方式寻找指令的操作数
1、立即寻址
或指令的执行地址
立即寻址: ❖操作数紧跟操作码OP后面,存放在 程序存储器中
寻址空间: ❖程序存储器
例1:MOV A,# 30H
RO
PC
7M4H
PC
30H
PC
××
;A #30H
操作码A 立即3数0H
PC
RO
A
9M3H
操作码 ×0F×H
DP 2T4R00H
PC
……
240F × ×
“读”
H
MOVC
PSFra Baidu bibliotekN A,@A+DPTR
ALU
6、相对寻址
相对寻址
以当前PC值为基准地址,加上指令的偏 移量“rel”,结果为目标地址。rel为有 符号补码数,范围:-128~+127
寻址空间: 程序存储器
例: JNZ rel
片内
内RAM的低128字节 特殊功能寄存器SFR
; 累加器A不等零则转移 设:rel=23H
ROM
PC
2000H 70H
操作码
PC
2001H 23H
偏移量
rel=23H
(PC)=2002H
PC
2002H 下一条指令
. ...
ALU
PC
2025H
...
修正后转移 目标地址D
(PC) = 2 0 0 2 H
)Rel = 0 0 2 3 H
(PC) = 2025H
“读”
外RAM
2000H × ×
5、基址寄存器加变址寄存器间接寻址
基址寄存器加变址寄存器间接寻址: 以DPTR或PC作基址寄存器,A作变址寄存器
两者相加形成操作数地址。
寻址空间: 程序存储器(@A+DPTR、@A+PC)
例: MOVC A,@A+DPTR 设(A)= 0FH (DPTR)= 2400H
本章学习目标:
了解汇编语言的一般规则,借助指令手册 能读懂汇编程序。
一、 指令格式
51系列单片机采用ASM-51指令格式,格式如下: [标号:] 操作码 [目的操作数][,源操作数] [;注释]
其中包含: ✓方括符[ ]表示可选项 ✓标号代表指令所在地址,1-8个字母/数字,“:”结 尾 ✓操作码就是指令功能助记符,指令实体 ✓目的操作数 ✓源操作数 ✓注释,以“;”开头
D= 2025H
7、位寻址
对内部RAM、SFR的位地址空间进行访问,称 为位寻址。位地址用于布尔指令。
寻址空间: 片内RAM的20H~2FH字节地址 位地址:00H~7FH 共128位
共211位 SFR中11个能被8整除的字节地址 位地址请参看P26表 共83位
例: SETB D5H CLR C
第3章 单片机的汇编语言与程序设计
3.1 汇编语言概述 3.2 指令系统简介 3.3 汇编语言的编程方法
3.1 汇编语言概述
汇编语言(Assembly Language)——用助记 (字)符代替操作码,用地址符号代替地址码的 一种面向机器的程序设计语言; 汇编语言优点——代码精炼、执行速度快,但 不便于编写较复杂的程序; 汇编程序处理过程——输入源程序→检查语法 正确性(如有语法错误,输出错误信息)→翻 译成二进制目标程序。
寻址空间:
内部 RAM(@R0, @R1, SP) 外部 RAM(@R0, @R1,@DPTR)
例1:
PC PC
MOV @R0,A ;累加器传送指令
RO
A
FM6H
操作码× ×
内RAM
R 30H 0
30H × ×
例2:
PC PC
MOVX A,@DPTR RD
RO
A
EM0H
操作码× ×
DP 2000H TR
相关文档
最新文档