第2章指令

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

型单片机是8位机,所以说它的字长为8位。
2.1
概述-基本概念
指令的表示形式: • (1)指令的二进制形式 机器码、源程序的目标代码均为二进制形式,直接为计算机 识别和执行。读/写和记忆困难。 • (2)指令的十六进制形式 指令的十六进代码需翻译成二进制代码才能被计算机识别和 执行。特点是方便读,写和记忆困难。 • (3)指令的助记符 用英文字母、单词表征指令的功能。其源程序必须翻译成机 器码(目标代码)才能被计算机识别和执行。特点是方便读/写 和记忆。
MOV B,#30H

(2)结束汇编伪指令END
格式:[标号:] END [表达式] 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任
何内容不予理睬。
(3)赋值伪指令EQU
格式:字符名称x EQU 赋值项n
功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名称x就等同
于该赋值项n,其值在整个程序中有效。赋值项n可以是常数、地址、标号或 表达式。在使用时,必须先赋值后使用。 ‚字符名称‛与‚标号‛表示形式的区别:‚字符名称‛后无冒号,而 ‚标号‛后面有冒号。 例如: x EQU 赋值项n
格式:[标号:] DS n 功能:从标号指定地址单元开始,预留n个存储单元,汇编时不对这些
存储单元赋值。n可以是数据,也可以是表达式。
注:DB、DW、DS伪指令只能对程序存储器进行赋值和初始化工作,不
能用来对数据存储器进行赋值和初始化工作。
(7)定义位地址符号伪指令BIT
格式:字符名称x BIT 位地址n 功能:将位地址n的值赋予字符名称x。程序中凡出现该字符名称x就代
示 例:
MOV A,#64H
ADD A,#05H MOV DPTR,#1000H
;(A)← 立即数 ቤተ መጻሕፍቲ ባይዱ4H
;(A)←(A)+立即数 05H ; ( DPTR) ←1000H
2.2.2
直接寻址
定义:将操作数的地址直接存放在指令中的寻址方式。
特点:指令中含有操作数的地址。该地址指出了参与操作的数 据所在存储器的单元地址或位地址。 寻址范围:ROM、片内RAM区、SFR和位地址空间。
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、
2.2.1 立即寻址
定义:将立即参与操作的数据直接写在指令中的寻址方式。 特点:指令中直接含有所需的操作数。可以是8位、16位。
表示方法:立即数通常使用#data或#data16表示,在立即数前面加 ‚#”标志,区别于直接寻址中的直接地址(direc或bit)。
2.2
MCS-51单片机的寻址方式
指令格式:[标号:] 操作码 [操作数] [,操作数] [;注释]
寻址方式:说明操作数所在地址的方法称为指令的寻址方式。即为指 令按地址获得操作数的方式。
计算机执行程序实际上是在不断寻找操作数并进行操作的过程。
每种计算机在设计时已决定了它具有哪些寻址方式,寻址方式越多, 计算机的灵活性越强,指令系统也就越复杂。 MCS-51单片机的指令系统提供了七种寻址方式,分别为: 相对寻址和位寻址。一条指令可能含多种寻址方式。
特点:指令操作码中隐含作为基址寄存器用的DPTR(或PC )和作为
变址用的累加器A。在执行变址寻址指令时,MCS-51单片机先把基地址 ( DPTR或PC 的内容)和地址偏移量(A的内容)相加,以形成操作数 地址,再由操作数地址找到操作数,并完成相应的操作。变址寻址方式是 单字节指令。
寻址范围:
内部RAM低128B,只能用R0或R1作间址寄存器 外部RAM,用DPTR作间址寄存器,对于低256单元(00H-FFH),还 可以用R0或R1作间址寄存器。
MOV R1,#80H MOV A,@R1 ; (R1)← 立即数80H ; (A)←((80H))=立即数2FH
MOV @R1,#2FH ; (80H)←立即数2FH
5.指令中的常用符号
@:在间接寻址方式中,用于间接寻址寄存器指针的前缀标志。 $:表示当前指令的地址。 /:在位操作指令中,表示对该位先求反后再参与操作。 (X):表示由X所指定的某寄存器或某单元中的内容。 ((X)):表示由X间接寻址单元中的内容。 ←:表示指令的操作结果是将箭头右边的内容传送到左边。 →:表示指令的操作结果是将箭头左边的内容传送到右边。 ∨、 ∧、 ⊕ :表示逻辑或、与、异或。
3.伪指令
伪指令:也称为汇编程序的控
制命令。是程序员发给汇编程序 的命令,用来设臵符号值、保留 和初始化存储空间、控制用户程 序代码的位臵。 伪指令只出现在汇编前的源 程序中,仅提供汇编用的某些控 制信息,不产生可执行的目标代 码,是CPU不能执行的指令。
指令 产 生 可 执 行 指 令
程 序
伪指令
寄存器间接寻址示意图
MOV R1,#80H MOV A,@R1 ; (R1)← 立即数80H ; (A)←((80H))=立即数2FH MOV @R1,#2FH ; (80H)←立即数2FH
2.2.5 变址寻址
定义:操作数存放在变址寄存器(累加器A)和基址寄存器(DPTR或
PC)相加形成的16位地址单元中。这种寻址方式称为基址加变址寄存 器间接寻址,简称为变址寻址。
4.指令的分类
MCS-51指令系统有111条指令,可按下列几种方式分类:
1. 按指令字节数分类
每条指令在程序存储器ROM中所占据字节数分3类: 单字节(49条),双字节(46条),3字节(16条)。
2. 按指令执行时间分类
每条指令在执行时要花去时间--机器周期分4类: 单机器周期指令(65条)、双机器周期指令(44条) 四机器周期指令(2条)。
第2章 MCS-51单片机指令系统 与汇编语言程序设计
主要内容:单片机的寻址方式、指令系统及汇编语 言程序设计和调试。 重 难 点:对寻址方式、指令的应用、程序设计的 规范、思想及典型程序的理解和掌握。 点:控制转移、位操作指令、与硬件相结合 的程序设计
第2章 MCS-51单片机指令系统与 汇编语言程序设计
计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计 所决定的。指令系统没有通用性。
单片机一般是空机,未含任何系统软件。因此在第一次使用前,必须对 其进行编程。 指令的三种属性:功能、时间和空间属性 功能:指每条指令都对应一个特定的操作功能; 时间:指一条指令执行所用的时间,一般用机器周期来表示; 空间:指一条指令在程序存储器中存储所占用的字节数。
表该位地址。位地址n可以是绝对地址,也可以是符号地址。
(8)数据地址赋值伪指令DATA
格式:字符名称x DATA 表达式n 功能:把表达式n的值赋值给左边的字符名称x。n可以是数据或地址,也
可以是包含所定义的‚字符名称x”在内的表达式,但不能是汇编符号。 DATA与EQU的主要区别是:EQU定义的‚字符名称‛必须先定义 后使用,而DATA定义的‚字符名称‛没有这种限制。所以,DATA伪指令通 常用在源程序的开头或末尾。
2.1
概述-基本概念
1.常用单位与术语
位(bit):位是计算机所能表示的最小的、最基本的数据单位,
位通常是指一个二进制位。
字节 (Byte):一 个 连 续 的 8位二进 制数 码称为 一个 字节 ,即
1Byte=8bit。
字(Word):通常由16位二进制数码组成,即1Word=2Byte。 字长:字长是指计算机一次处理二进制数码位的多少。MCS-51
Rn(n=0~7):表示当前工作寄存器R0~R7中的任一个寄存器。
Ri(i=0或1):表示通用寄存器组中用于间接寻址的两个寄存器R0, R1。
#data:表示8位直接参与操作的立即数。 #data16:表示16位直接参与操作的立即数。
5.指令中的常用符号
direct:表示片内RAM的8位单元地址。 addr11:表示11位目的地址,主要用于ACALL和AJMP指令中。 addr16:表示16位目的地址,主要用于LCALL和LJMP指令中。
MOV A,B
MOV 30H,R0 MOV DPTR,#1000H
; (A) ←(B)
;(30H)←(R0) ; (DPTR) ←1000H
2.2.4 寄存器间接寻址
定义:指令给出的寄存器中存放的是操作数据的地址的寻址方式。 特点:是二次寻找操作数地址的寻址方式,寄存器加前缀符号‚@”。
注意:不能用于寻址特殊功能寄存器SFR。
3. 按功能分类
按指令的功能分为5类: 数据传送指令(29条)、算术操作指令(24条) 逻辑操作指令(24条)、控制转移指令(17条) 位操作指令(17条)。
5.指令中的常用符号
指令格式:[标号:] 操作码 [操作数] [,操作数] [;注释]
其中:操作码:44种助记符。
操作数:23个常用符号。
指令中的常用符号
2.1 概述
2.2 MCS-51单片机的寻址方式
2.3 MCS-51单片机的指令系统
2.4 汇编语言及程序设计
2.5 程序设计举例
2.6 汇编语言的开发环境
2.1
概述-基本概念
指令:使计算机内部执行的一种操作,提供给用户编程使用的一种命令。 指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。 机器语言:一套控制计算机执行操作的二进制编码,称为机器语言。机器语 言指令是计算机唯一能直接识别和执行的指令。 汇编语言:利用指令助记符来描述指令系统的一套计算机指令。
(5)定义双字节伪指令DW
格式:[标号:] DW x1, x2,…, xn
功能:将双字节数据(或双字节数据组)顺序存放在从标号指定地
址单元开始的存储单元中。其中,xi为16位数值常数,占两个存储单元,先 存高8位(存入低位地址单元中),后存低8位(存入高位地址单元中)。
(6)预留存储空间伪指令DS
汇 编
仅提供汇 编用信息
机器码程序
(1)定位伪指令ORG
格式:ORG n 其中:n为绝对地址,可以是十六进制数、标号或表达式。 功能:规定编译后的机器代码存放的起始位臵。在一个汇编语
言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的 机器指令存放地址不重叠。
例如:
ORG
1000H
START:MOV A,#20H
rel:用补码形式表示的8位二进制地址偏移量,取值范围为128~+127, 主要用于相对转移指令,以形成转移的目的地址。 DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式。
bit:表示片内RAM的位寻址区,或者是可以位寻址的SFR的位地址。 A(或ACC):表示累加器。 B :表示B寄存器。 C:表示PSW中的进位标志位Cy。
LJMP START
MOV
MOV MOV
A,
A, R1,
40H
SP 1FH
;将40H中的数据传送给累加器A
; ;(R1) ←(1FH)
MOV
MOV
30H,
C,
4AH
20H
;(30H)←(4AH)
;将位地址20H中的值给进位标志志C
直接寻址时就是将存贮器中指定地址单元的数据直接送给操作码处理。
2.2.3 寄存器寻址
定义:操作数存放在某个工作寄存器Rn(R0~R7)或部分专用 寄存器中的寻址方式。
特点:由指令指出某一个寄存器的内容作为操作数。存放操作数 的寄存器在指令代码中不占据单独的一个字节,而是嵌入(隐含) 到操作码字节中。 寻址范围:四组通用寄存器Rn(R0~R7)、部分专用寄存器 ( A, B, DPTR, Cy )。 示例:
(4)定义字节伪指令DB
格式:[标号:] DB x1, x2,…, xn 功能:将8位数据(或8位数据组)x1, x2,…, xn顺序存放在从当 前程序存储器地址开始的存储单元中。xi可以是8位数据、ASCII 码、表达式,也可以是括在单引号内的字符串。两个数据之间用
逗号‚,”分隔。
xi 为数值常数时,取值范围为00H~FFH。xi为ASCII码时,要 使用单引号‘’,以示区别。xi为字符串常数时,其长度不应超过 80个字符。
2.汇编语言指令格式
指令格式:指令的表示方式称为指令格式,它规定了指令的长度 和内部信息的安排。完整的指令格式如下: [标号:] 操作码 [操作数] [,操作数] [;注释] 其中:[ ]项是可选项。 标号:指本条指令起始地址的符号,也称为指令的符号地址。代 表该条指令在程序编译时的具体地址。 操作码:又称助记符,它一般是对应英文的缩写,它规定了指令具 体的操作功能,描述指令的操作性质,是指令语句的关键,是一条 指令中不可缺少的内容。 操作数:可以是一个具体的数据,或是存放数据的地址。 注释:可选项,是为增加程序的可读性而设臵的,是针对某指令而 添加的说明性文字,不产生可执行的目标代码。
相关文档
最新文档