第3章指令系统

合集下载

第3章 指令系统(BH)

第3章 指令系统(BH)
• 指令:是CPU根据人的意图来执行某种操作的命令。
• 程序设计语言:是实现人机交换信息的基本工具,
分为机器语言、汇编语言和高级语言。 能直接识别和执行的语言。
• 机器语言:用二进制编码表示每条指令,是计算机
• 汇编语言:是用助记符、符号和数字等来表示指令
的程序设计语言。它与机器语言指令是一一对应的。
MOV direct,Rn;
111 1rrr direct
(Rn)
direct
MOV direct, direct;
1000 0101 源 direct 目的 direct
(源 direct) 目的 direct
MOV direct,@Ri ;
1000 011i direct
((Ri))
direct
• 例如
计算机科学学院
电子信息科学教研室
12
• 例如:将片内RAM 65H单元内容47H送A,可执行 指令“MOV A,@R0”。其中R0内容为65H。如 图所示:
以指令中所指定 的R0内容(65H) ① 为指针
地址 数据存储器
R0
65H

② A
47H
将片内RAM 65H单 元内容47H送A
65H
11
计算机科学学院
电子信息科学教研室
4、寄存器间接寻址
• 寄存器间接寻址:操作数的地址事先存放在某个寄
存器中,寄存器间接寻址是把指定寄存器的内容作为 地址,由该地址所指定的单元内容作为操作数。
• 89C51规定R0或R1为间接寻址寄存器,它可寻址内部
地址RAM低位的128B单元内容。还可采用DPTR作为 间接寻址寄存器,寻址外部数据存储器的64KB空间。

第三章 指令系统--指令

第三章 指令系统--指令

寻址方式指令系统
数据传送指令算术运算指令逻辑运算指令串操作指令
控制转移指令处理器控制指令
通用传送指令
累加器专用传送指令
地址传送指令
标志传送指令
对标志位的影响: 除SAHF和POPF指令外,其余的所有数据传送类指令
格式:
功能:
操作数类型:
DS,100H

堆栈:执行
PUSH
POP
SS指向堆栈段的起始位置SP指定栈顶
PUSH AX PUSH DS POP DS POP AX
格式:
oprd1,
立即数、段寄存器和
不影响
通用传送指令
累加器专用传送指令地址传送指令
标志传送指令
LEA (Load Effective Address)
LDS (Load pointer into register and DS) LES (Load pointer into register and ES)
LEA LEA
LEA
数据传送指令算术运算指令逻辑运算指令串操作指令
控制转移指令处理器控制指令
实现二进制
所有算术运算指令均所有算术运算指令均
四则运算是计算机经常进行的一种操作。

请注意算术运算指令对
只有一个操作数:寄存器或存储单元对操作数加
用于计数器和地址指针的调整
不影响进位
对操作数减
用于计数器和地址指针的调整不影响进位。

第三章 指令系统

第三章  指令系统

(1) 三地址双操作
50
指令
数指执令行一条三地址的加法指令需要访问514
下条指令
次主.存。
个 ( 假 单 存A显 设 元 放1号第中地指中在三单)址令,主一取地O,存第存元址次第P指放一的(双中从二令在、1A操2取5操的主第0作第0作含存二0)数一义 的 操号数存指和→为 5 作操令单,的2: 0 数A有作元第303分3号0数中四0别,取次0第指将号三令加单次,法元从第的。2二结1200000次果0从保第第1存一二号操操0到...单作作0主元数数
寄存器/存储器:直接给出寄存器或存储 器的地址码(名称)即可; 注:寄存器(CPU内部或外围设备内部) 及存储器的编址方式: 1)字编址、字节编址、位编址; 2)统一编址、非统一编址
操作数的编码方式
例:设某机主存容量为16MB ,机器 字长16 位,若最小寻址单位为字节 (按字节编址) ,其地址码为多少位? 若最小寻址单位为字(按字编址) ,其 地址码又为多少位?
共需12 条指令,其中7 条一地址的进、出栈指令, 5 条零地址的算术运算指令。进、出栈指令3 次访 存,算逻指令4 次访存,执行此程序共访存7 × 3 + 5 × 4 = 41 次。
例: 某一机器的指令系统,操作码8 位, 地址码均为16 位,CPU 与主存之间每次传 送16 位数据。A 、B 、C 、D 、E 表示字地 址,存放16 位数据。
常用指令寻址方式
顺序寻址方式 跳跃寻址方式:直接、相对、间接
栈及相关概念
1、栈的分类: 用寄存器实现堆栈(串联堆栈) 内存中开辟堆栈区
自底向上生成堆栈 自顶向下生成堆栈 2、栈的建立: 将栈顶地址传送到SP中 3、栈的操作: PUSH/POP、MOV
IA32指令系统

第3章指令系统

第3章指令系统
解:程序如下: 程序如下: ORG NUM DATA STRING DATA START: CLR MOV LOOP: LOOP: CJNE SJMP NEXT: NEXT: INC INC SJMP COMP: COMP: MOV SJMP 0800H 20H 21H A R0, R0,#STRING @R0, @R0,#24H,NEXT COMP A R0 LOOP NUM, NUM,A $
单片机原理 及接口技术
第3 章
89C51单片机指 89C51单片机指 令系统
LOGO
LOGO
程序设计举例
一 二 三 四 五 六
简单程序设计举例 分支程序 循环程序 子程序设计举例 代码转换程序设计举例 运算类程序设计举例
BACK
LOGO
一、 简单程序设计举例
例1 :拆字。将片内RAM 20H单元的内容拆成两段,每段 拆字。将片内RAM 20H单元的内容拆成两段 单元的内容拆成两段, 四位。并将它们分别存入21H 22H单元中 程序如下: 21H与 单元中。 四位。并将它们分别存入21H与22H单元中。程序如下:
练习: 练习: 1.将片外RAM 2000H单元开 始的20个字节,传送到片 内RAM 30H单元开始的单元 中去。 2.将片内RAM 20H单元开始 的10个字节,传送到片内 RAM 30H单元开始的单元中 去。 3.将片内RAM BK1单元开始 的COUNT个字节,传送到片 外RAM BK2单元开始的单元 中去。
Back
LOGO
3.4
思考题与习题
1. 简述下列基本概念: 指令、指令系统、机器语言、汇编语言、高级 语言。 2. 什么是计算机的指令和指令系统? 3. 简述89C51汇编指令格式。 4. 简述89C51的寻址方式和所能涉及的寻址空间。 5. 要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?

第3章 PIC单片机指令系统

第3章 PIC单片机指令系统

第3章 指令系统3.1 3.2 3.3 3.4 汇编语言 寻址方式 PIC18F452指令系统 程序设计举例3.1汇编语言• 指令:是 指令:是CPU CPU根据人的意图来执行某种操作的命令。

根据人的意图来执行某种操作的命令。

• 程序设计语言:是实现人机交换信息的基本工具,分为机 器语言、汇编语言和高级语言。

• 机器语言:用二进制编码表示每条指令 机器语言:用二进制编码表示每条指令,是计算机能 ,是计算机能直接 直接 识别和执行的语言。

识别和执行 的语言。

• 汇编语言:是用助记符、符号和数字 汇编语言:是用助记符、符号和数字等来表示指令的程序 等来表示指令的程序 设计语言。

它与机器语言指令是一一对应的。

设计语言。

它与机器语言指令是一一对应的。

? 汇编语言编写的程序能否直接被计算机执行? • 高级语言:面向问题和计算过程的语言,可通用于各种不 同的计算机。

用户编程时不必了解所用计算机的指令系统。

Why study assembly language?• Many critical programs are written in assembly language • To better understand the functions and architecture of a computer system • To better understand the working of high level languages • To design efficient programs • A tool for writing system programs • Embedded systems development– Mixed languages programming3• PIC18F452 PIC18F452汇编语言指令格式 汇编语言指令格式 标记段: 标记段 :操作码 [目的 目的操作数 操作数][, ][,源 源操作数 操作数][ ][; ;注释 注释] ]MOVLW BTFSS BCF GOTO 0x7F WREG, 7 WREG, 0 Stop ;load test data ;clear bit 0Stop:• 其中操作码 其中操作码是必不可少的。

第3章 AT89S51的指令系统

第3章 AT89S51的指令系统
1. 累加器A 清“0”指令
(1) CLR A A清“0”,不影响Cy、Ac、OV等标志位。
2. 累加器A 求反指令
(2) CPL A A的内容按位逻辑取反,不影响标志位。
3.2.3 逻辑运算指令(25条)续
3.左环移指令
(3)RL A A7 A6 A5 A4 A3 A2 A1 A0
A向左循环移位,位7循环移入位0,不影响标志位。 4.带进位左环移指令
3.2.4 控制转移类指令(17条)续 4.条件转移指令(2条)
(4)JZ rel ;若A内容为“0”,则转移 (5)JNZ rel ;若A内容非“0”,则转移
规定的条件满足,则进行转移,条件不满足 则顺序执行下一条指令。
3.2.4 控制转移类指令(17条)续
5.比较不相等转移指令(4条)
举例: CJNE A,direct,rel
•不影响标志位:Cy、Ac和OV • 影响标志位:P(仅当A为目的操作数时)
3.2.1 数据传送类指令(28条)续
举例: MOV A,70H ;(70H)→A
MOV A,#70H ;70H→A
MOV A,R0 MOV A,@R0
;(R0)→A ;((R0))→A
3.2.1 数据传送类指令(28条)续
累加器A与外部数据存储器传送指令(4条) ;((DPTR))→A,读外RAM/IO MOVX A,@DPTR ;((Ri))→A,读外RAM/IO MOVX A,@Ri
MOVX @DPTR,A MOVX @Ri,A ;(A)→((DPTR)),写外RAM/IO ;(A)→((Ri)),写外RAM/IO
ACALL addrll ;短调用指令
2KB范围内的调用子程序的指令。
•与AJMP指令相类似,是为了与MCS-48中的CALL 指令兼容而设的。

第3章 8086(8088)CPU指令系统

第3章 8086(8088)CPU指令系统
数据段 BX + SI 10H
20H 00H
00H 34H 12H
3000H:0000H
注: ◆基址因子BP访问默认为堆栈段 ◆不能同时取两个基址因子;也不 能同时去两个变址因子
16
+
3000H:3000H
AH
AL
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
●存储器寻址之相对基址加变址寻址(Base
9
第3章 8086/8088CPU指令系统
3.1.3 操作数寻址方式
4.1操作数寻址方式
所谓操作数的寻址方式,是在指令格式中怎样有效的表示出操 作数的存放位臵,CPU在执行该指令时,按照指令格式中的表示找 到并对数据进行存取。 1.立即寻址(Immediate Addressing) 立即寻址中的操作数作为指令的一 部分存放在代码段中,在取指阶段数据 随指令一起被取到CPU,这种数据在指 令格式中的直接表现为常数。 如:MOV AL,34H

2
第3章 8086/8088CPU指令系统
汇编语言指令或符号指令:用字母和其它一些符 号组成的“助记符”与操作数等表示的指令称为汇编 语言指令或符号指令。 例如: MOV AX, BX ; AX←BX 而其二进制代码(机器代码)为89D8H,就是 1000 1001 1101 1000 B 不易理解,不易记忆。助记符是MOV。
操作码
操作数
4
第3章 8086/8088CPU指令系统
3.1.1 8086/8088指令格式
4.1操作数寻址方式
8086/8088机器指令格式通常1-6个字节组成。典型的指令格式 由2个字节组成,如下图所示。
操作码 D W MOD REG R/M

第3章--Cortex-M3-指令系统

第3章--Cortex-M3-指令系统

3.2.2指令的可选后缀
(2)!后缀 如果指令地址表达式中不含!后缀,则基址寄存器中的地址值不会发生变化。 指令中的地址表达式中含有!后缀时,指令执行后,基址寄存器中的地址值将发 生变化,变化的结果如下: 基址寄存器中的值(指令执行后)=指令执行前的值+地址偏移量
例 3.3 分别执行下面两条指令有何区别?
18
3.3 指令的寻址方式
• 3.3.1 立即数寻址 • 3.3.2 寄存器寻址 • 3.3.3 寄存器间接寻址 • 3.3.4 寄存器移位寻址 • 3.3.5 基址变址寻址 • 3.3.6 多寄存器寻址 • 3.3.7 相对寻址 • 3.3.8 堆栈寻址
3.3.1立即数寻址
• 立即数寻址也叫立即寻址,操作数本身就在指令中给出,取出指令也就
第3章 Cortex-M3 指令系统
1
第3章 Cortex-M3 指令系统
• 3.1 指令基础 • 3.2 汇编语言 • 3.3 寻址方式 • 3.4 指令集
2
3.1 指令基础
• 3.1.1 程序设计语言的层次结构 • 3.1.2 程序的执行过程 • 3.1.3 Cortex M3寄存器
3.1.1程序设计语言的层次结构
S后缀通常用于对条件进行测试,例如是否有溢出,是否进位等;根据 这些变化,就可以进行一些判断,如是否大于,是否相等;从而可能影响 指令执行的顺序。
✓ 条件后缀和S后缀的关系如下: 如果既有条件后缀又有S后缀,则书写时S排在后面, 如:ADDEQS R1,R0,R2 该指令在Z=1时执行,将R0+R2的值放入R1,同时刷新条件标志位。
无法表示的32位数, 只有通过逻辑或算术运算等其它途径获得了. 比如0xffffff00, 可以通过0x000000ff按位取反得到.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

寄存器间接寻址
寄存器间接寻址方式的寻址范围
内部RAM低128单元
间址寄存器:R0 或 R1
外部RAM64KB
间址寄存器:DPTR
外部RAM的低256单元
间址寄存器:R0 或 R1
堆栈操作指令(PUSH和POP)也应算作 是寄存器寻址。 即以堆栈指针(SP)作间址寄存器的间接 寻址方式。
(5) 变址寻址(针对程序存储器的寻址方式)
MOV DPTR ,#data16
; DPTR ← #data16
(3) 外部数据传送指令
80C51单片机CPU对片外扩展的数据存储器RAM或I/O口进
行数据传送,必须采用寄存器间接寻址的方法,通过累加器A来
完成。 指令助记符 MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR ,A 操作功能注释 ; A←((Ri)) ; (Ri)←(A) ; A←((DPTR)) ; (DPTR)←(A) 机器码(H) E2、E3 F2、F3 E6 F0
3.2 寻址方式和寻址空间
寻址: 在单片机的存储空间中寻找指令规定的操 作数的地址,并将操作数取出来。
寻址方式: 寻找操作数地址的方式称寻址方式 在一条指令中通常是根据指令的源操作数来 决定寻址方式的。
寻址方式
(1) 立即寻址
操作数直接出现在指令中,紧跟在操作码的后面,作为指令
的一部分与操作码一起存放在程序存储器中,可以立即得到并执 行,不需要经过别的途径去寻找,故称为立即寻址。 立即寻址所对应的存储空间为ROM空间 • 例如:MOV A,#35H 指令中35H就是立即数。
执行结果: (40H) = AAH,(SP)=30H。
例7 若在片外ROM中2000H单元开始依次存放0~9的平方值,
直接寻址示意图
(3) 寄存器寻址 在指令选定的寄存器中存放或读取操作数,以完成 指令规定的操作,称为寄存器寻址。 例如:MOV 都是寄存器寻址。 A,R1指令中源操作数和目的操作数
执行MOV
A,R1
E9
寄存器寻址示意 图
指令机器码的低3位分别指明所用的工作寄存器R0,R1,…,R6,R7。
如:MOV A,Rn(n=0~7),
(5) 访问程序存储器的数据传送指令
访问程序存储器的数据传送指令又称作查表指令,采用基址 加变址的变址寻址方式,把程序存储器中存放的表格数据读出, 传送到累加器A。 指令助记符 MOVC A, @A+DPTR MOVC A, @A+PC 操作功能注释 ;(A)←((A)+(DPTR)) ;(PC)←(PC)+1,(A)←((A)+(PC))
这两条指令都是双字节指令

已知片内RAM50H单元中存放数值为AAH,设堆栈指
针为30H,把此数值压入堆栈,然后再弹出到40H中。 完成上述功能的程序如下: MOV SP,#30H PUSH 50H ;SP←30H ;SP+1 →SP,(50H) →(31H)
POP 40H
;(31H) → (40H) , SP-1→SP
MOV DPTR , #data16
执行MOV
A,#35H
74H 35H
立即寻址示意图
(2) 直接寻址
指令中直接给出操作数所在的存储器地址,以供取 数或存数的寻址方式称为直接寻址。 例如:MOV A,3CH 该指令的功能是把片内RAM地址为3CH单元的内
容送到A中。
执行MOV A,3CH
E5H 3CH
执行结果为: (A)=02H, (R0)=02H,(PC)=1004H。
例5
从片外程序存储器2000H单元开始存放0~9的平方值,
以DPTR作为基址寄存器进行查表得9的平方值。
其程序如下: MOV DPTR,#2000H ;置表首地址
MOV A, #09H MOVC A,@A+DPTR
(6)堆栈操作指令
(4)数据交换指令
交换指令数据作双向传送,涉及传送的双方互为源地址、
目的地址,指令执行后两操作数均被冲掉、丢失。数据交换
指令共有如下5条指令:

设(R0) = 30H,(30H) = 4AH,(A) = 28H,则
执行XCH A, @R0后, 结果为(A) = 4AH,(30H) = 28H。 执行XCHD A,@R0后,结果为(A) = 48H,(30H) = 2AH。 执行SWAP A后, 结果为(A) = 84H。
表示R0或R1。n取0~7,表示R0~R7。
(2) #data:表示指令中的8位立即数。
(3) #data16:表示指令中的16位立即数。
(4) rel:以补码形式表示的8位相对偏移量,范围为–128~127。 (5) addr11:表示11位直接地址。
(6) addr16:表示16位直接地址。 (7) direct:表示直接寻址的地址。
访问片内RAM的一般传送指令表
例1 设内部RAM(30H)=40H,(40H)=10H,(10H)=00H, (P1)=CAH,分析程序执行后各单元及寄存器、P2口的内容。 MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,@R1 MOV @R1,P1 MOV P2,P1 ;(R0)←30H ;(A)←((R0)) ;(R1)←(A) ;(B)←((R1)) ;((R1))←(P1) ;(P2)←(P1)
当前PC值 偏移量 新PC值 注意 此例中CY PSW.7)为1
1000H 1001H 1002H
40H 75H
JC rel
1077H ROM
7. 位寻址
位寻址是在位操作指令中直接给出位操作数的地址,可以
对片内RAM中的(20H ~ 2FH)128位和特殊功能寄存器SFR
中的84位进行寻址。位寻址在指令中有四种表示方法 • • 直接使用位地址 位名称
变址寻址是指以DPTR或PC作基址寄存器,累加器A作变
址寄存器,以两者内容相加形 成的16位程序存储器地址 作为操作数地址。 MOVC A,@A+DPTR
图3.5 变址寻址
变址寻址
(6) 相对寻址(为实现程序转移设置) 相对寻址是指程序计数器PC的当前内容与指令中的 操作数值加,其结果作为跳转指令的转移地址(目的地 址)。 它用于访问程序存储器,主要用于跳转指令 PC当前值=源地址+转移指令字节数
若以PC作为基址寄存器,CPU取完该指令操作码时PC会自 动加1,指向下一条指令的第一个字节地址,即此时是用(PC)+1作
为基址的。另外,由于累加器A中的内容为8位无符号数,这就使
得本指令查表范围只能在256个字节范围内 即 (PC)+1H~(PC)+100H
使表格地址空间分配受到限制。 在编程时需要进行偏移量的计算,偏移量计算公式为:
第3章 80C51单片机的指令系统 3.1 3.2 3.3
概述 寻址方式
指令系统
3.1 概述
3.1.1 指令、指令系统的概念
指令是使计算机内部执行的一种操作,提供给用户
编程使用的一种命令。
以二进制代码来描述指令功能的语言,称之为机器语
言。因此给每条机器语言指令赋予助记符号来表示,这
就形成了汇编语言,汇编语言和机器语言指令一一对应。
指令系统
一台计算机的CPU能够执行的全部操作所对应的指令集合。
采用机器语言编写的程序称之为目标程序。 采用汇编语言编写的程序称之为源程序。 汇编语言程序不能被计算机直接识别并执行,必须经过一 个中间环节把它翻译成机器语言程序,这个中间过程叫做汇编。
3.1.2 80C51单片机指令系统及其指令格式

+127(00H
~ FFH),负数表示从
当前地址向前转移,正数表示从当前地址向后转移。
目的地址 = 当前PC值+rel
= 指令存储地址+指令字节数+rel
JC rel
00Hrel=75H NhomakorabeaPC值
字节数
1000H+02H=1002H RAM PSW 10000000 SFR 1002H+75H=1077H
• 外部RAM只能通过累加器A进行数据传送 • 累加器A与外部RAM之间传送数据只能用间接 寻找方式。 • 使用时应当先将要写入或读出的地址送DPTR, Ri中,再用读写指令。 • 片外扩展的I/O端口与片外RAM是统一编址的, 对片外I/O端口的访问也使用以上四条指令。
例2 设外部RAM(0203H)= FFH,分析以下指令执行后的结果。
80C51单片机指令系统共有111条指令。从功能上可划分成 数据传送、算术操作、逻辑操作、程序转移和位操作等五大类;
80C51单片机的指令有无操作数、单操作数、双操作数三 种情况。汇编语言指令有如下的格式:
标号:操作码助记符 <目的操作数> , <源操作数> ;注释
指令符号的约定意义:
(1) Ri和Rn:表示当前工作寄存器区中的工作寄存器,i取0或1,
3.3 80C51单片机的指令系统
3.3.1 数据传送类指令
(1)片内数据存储器的一般数据传送指令
该类指令的功能是实现数在片内RAM单元之间、寄存器之
间、寄存器与RAM单元之间的传送。所有指令具有统一的格式,
其格式如下: MOV <目的操作数>,<源操作数>;目的操作数单元←源操 作数(或单元) 操作码助记符都是"MOV",目的操作数和源操作数不同寻 址方式的组合就派生出该类的全部指令共有15条。
(8) bit:表示可位寻址的直接位地址。
(9) (X):表示X单元中的内容。
(10) ((X)):表示以X单元的内容为地址的存储器单元内容,
即(X)作地址,该地址单元的内容用((X))表示。
相关文档
最新文档