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 ……

MCS-51单片机的寻址方式和指令系统

MCS-51单片机的寻址方式和指令系统

MCS-51单片机指令系统与汇编语言程序设计伪指令............................................. (2)MCS-51单片机的寻址方式 (4)MCS-51单片机的指令系统 (7)数据传送指令 (8)算数运算指令 (10)逻辑运算及移位指令 (12)控制转移指令 (13)位操作指令 (18)指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。

完整的指令格式如下:[标号:] 操作码 [操作数] [,操作数] [;注释]标号: 代表指令的具体地址操作码: 又称助记符,英文缩写操作数: 操作数中常数可以用二、八、十、十六进制表示,如果用十六进制表示,最高位用A以上的数开头时,前面须加0,否则机器不识别注释:增加程序的可读性伪指令(1)定位伪指令ORG格式:ORG n其中:n通常为绝对地址,可以是十六进制数、标号或表达式。

功能:规定编译后的机器代码存放的起始位置。

在一个汇编语言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的机器指令存放地址不重叠。

例如程序:ORG 1000HSTART:MOV A,#20HMOV B,#30H┇(2)结束汇编伪指令END格式:[标号:] END [表达式]功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。

(3)赋值伪指令EQU格式:字符名称x EQU 赋值项n功能:将赋值项n的值赋予字符名称x。

程序中凡出现该字符名称x就等同于该赋值项n,其值在整个程序中有效。

赋值项n可以是常数、地址、标号或表达式。

在使用时,必须先赋值后使用。

“字符名称”与“标号”的区别是“字符名称”后无冒号,而“标号”后面有冒号。

(4)定义字节伪指令DB格式:[标号:] DB x1, x2,…, xn功能:将8位数据(或8位数据组)x1, x2,…, xn顺序存放在从当前程序存储器地址开始的存储单元中。

MCS-51单片机寻址方式小结

MCS-51单片机寻址方式小结

MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结20__-08-2920:34:02|分类:エ程|标签:|字号大中小订阅MCS-51单片机指令系统共使用7中寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等。

寻址方式定义操作数存放(1)通用寄存器R0~R7;寄存器于寄存器中,(2)部分专用寄存器,例如累加器A、寄存器B以寻址指令中给出数据指针DPTR等名寄存器存放操作数的(1)内部RAM中的低128地址单元,地址范围为内存单元地址00H~FFH;直接寻址直接写在指令中立即数操作数直接寻址写在指令中(2)专用寄存器。

专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。

源操作数为立即数,立即数前面必须加“#”号,以区别立即数和直接地址(1)内部RAM的低128字节。

对内部RAM的低128字节单元的间接寻址,只能使用R0或R1做间将存放操作接寻址寄存器,其通过形式为@Ri(i=0或1);MOVP1,#55HMOVDPTR,#20__HMOVR1,20HMOVA,P1CLRAMOVP1,R4MOVA,R1寻址区域指令举例数的内存单元(2)外部RAM的64K字节。

对外部RAM的64KMOVA,@R0寄存器的地址放在寄字节的间接寻址,使用DPTR作间接寻址寄存器,MOVXA,@DPTR间接寻址存器中,指令其形式为@DPTR;MOVXA,@R0中只给出该寄(3)外部RAM的低256字节。

外部RAM的低256存器字节是一个特殊的寻址区,除了可以使用DPTR作间接寻址寄存器外,还可以使用R0或R1作间接寻址寄存器将基寄存器变址寻址与变址寄存器的内容相(1)变址寻址是专门针对程序存储器的寻址方式,所以只能对程序存储器进行寻址,寻址范围为64K字节;MOVCA,@A+PC加,结果作为操作数的地址(2)变址寻址指令只有2条:MOVCA,@A+PCMOVCA,@A+DPTR将程序计数器PC的当前内容与指令相对寻址中的操作数相加,其结果作为跳转指令的转移地址(1)内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,每个单元包括8个位,共按位进行的位寻址操作(2)特殊功能寄存器SFR中的11个寄存器可以位寻址,包括83个位计128个位,位地址为00H~7FH;MOVC,0D0HMOVC,0DOH.0MOVC,PMOVC,PSW.0专门为改变程序执行方向而设置的SJMP54H扩展阅读:课题MCS-51型单片机的寻址方式广告灯设计软件部分课题MCS-51型单片机的寻址方式授课方式:讲授教学目的:1.让学生了解汇编语言指令的格式;2.让学生掌握单片机指令的7种寻址方式。

MCS-51单片机指令系统的寻址方式

MCS-51单片机指令系统的寻址方式

MCS-51单片机指令系统的寻址方式1、寄存器寻址寄存器寻址方式可用于访问选定寄存器区的8个工作寄存器R0~R7。

由指令操作码的低3位指示所用的寄存器,寄存器A、B、DPTR和C 位(位处理机的累加器)也可作为寻址的对象。

2、直接寻址直接寻址是访问特别功能寄存器的唯一方法。

它也用于访问内部RAM(低128个字节)。

采纳直接寻址方式的指令是双字节指令,其中第一个字节是操作码,其次个字节是内部RAM或特别功能寄存器的直接地址。

3、寄存器间接寻址寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。

这种寻址方式是由指令指定某一寄存器的内容作为操作数的地址。

访问内部RAM或外部数据存储器的低256个字节时,可采纳R0或R1作为间址寄存器。

4、马上寻址采纳马上寻址方式的指令是双字节的。

第一个字节是操作码,其次字节就是操作数。

因此,操作数就是存放在程序存储器内的常数。

5、基址寄存器加变址寄存器间址寻址这种寻址方式用于访问程序存储器的一个单元,该单元的地址是基址寄存器(DPTR或PC)的内容与变址寄存器A的内容之和。

例如指令“MOVC A,@A+DPTR”,其中A的原有内容为05H,DPTR的内容为4000H,该指令执行的结果是把程序存储器4005H单元的内容传送给累加器A。

6、相对寻址相对寻址用于访问程序存储器,它只消失在相对转移指令中。

相对寻址是将程序计数器PC中的当前值与指令其次字节所给出的数据(该数据也称为偏移量)相加,其和为跳转指令的转移地址。

转移地址也称为转移目的地址。

偏移量是一有符号数,其取值范围为-128~+127。

7、位寻址位寻址是指对片内RAM的位寻址区(20H~2FH)和可以位寻址的专用寄存器进行位操作时的寻址方式。

这种寻址方式与直接寻址方式的形式和执行过程基本相同。

在进行位操作时,借助于进位C作为操作的位累加器,操作数直接给出该位的地址,然后依据操作码的性质对其进行位操作。

MCS-51寻址方式

MCS-51寻址方式

M CS-51寻址方式立即寻址指令的操作数是要参与运算的数,即:立即数,用“#”号表示。

立即数就是存放在程序存储器中的常数。

格式:ADD A,#34H;把立即数34H与累加器A中的内容相加,结果送入A中MOV DPTR,#3FA6H;把16位二进制表示的地址送给DPTR寄存器(在MCS-51指令系统中,仅有一条指令的操作数是16位立即数,其功能是向地址指针DPTR传送16位的地址,即立即数的高8位送入DPH,低8位送入DPL)直接寻址操作数给出的是参与运算的数的地址。

在MSC-51中,直接地址只能用来表示特殊功能寄存器(只能用直接寻址方式)、内部数据存储器以及位地址空间。

格式:MOV A,3AH;把内部RAM的3AH单元的内容传送到A寄存器寻址操作数存放在某一个寄存器中,一般以寄存器名来表示,如对选定的工作寄存器区的R0~R7、累加器A、通用寄存器B、地址寄存器DPTR和进位Cy(在进行位操作时,Cy作为位操作累计器C)中的数进行表示格式:MOV A,Rn;(Rn)→A,n=0~7寄存器间接寻址用于访问片内数据存储器或片外数据存储器。

(操作数所指的寄存器中存放的不是操作数本身,而是操作数的地址)访问片内低128B和片外RAM低256B时,采用R0或R1作为间接寻址寄存器,访问片外其他RAM时用DPTR,在语法结构上要在其前加@。

格式:MOV A,@R0;把内部RAM中R0的所指的单元的内容送入AMOV A,@R1;基址寄存器加变址寄存器间接寻址以16位寄存器DPTR(或PC)作为基址寄存器,累加器作为变址寄存器。

变址时,把两者内容那个相加,得到的结果作为操作数的地址。

(常用于查表操作)分类1、以程序计数器当前值为基址,PC当前值是指向下一条指令的首址。

格式:MOVC A,@A+PC;(PC)=(PC)+1(:该指令位单字节指令),(A)=((A)+(PC))2、以数据指针DPTR为基址,以数据指针的内容和累加器内容相加形成变址地址格式:MOVC A,@A+DPTR;把程序存储器的内容送给A相对寻址为解决程序转移而专门设置的,为转移指令所采用。

MCS-51单片机指令格式和寻址方式

MCS-51单片机指令格式和寻址方式

3.1 MCS-51单 机 MCS-51单 格 MCS-51单片机寻址方式 三、MCS-51单片机寻址方式
6、位寻址方式
●内部RAM(20~2FH)中的位寻址 内部RAM(20 2FH)中的位寻址 RAM(20~ ●位地址(00H~7FH)寻址 位地址(00H~7FH) ●单元地址加位数寻址

位序 D7 D6 D5 D4 D3 D2 D1 D0 20H 位地址 07H 06H 05H 04H 03H 02H 01H 00H 1 X 位数据 X X X X X X X
3.2 MCS-51单片机指令分类介绍 MCS-51单片机指令分类介绍 一. 指令格式中符号意义说明
● Rn——当前寄存器组的通用寄存器,n=0~7。 当前寄存器组的通用寄存器, 当前寄存器组的通用寄存器 ~ 。
● Ri——可用作间接寻址的寄存器,i=0,1。 可用作间接寻址的寄存器, , 。 可用作间接寻址的寄存器 ● direct—8位直接地址,在指令中表示直接寻址。 位直接地址, 位直接地址 在指令中表示直接寻址。 寻址范围256个单元。 个单元。 寻址范围 个单元 0~127(内部 内部RAM单元地址 和 单元地址)和 ~ 内部 单元地址 128~255(专用寄存器单元地址或符号 。 专用寄存器单元地址或符号)。 ~ 专用寄存器单元地址或符号 位立即数。 ● #data——8位立即数。 位立即数 位立即数。 ● #datal6——16位立即数。 位立即数
3
MCS-51单 机指令系统 MCS-51单 机指令系统
3.1 MCS-51单片机指令格式和寻址方式 MCS-51单片机指令格式和寻址方式 3.2 MCS-51单片机指令分类介绍 MCS-51单片机指令分类介绍 3.3 MCS-51单片机指令汇总 MCS-51单片机指令汇总

汇编指令及寻址方式

汇编指令及寻址方式
例如程序: START: ORG MOV MOV 1000H A,#20H B,#30H ┇
org 0000h ljmp 1000h
2013-6-27
3
(2)结束汇编伪指令END 格式:[标号:] END [表达式] 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此 结束,其后的任何内容不予理睬。 (3)赋值伪指令EQU 格式:字符名称x EQU 赋值项n 功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名 称x就等同于该赋值项n,其值在整个程序中有效。赋值项n可以 是常数、地址、标号或表达式。在使用时,必须先赋值后使用。
MCS-51指令系统 Instruction Set
2013-6-27
1
指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部
信息的安排。完整的指令格式如下:
[标号:] 操作码 [目的操作数] [,源操作数] [;注释] MAIN: MOV DPTR, #2010H ;赋值 其中:[ ]项是可选项。 标号:指本条指令起始地址的符号,也称为指令的符号地址。代表该条指
变址寻址(基址+变址)
Base-Register-plus-Index-Register-Indirect Addressing
以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两 者内容相加,结果作为操作数的地址。 累加器A中存放的操作数地址相对基地址的偏移量的范围 为00H~FFH(无符号数) 操作数在程 序存储器中 常用于查表操作。 MCS-51 MOVC A, @A+DPTR ;(A+DPTR) →A MOVC A, @A+PC ;PC+1 →PC,(A+PC)→A
16

MCS-51指令简介

MCS-51指令简介

MCS-51指令简介MCS-51 系列单片机指令系统分类计算机的许多功能都是由程序实现,而程序是由指令编写而成,所以熟悉并掌握单片机的指令是非常重要的。

为了便于学习,常把指令分成许多类型。

51 系列单片机共有111 条指令,这些指令的集合称为指令系统。

常用的分类方式有以下几种。

按寻址方式分为以下七种:1、立即寻址2、直接寻址3、寄存器寻址4、寄存器间接寻址5、相对寻址6、变址寻址7、位寻址按功能分为以下四种1、数据传送指令2、算术、逻辑运算指令3、控制转移类指令4、位操作指令(布尔指令)若按字节又可分为单字节指令、双字节指令和三字节指令。

指令格式MCS-51 单片机采用汇编语言指令,一条汇编语言的语句最多包括四部分:标号、操作码、操作数和注释,其结构为:标号:操作码操作数;注释(1) 标号位于语句的开始,由字母和数字组成,它代表该语句的地址。

标号必须由字母打头,冒号结束。

字母和数字的总数不应超过一定数量,一般标号不能为助记符。

标号不是语句必要的组成部分。

(2)操作码在标号之后,是指令的助记符,表示语句的性质,是语句的核心。

没有标号时,它作为语句的开始。

(3) 操作数在操作码之后,二者用空格分开。

操作数既可以是数据,也可以是地址,且必须满足寻址方式的规定。

有多个操作数时,操作数之间用“,”分开。

指令中的常数可以是十进制、十六进制或二进制,具体格式如下:二进制常数以B 结尾,如:10100011B;十六进制常数以H 结尾,如:65H、0F1H;十进制常数以D(可以省略)结尾,如:65D 或65;字符串常数用‘’表示,如‘A’表示A 的ASCII 码。

(4)注释在语句的最后,以“;”开始,是说明语句的功能和性质的文字。

例:START:MOV A,#30H ;A←30HSTART为标号,它以。

第03章 MCS - 51单片机指令系统

第03章 MCS - 51单片机指令系统
这里源操作数不能进行寄存器间接寻址, 也就是MOV Rn , @Rn 这个指令是不能用 的。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条) 例:已知累加器A的内容为30H,寄存器R7的内容 为50H,内部RAM30H单元的内容为40H,内部 RAM50H单元的内容为10H,请指出下列每条指令 执行以后相应单元内容的变化.
第 一 节 指 令 格 式 与 寻 址 方 式
第3章 MCS-51单片机指令系统
(6) 相对寻址:
在MCS -51 指令系统中设有转移指令, 分 为直接转移和相对转移指令, 在相对转移 指令中采用相对寻址方式。这种寻址方式 是以PC的内容为基本地址, 加上指令中给 定的偏移量作为转移地址,也就是目的地 址(用来修改PC的值)。指令中给出的偏 移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。
第3章 MCS-51单片机指令系统
(1) 立即寻址:
立即寻址方式是将操作数直接存放在指令字 节中,作为指令的一部分存放在代码段里。 比如:MOV A, #3AH 跟在指令操作码后面的数就是参加运 算的数, 该操作数称为立即数。立即数有一字 节和二字节两种可能, 如指令: MOV DPTR, #0DFFFH 上述两条指令均为立即寻址方式, 第 一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据 指针DPTR中(DPH, 0FFH→DPL)。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
3.2数据传送指令
程序中使用最多的指令,主要用于内部RAM、 寄存器、外部RAM以及程序存储器之间的数据 传送、保存以及交换。 工作原理:将源操作数简单地传给目的 操作数,而源操作数的内容不变,PSW的内容 不改变。 分类:内部数据传送指令、外部传送指 令、查表指令、交换指令和堆栈指令。

第三章MCS-51指令系统及汇编语言程序设计

第三章MCS-51指令系统及汇编语言程序设计

指 令 系 统 的 寻 址 方 式
MCS-51指令系统及一般说明 MCS-51指令系统及一般说明
在介绍指令之前, 在介绍指令之前 , 先对指令中使用的一些符号意义进行简单 的说明。 的说明。 direct---直接地址, ---直接地址 ① direct---直接地址,即8位的内部数据存储器单元或特殊 功能寄存器的地址。 功能寄存器的地址。 #data--包含在指令中的8位常数。 --包含在指令中的 ② #data--包含在指令中的8位常数。 #datal6--包含在指令中的16位常数 包含在指令中的16位常数。 ③ #datal6--包含在指令中的16位常数。 rel-- 位的带符号的偏移量。用于SJMP --8 SJMP及所有的条件转移 ④ rel--8位的带符号的偏移量。用于SJMP及所有的条件转移 指令中。 指令中 。 偏移量按相对于下一条指令的第一个字节地址与跳转 后指令第一个字节地址之差计算, 范围内取值。 后指令第一个字节地址之差计算,在-128~+127范围内取值。 128 +127范围内取值 DPTR--数据指针,可用作16位的地址寄存器。 --数据指针 16位的地址寄存器 ⑤ DPTR--数据指针,可用作16位的地址寄存器。
指 令 系 统 的 寻 址 方 式
寄存器间接寻址
寄存器间接寻址方式可用于访问内部RAM 或外部数据存储器 寄存器间接寻址方式可用于访问内部 RAM或外部数据存储器 。 RAM 或外部数据存储器。 这种寻址方式是由指令指定某一寄存器的内容作为操作数的 地址。 地址。 其中(Ri)=40H (Ri)=40 例如 MOV A,@Ri ;(i=0或1),其中(Ri)=40H 这条指令表示从Ri中找到源操作数所在单元的地址, Ri中找到源操作数所在单元的地址 这条指令表示从Ri中找到源操作数所在单元的地址,把该地 址中的内容传送给A 即把内部RAM 40H单元的内容送到累加器A RAM中 址中的内容传送给A。即把内部RAM中40H单元的内容送到累加器A 中。

MCS-51的寻址方式

MCS-51的寻址方式



第一条指令 1011 0000 (MOV AL,n) 0000 0111 (n=7) 第二条指令 0000 0100 (ADD AL,n) 0000 1010 (n=10) 第三条指令 1111 0100 (HLT) 总共是3条指令5个字节。
指令的存放
取第一条指令的操作示意图
取立即数的操作示意图
取第二条指令的操作示意图
寻址方式

1.立即寻址(immediate addressing)
上例中的操作数就包含在指令中,这 种规定操作数的方式,称为立即寻址。指 令中的操作数称为立即数。

2.寄存器寻址(register addres存器中,这种寻址方式 称为寄存器寻址。例如指令 MOV AL,BL
立即数取入累加器movaln10110000b0这是一条两字节指令把指令第二字节的立即数n送累加器al加立即数addaln0000010004这是一条两字节指令累加器al中的内容与指令第二字节的立即数相加结果在alhlt11110100f4停止操作第一条指令10110000movaln00000111第二条指令00000100addaln00001010n10第三条指令11110100hlt总共是3条指令5个字节
执行第二条指令的操作示意图

3.直接寻址(direct addressing)
直接寻址方式示意图

4.寄存器间接寻址(register indirect addressing)
寄存器间接寻址方式示意图
寄存器间接寻址加法指令示意图
各种寻址方式及相应的指令
指令名称
寻址方式 立即寻址
助记符 MOV AL,n MOV BL,n
8A C3
  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
相关文档
最新文档