MCS-51汇编语言寻址方式

合集下载

MCS51单片机指令系统1指令格式和寻址方式

MCS51单片机指令系统1指令格式和寻址方式

MCS­51单片机指令系统1 指令格式和寻址方式1.1 指令格式及符号定义指令:即命令,人们给计算机的命令。

指令有两种表示方式:机器码——机器语言(机器能直接识别)助记符——汇编语言(供设计人员使用)机器码和助记符一一对应,汇编语言可汇编机器语言,机器语言可反汇编为汇编语言。

一台计算机所有指令的集合为指令系统,不同的 CPU的指令系统互不兼容,基于不同 单片机(含 CPU)的汇编语言应用程序不能直接移植。

MCS-51 单片机的指令格式一般由标号、操作码、操作数和注释四个部分组成。

如下: (标号:) 操作码 (操作数) ;(注释)标号:表示该指令所在的地址。

由英文字母加数字组成,一般每个程序段的第一条指令 和转移指令的目的指令前须有一个标号。

操作码:规定指令操作性质的编码。

每条指令必有一操作码,而标号、操作数和注释可 以根据情况选择有或无。

操作数:参与操作的数据或数据所在的地址。

注释:该指令的操作说明,便于阅读程序。

例如:一条完整汇编指令LOOP : MOV A , #20H ; 把数20H 送入累加器A 中翻译成机器码则为LOOP : 74 20; 操作码规定的操作性质是将紧跟该操作码(74H)的 数(20H)送入累加器A中(E0H单元)。

20H为操作数MCS-51 单片机汇编程序书写格式范例地址 机器码目标程序) 标号 汇编程序注释ORG 2000H ; 伪指令(汇编程序开始) 2000H 74H 20H START : MOV A , #20H ; 把数20H 送入累加器A 中 2002H 04H INC A ; 把A 的内容加一后送A2003H 24H 30H ADD A , #30H ; 把A 的内容加30H 后送A. . . .xxxxH 80H FEH LOOP : SJMP $ ; 循环END 伪指令(汇编程序结束) 在本书种,汇编指令中的符号约定如下:Rn(0~7):当前选中的8 个工作寄存器R0~R7;Ri(i=0,1):当前选中的用于间接寻址的两个工作寄存器R0、R1;Direct:8位直接地址,可以是内部RAM 单元地址(00H~7FH),或是特殊功能寄存 器(SFR)地址(80H~FFH)#data:指令中的8位立即数;#data16:指令中的16位常数;addrl6:16位地址;addr11:11位地址;bit: 位地址,内部RAM(20H~2FH)或是特殊功能寄存器(SFR)中的可寻址位;rel:指令中的8位带符号偏移量,用于相对转移指令中,取值范围在­128~+127 之间;(X):表示由X所指定的某寄存器或单元的内容;[(Index)]:表示由地址寄存器Index内容所指定的单元的内容。

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

单片机习题集及答案

单片机习题集及答案

单片机习题集及答案1.在MCS-51中,有7种寻址方式,它们分别为立即数寻、寄存器寻址、直接寻址、寄存器间接寻址、相对寻址、变址寻址和位寻址。

2.汇编语言的指令格式为标号:操作码操作数注释。

3.数据传送类指令执行完毕,源操作数的内容不会(会/不会)丢失。

4.8051内部RAM从20H至2FH既可位寻址,又可间接寻址,位地址空间从00H到7FH。

5.MCS-51单片机指令系统中,指令长度有一字节、二字节和(三)字节,指令执行时间有一个机器周期、两个机器周期和四机器周期,乘法指令需四机器周期。

6.MOV A,20H中,20H的寻址方式称之为_直接___;SETB 20H的寻址方式为位寻址。

7.关于堆栈类操作的两条指令分别是_PUSH(入栈)指令_ 、POP(出栈)指令;堆栈操作只能是寄存器间接寻址寻址。

8.访问8031片外数据存储器MOVX指令采用的是寄存器间接寻址寻址方式。

访问片外序存储器MOVC指令采用的是变址寻址方式。

9.设(A)=55H,(R5)=AAH,则执行ANL A,R5指令后的结果是(A)= 00H,(R5)= AAH;则执行ORL A,R5指令后的结果是(A)= FFH ,(R5)= AAF;则执行XRL A,R5指令后的结果是(A)= FFH,(R5)= AAH 。

10.伪指令不产生(产生/不产生)可执行目标代码。

汇编语言程序结束的指令为END。

11.DA指令跟在ADD,ADDC指令的后面,用与二进制数与BCD码的调整。

若(A)=0AH ,执行DA A指令后,(A)= 15。

单项选择题1.JMP跳转范围是:(D. -128~127B)2.MCS—51系列单片机最长的一条指令需 B. 4个机器周期。

3.MOV A,@R0这条指令中@R0的寻址方式称为:(B. 寄存器间接寻址)4.在CPU内部,反映程序运行状态或反映运算结果的特征寄存器是:B. PSW5.下列指令中正确的是:B. JBC TF0,L16.下列指令中错误的是:A. SETB 50H.07.将累加器的值压入堆栈的正确指令是:B. PUSH A8.下列那条减法指令是错误的:C. SUBBC9. 指令CJNE A ,#00H ,LOOP 影响PSW的哪一位:C.CY10. 在MUL AB指令中,若积超过255,则C. OV=111.在相对寻址方式中,寻址的结果体现在A.PC中12.在相对寻址方式中,"相对"两字是指相对于C.当前指令的末地址13.在寄存器间接寻址方式中,指定寄存器中存放的是B.操作数地址14.对程序存储器的读操作,只能使用D.MOVC指令15.必须进行十进制调整的十进制运算C.只有加法16.执行返回指令时,返回的断点是C.调用指令下一条指令的首地址17.下列指令中与进位标志位CY 无关的指令有D.无条件转移指令18.可以为访问程序存储器提供或构成地址的有D.PC、A、DPTR和SP 19.以下各项中不能用来对内部数据存储器进行访问的是A.数据指针DPTR20.若原来工作寄存器0组为当前寄存器组,现要改1组为当前寄存器组,不能使用指令C.MOV PSW.3,C21.不能为程序存储器提供和构成地址的有:D.PSW22.MCS-51汇编语言指令格式中,唯一不可缺少的部分是:B.操作码23.MCS—51的立即寻址方式中,立即数前面:D.应加前缀“#”号24.下列完成8031单片机内部数据传送的指令是:D.MOV direct,direct(25).MCS—51的立即寻址的指令中,立即数就是:A.放在寄存器R0中的内容26.单片机中PUSH和POP指令常用来:C.保护现场,恢复现场27.MCS—51寻址方式中,操作数Ri加前缀“@”号的寻址方式是:A.寄存器间接寻址28.MCS—51寻址方式中,位寻址的寻址空间是:D.片内RAM的20H~2FH字节中的所有位和部分专用寄存器SFR的位29.MCS—51寻址方式中,直接寻址的寻址空间是B.专用寄存器SFR30.执行指令MOVX A,@DPTR时,WR、RD脚的电平为:C.WR高电平,RD低电平31.主程序执行完ACALL后返回主程序后,堆栈指针SP的值:A.不变32.单片机中使用MOVX A,@R1指令寻址数据存贮器1050H 单元。

单片机指令常用的表示方式和寻址方式

单片机指令常用的表示方式和寻址方式

程序存储器
rel是有符号的8位 二进制数,用补码 表示。相对偏移在 +127~-128字节
单元之间。
· ·
2000H+2H+28H
·
2000H SJMP 28H 2002H
· · ·
目的 地址
源地址
转移指令本身字节数
rel
寻址空间及举例
表3-1 每一种寻址方式可涉及的存储器空间
寻址方式 寄存器寻址 直接寻址
三 MCS-51指令系统的寻址方式 我的信在她那!找信去! ② ① 注:找信是寻找信的“地址”! 寻址方式,就是指如何找到存放被操作数据的位 置(地址)的方法。
1.立即数寻址
立即数寻址是由指令直接给出操作数的寻址方式。#为 立即数的标识符。 目的地 MOV A,#30H 速递快信 30H A
2. 寄存器寻址
1. 工作寄存器名。 2. 特殊功能寄存器名。 3. 标号名。 4. 常数。 5. 符号“$”,表示程序计数器PC的当前值。 6. 表达式。
4.注释
注释不属于汇编语句的功能部分,它只是对语句 的说明。注释字段可以增加程序的可读性,有助 于编程人员的阅读和维护。注释字段必须以分号 “;”开头,长度不限可以换行接着书写,但换 行时应注意在开头使用分号“;”。
变址间接寻址是将指令中基地址(基址寄存器)和偏 移量地址(变址寄存器)的内容相加形成真正的操作数地址。
程序存储器
….
65H
1030H
….
PC DPTR
基址寄存器
变址寄存器
A
1000H
6350HH
7.相对寻址
• 以当前的 PC值加上指 令中给出的相对偏移 量rel而形成转移目的 地址的寻址方式。 202AH

MCS-51单片机寻址方式

MCS-51单片机寻址方式
设该指令首地址为2000H,PC+2=2002H。因此程序转向(PC)+2+rel =2000H+2+08H =200AH单元。
7 位寻址
位寻址是在指令中直接给出操作数的位地址。
① 直接位地址 【例】:MOV C,0D5H ;PSW的位5(位地址D5H)
② 点操作符. 【例】:MOV C,PSW.5
JMP @A+DPTR
;PC←(A)+(DPTR)
前两条指令是在程序存储器中取操作数; 第三条指令是要获得程序的跳转地址,实现程序的转移。
【例】:
MOV A, #22H MOV DPTR, #63A0H MOV A, @A+DPTR ;A←((A)+(DPTR))
6 相对寻址
相对寻址以程序计数器PC的当前值作为基地址,与指令中给出 的相对偏移量rel进行相加,把所得之和作为程序的转移地 址.。
【例】:MOV A,R0
;A←(R0)
可用于寄存器寻址的寄存器有: (1)四组工作寄存器R0~R7共32个。 (2)部分特殊功能寄存器A、B、DPTR等。
3 寄存器间接寻址
指令指定寄存器的名字,寄存器的内容为操作数的存储器地址。
标志为寄存器名字前加“@”符号。 不同的存储空间要用不同的寄存器,规定如下:
假设(3456H)=99H,指令运行后(A)=99H。
4 直接寻址
指令中直接给出操作数的存储器地址,操作数在存储器中。
【例】:MOV A,52H
;A←(52H)
5 变址寻址
基址寄存器加变址寄存器的间接寻址 三条变址指令
MOVC A, @A+PC ;A←((A)+(PC))
MOVC A, @A+DPTR ;A←((A)+(DPTR))

MCS-51系列单片机寻址方式

MCS-51系列单片机寻址方式

程序存储器
SFR
PC
10010011 操作码 A
1XEXH
030FH
XX
DPH 02H 02F1H DPL F1H
ALU
02F1H +1EH=030FH
7
6、相对寻址(一)
相对寻址以PC当前值(PC当前值是执行完指令后的值,也就 是当前指令的PC值+指令所占的字节数)作为基地址,与指令 中给定的偏移量rel相加,所得的结果作为程序的转移地址, 指令中的偏移量rel是一个用补码表示的8位带符号数。相对 寻址用于相对转移指令中,如:
MCS-51系列单片机寻址方 式
寻址方式:计算机指令中操作数(按地址)获取的方式 MCS-51系列单片机提供了7种寻址方式,如果一条指令 中包含多个操作数,就可能用到一种以上的寻址方式
1、立即寻址 2、直接寻址 3、寄存器寻址 4、寄存器间接寻址 5、变址寻址 6、相对寻址 7、位寻址
1
1、立即寻址(一)
8
6、相对寻址(二)
程序存储器
PC 0100H PC+1 0101H PC+2 0102H
60H 30H
操作码
偏移量 rel=30H
PC 01032H
PC 0123H XX
ALU 0102H +30H= 0132H
9
7、位寻址
MCS-51系列单片机中有专用的位运算指令,可以对位寻址区的每一 个位进行数据传送、逻辑运算等操作,如:
R5 XX
A XX
5
4、寄存器间接寻址
在指令的操作码中包含了某一工作寄存器的地址(可用作地 址指针的工作寄存器是@Ri:R0、R1),而操作数地址则存 放在该寄存器中,如:

51单片机-寻址方式

51单片机-寻址方式
于是要求:这一范围内旳RAM只能用寄存器间接寻 址方式,SFR只能用直接寻址方式。从而处理了地 址冲突旳问题。例如:
MOV A, 90H 等效于 MOV A, P1 属直接寻址 MOV A, @R0 ;[事先已知 (R0) = #90H ] 执行旳操作:A ←(90H) 属寄存器间接寻址, 随意写旳指令如:MOV A, 85H 则是非法旳!
总共
128 个可 按位 寻址 旳位
小结: 寻址方式与相应旳寻址空间
方式
寄存器
利用旳变量 R0~R7,A,B
CY,DPTR
直接寻址
direct
寄存器间址
立即数 基址加变址 相对寻址
@R0, @R1, SP @R0, @R1 ,@DPTR
#data @A+DPTR,@A+PC
7、位寻址
Bit Addressing
以访问触发器旳方式,对内部RAM、SFR 旳位地址空间进行访问,称为位寻址。位地址 用于布尔指令。
寻址空间: 片内RAM旳20H~2FH字节地址 共221位 位地址:00H~7FH 共128位 SFR中12个能被8整除旳字节地址 共93位
指令中直接给出了操作数所在旳位地址。 例: CLR P1.0 ;(P1.0) ← 0
例2: ADD A,R3 ;A (A)+(R3)
4、寄存器间接寻址 Register Indirect Addressing
寄存器间接寻址:寄存器中旳内容是一种地址,由该地 址单元寻址到所需旳操作数
寻址空间: 内部 RAM(@R0, @R1, SP) 外部 RAM(@R0, @R1,@DPTR)
指令旳三种形式:
注意: 1)“目前PC值”指程序中下一条指令所在旳首地址,

第三章 MCS-51汇编语言指令

第三章  MCS-51汇编语言指令

ROM
0F87H
…… PC 1005H 0100 0000 PC 1006H 1000 0000 PC …… 1007H ……
取指
执行
00001111 00010000 10001111 00000111
ALU
1007+FF80=0F87H
3.1.7 寻址方式小结 方式 寄存器寻址 直接寻址 利用的变量 R0~R7、A、Cy、 DPTR 使用的空间
ORG伪指令总是出现在每段源程序或数据块的开始位置。 源程序的开始,一般都要设置一条ORG伪指令来指定该程 序在存储器中的起始位置,若省略则默认为0。可多次使 用ORG指令来规定不同程序段的起始地址,但是不允许和 前面指定的地址重叠,即不同的程序段之间不能有重叠。
⒉定义字节伪指令DB(Define Byte) 格式:[标号:] DB 字节数据表 功能:把字节数据表中的数据依次存放在由标号指定 的连续地址单元中。字节数据表中的数据多于一个时 用逗号分隔。
如:MOV A,70H;(A)←(70H) ROM
PC 1110 0101 操作码
直接地址
分析
执行
PC PC
0111 0000
……
SFR …… ACC 01100110 …… 70H 01100110 ……
3.1.4 寄存器间接寻址 指令指定的某一寄存器的内容作为操作数地址。 可用来间接寻址的寄存器有R0、R1、堆栈指针SP 和数据指针DPTR。前面加@表示间接寻址。 可访问内部数据存储器或外部数据存储器。
如:MOV A, @R0;(A)←(R0)
0 0 0 * * 0 0 0
… RS1 RS0 …
ROM PC PC 1110111 0 ……
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

立即寻址
立即寻址方式的目的就是将操作数紧跟在操作码
后面,与操作码一起放在指令代码段中,在程序 运行时,程序直接调用该操作数,而不需要到其
ROM
RAM
11100101 11100101
E0H
XXH
他地址单元中去取相应的操作数,上述的写在指
令中的操作数也称作立即数。
MCS-51单片机 汇编语言 寻址方式
SETB RS1 CLR RS0 MOV A,R5 MOV P2,A END
MCS-51单片机 汇编语言 寻址方式
课后作业 课后作业
判断下列寻址方式:
1、MOV 2、MOV 3、MOV 4、MOV 5、MOV
课后作业
A,P0 P0,#0F2H R0,#07AH A,R7 P1,A
课后作业
荣县职业高级中学校
直接寻址
直接寻址是一种基本的寻址方法,其特点 是:在指令格式的地址的字段中直接指出操作
ROM
RAM
11100101 11100101 XXH
数在内存的地址。由于操作数的地址直接给出
而不需要经过某种变换,所以称这种寻址方式 为直接寻址方式。在指令中直接给出参与运算
XXH
E0H
的操作数及运算结果所存放的主存地址,即在
荣县职业高级中学校
执教人:付昱晴
回顾
review
数据传送类指令(28条指令) 算术运算指令(24条) 逻辑操作指令(25条) 程序控制转移类指令(17条) 位操作类指令(17条)
MCS-51单片机的立即寻址
MCS-51单片机的直接寻址
MCS-51单片机的寄存器寻址
MCS-51实验演示
MCS-51单片机 汇编语言 寻址方式
执教人:付昱晴
2017年10月27日
指令中直接给出有效地址。
MCS-51单片机 汇编语言 寻址方式
寄存器寻址
寄存器寻址是指操作数在 寄存器中,由指令操作码中的
PSW中RS1及RS0的状态,选
中某个工作寄存器区的某个寄 存器,然后进行相应的指令操
作。
MCS-51单片机 汇编语言 寻址方式
实验演示
ห้องสมุดไป่ตู้
ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV A,#15H MOV P0,A MOV 15H,#15H MOV A,45H MOV P1,A
相关文档
最新文档