单片机学习小组
登录
直播中
王银喜
7年用户
2374经验值
私信
关注
指令系统的寻址方式有哪几种?
开启该帖子的消息推送
指令系统
指令系统的寻址方式有哪几种?
指令系统有哪些分类?格式是什么?
回帖
(1)
马念
2022-1-18 11:16:22
指令格式
[名字:] 操作码 操作数1,操作数2,··;注释
名字—标号或者变量名
标号是指令所在地址的标志符号。
操作码—操作的性质
操作数—操作对象
(可能书数据,也可能是数据的地址或者符合。)
注释—解释指令或程序的含义
指令分类
按所占字节分:
单字节指令:操作码和操作数同在一个字节中
双字节指令:一个字节为操作码,另一个字节是操作数
三字节指令:操作码占一个字节,操作数占两个字节
按执行时间来分:
1个机器周期(12个时钟振荡周期)的指令;
2个机器周期指令;
4个机器周期—乘、除指令。
指令系统的寻址方式
——说明操作数所在地址的方法
1.立即数寻址方式
直接在指令中给出操作数—也称立即数。
需在操作数前加标志**#**
例如: MOV A, #40H ; 40H→A
立即数40H位于指令码中,存放在程序存储器内。
立即数只能作源操作数,不能作目的操作数。
以A~F打头的16进制数字出现在指令时,前面一定要加一个数字0。
2.寄存器寻址方式
指令中的操作数为某一寄存器内容。
有R0~R7,A(不能是Acc),B,C,DPTR
例如:MOV A , R1 ;(R1)→A
3.直接寻址方式
指令中直接给出操作数的单元地址,操作数的单元地址用“
direct
”表示。
MOV A, direct
例如:MOV A , 40H ;(40H)→A
表示把内部RAM单元(direct)的内容传送到指令中,两个操作数都可由直接寻址方式给出。
MOV direct1, direct2
例如: MOV 42H , 62H ;(62H)→42H
直接寻址是访问片内特殊功能寄存器的唯一寻址方式。
4.寄存器间接寻址方式
寄存器中存的是
操作数地址
,即先从寄存器中找到操作数的地址,再按该地址找到操作数。
在寄存器名称前加“@”,与寄存器寻址区别。
有:@DPTR ,@R0 ,@R1
例如:MOV A,@R0
若(R0)=40H,则 (40H) →A。
5.基址加变址寄存器间址寻址方式
以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,两者内容相加结果为操作数的16位地址。
MOVC A,@A+PC
MOVC A,@A+DPTR
若(A)=05H,(DPTR)=0400H,(0405H) → A。
可将固定的的表格存放在程序存储器中,DPTR为表头,A为表中偏移量,读取对应的表格参数。
JMP A,@A+DPTR
可根据A中不同内容,实现跳向不同程序入口的跳转。
6.相对寻址方式
以PC值加上相对偏移量rel,形成转移目的地址,使程序跳转。
(PC)=转移指令所在的地址+转移指令字节数
转移目的地址=转移指令所在的地址+转移指令字节数+rel
偏移量rel是带符号8位二进制补码数,–128~+127。
例如: SJMP rel;(PC)+rel → PC
SJMP LOOP ;
目的地址标号LOOP→ PC,由汇编程序自动计算偏移量。
7.位寻址方式
对可寻址位置1、清0、求反、传送、判跳和逻辑运算等操作。
一般为直接位地址“bit”或位名。
MOV C,bit
例如:MOV C,40H;(40H) → CY
SETB IT0
位处理功能增强了实时性。
操作数形式
A Rn n=0~7
Ri i=0/1
direct
#data
DPTR
@DPTR
@A+DPTR
@A+PC
标号
指令格式
[名字:] 操作码 操作数1,操作数2,··;注释
名字—标号或者变量名
标号是指令所在地址的标志符号。
操作码—操作的性质
操作数—操作对象
(可能书数据,也可能是数据的地址或者符合。)
注释—解释指令或程序的含义
指令分类
按所占字节分:
单字节指令:操作码和操作数同在一个字节中
双字节指令:一个字节为操作码,另一个字节是操作数
三字节指令:操作码占一个字节,操作数占两个字节
按执行时间来分:
1个机器周期(12个时钟振荡周期)的指令;
2个机器周期指令;
4个机器周期—乘、除指令。
指令系统的寻址方式
——说明操作数所在地址的方法
1.立即数寻址方式
直接在指令中给出操作数—也称立即数。
需在操作数前加标志**#**
例如: MOV A, #40H ; 40H→A
立即数40H位于指令码中,存放在程序存储器内。
立即数只能作源操作数,不能作目的操作数。
以A~F打头的16进制数字出现在指令时,前面一定要加一个数字0。
2.寄存器寻址方式
指令中的操作数为某一寄存器内容。
有R0~R7,A(不能是Acc),B,C,DPTR
例如:MOV A , R1 ;(R1)→A
3.直接寻址方式
指令中直接给出操作数的单元地址,操作数的单元地址用“
direct
”表示。
MOV A, direct
例如:MOV A , 40H ;(40H)→A
表示把内部RAM单元(direct)的内容传送到指令中,两个操作数都可由直接寻址方式给出。
MOV direct1, direct2
例如: MOV 42H , 62H ;(62H)→42H
直接寻址是访问片内特殊功能寄存器的唯一寻址方式。
4.寄存器间接寻址方式
寄存器中存的是
操作数地址
,即先从寄存器中找到操作数的地址,再按该地址找到操作数。
在寄存器名称前加“@”,与寄存器寻址区别。
有:@DPTR ,@R0 ,@R1
例如:MOV A,@R0
若(R0)=40H,则 (40H) →A。
5.基址加变址寄存器间址寻址方式
以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,两者内容相加结果为操作数的16位地址。
MOVC A,@A+PC
MOVC A,@A+DPTR
若(A)=05H,(DPTR)=0400H,(0405H) → A。
可将固定的的表格存放在程序存储器中,DPTR为表头,A为表中偏移量,读取对应的表格参数。
JMP A,@A+DPTR
可根据A中不同内容,实现跳向不同程序入口的跳转。
6.相对寻址方式
以PC值加上相对偏移量rel,形成转移目的地址,使程序跳转。
(PC)=转移指令所在的地址+转移指令字节数
转移目的地址=转移指令所在的地址+转移指令字节数+rel
偏移量rel是带符号8位二进制补码数,–128~+127。
例如: SJMP rel;(PC)+rel → PC
SJMP LOOP ;
目的地址标号LOOP→ PC,由汇编程序自动计算偏移量。
7.位寻址方式
对可寻址位置1、清0、求反、传送、判跳和逻辑运算等操作。
一般为直接位地址“bit”或位名。
MOV C,bit
例如:MOV C,40H;(40H) → CY
SETB IT0
位处理功能增强了实时性。
操作数形式
A Rn n=0~7
Ri i=0/1
direct
#data
DPTR
@DPTR
@A+DPTR
@A+PC
标号
举报
更多回帖
rotate(-90deg);
回复
相关问答
指令系统
请问一下ARM Cortex-M0+
指令系统
寻址
方式
一共有
几种
2022-07-22
2764
OLED页
寻址
方式
有
哪几种
?
2021-11-23
2174
在linux
系统
与uboot中网卡驱动的典型工作
方式
有
哪几种
2021-12-24
1038
伺服控制
系统
有
哪几种
控制
方式
2021-10-11
2764
pcb的组织
方式
有
哪几种
2020-03-18
7659
系统
重启调用的
方式
有
哪几种
?
2022-03-10
1591
单片机常用的
指令
集
有
哪几种
2021-09-22
2874
常见的ARM汇编
指令
有
哪几种
呢
2021-11-30
1189
嵌入式
系统
设计任务之间的通信
方式
有
哪几种
呢
2021-12-23
2885
电流保护的接线
方式
有
哪几种
2021-09-26
2661
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分