第3章指令系统(2013)
第3章 指令系统(BH)

• 程序设计语言:是实现人机交换信息的基本工具,
分为机器语言、汇编语言和高级语言。 能直接识别和执行的语言。
• 机器语言:用二进制编码表示每条指令,是计算机
• 汇编语言:是用助记符、符号和数字等来表示指令
的程序设计语言。它与机器语言指令是一一对应的。
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章指令系统和寻址方式

(6) 基址变址寻址方式 基址变址寻址方式*
(BX) 有效地址 = + (BP) 指令格式: 指令格式: MOV MOV MOV (SI) (DI)
AX, [BX] [DI] AX, [BX+DI] AX, ES:[BX] [SI]
* 适于数组、字符串、表格的处理 适于数组、字符串、 * 必须是一个基址寄存器和一个变址寄存器的组合
• 寄存器操作数
– 寄存器的内容参加运算或存放结果。 寄存器的内容参加运算或存放结果。
• 存储器操作数
– 指内存某地址的字节、字、双字等是指令的处 指内存某地址的字节、 理对象, 理对象,这时必须把处理对象取出或送入相应 地址。 地址。
有效地址和段超越
• 存储单元的物理地址由两部分组成:段 存储单元的物理地址由两部分组成: 寄存器保存的段基值,偏移地址。 寄存器保存的段基值,偏移地址。 • 在8086/8088的各种寻址方式中,寻找存 的各种寻址方式中, 的各种寻址方式中 储单元所需的偏移地址,称为有效地址, 储单元所需的偏移地址,称为有效地址, 用EA表示。 表示。 表示 • 不同的寻址方式,组成有效地址 的各 不同的寻址方式,组成有效地址EA的各 部分内容也不一样,寻址方式主要是EA 部分内容也不一样,寻址方式主要是 如何计算与寻找的问题。 如何计算与寻找的问题。
汇编指令的书写形式
• 格式
[name] operation operand [;comment] – 名字项(name):可以是标号或变量,表示本 名字项( ):可以是标号或变量 ):可以是标号或变量, 语句的符号地址。 语句的符号地址。
• 标号在代码段中定义,后跟冒号。 标号在代码段中定义,后跟冒号。 • 变量在数据段或附加数据段中定义,后面不跟冒号。 变量在数据段或附加数据段中定义,后面不跟冒号 不跟冒号。 • 名字项组成:字母打头的字符串组成。包含字符 名字项组成:字母打头的字符串组成。 (A~Z,0~9,_,?,$,@等),如MainLoop, , , , , , 等),如 , Calc_long_sum。 。 • 单独的$或?有特殊含义,不能做符号名。 单独的 或 有特殊含义,不能做符号名。 有特殊含义 • 保留字不能用在名字项。 保留字不能用在名字项。
第3章指令系统

单片机原理 及接口技术
第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章MCS-51指令系统

第3章 MCS-51指令系统 4. 伪指令 在汇编语言源程序中,除了包含可以转化为特定计算机系 统的机器语言指令所对应的汇编语言指令外,还可能包含一些 伪指令,如“ORG 2000H”、“END”等。“伪”者,假也,尽 尽 管它不是计算机系统对应的指令,汇编时也不产生机器码,但 管它不是计算机系统对应的指令,汇编时也不产生机器码, 汇编语言程序中的伪指令并非可有可无。伪指令的作用是指导 汇编语言程序中的伪指令并非可有可无。 源程序的汇编过程, 源程序的汇编过程,例如“ORG 2000H”伪指令,指示汇编程序 将该伪指令后的汇编语言指令对应的机器码从2000H单元开始存 放。
第3章 MCS-51指令系统
· 52/54子系列内部RAM后128字节(即地址编码为80~FFH) 各单元之间不能直接传送。原因是高128字节内部RAM只能使 用寄存器间接寻址方式,而一条指令中,最多只允许一个操作 数使用寄存器间接寻址方式。 数据传送指令一般不会影响程序状态字寄存器PSW中的标 志位,但当数据传送到累加器A时,PSW中的奇偶标志位P会改 变,原因是奇偶标志位P总是体现累加器A中“1”的个数的奇偶 性。
第3章 MCS-51指令系统 1. 内部 内部RAM与特殊功能寄存器之间的数据传送 与特殊功能寄存器之间的数据传送 表3-1 内部RAM与特殊功能寄存器之间的数据传送指令
指令名称 指令格式 MOV A,Rn 以累加器A作为 目的操作数 MOV A,direct MOV A,@Ri MOV A,#data 机器码 11101rrr 11100101 direct 1110011i 01110100 data 功能 A←Rn A←(direct) A←(Ri) A←data 指令周期 1 1 1 1
MOV 90H,0F0H ; 将特殊功能寄存器0F0H单元(即寄存器B) 内容传送到特殊功能寄存器90H ; 单元(即P1口锁存器)中
第3章.指令系统控制程序转移类指令new下

;3字节指令
同样地,使用时,可以将rel理解成标号,即: CJNE A,#data, 标号 CJNE A,direct,标号 CJNE Rn,#data,标号 CJNE @Ri,#data,标号
⑵比较(不相等)转移指令
① CJNE A,#data,rel
;先(PC)+3→PC
若(A)>#data,则(PC)+rel→PC,且0→CY; 若(A)<#data,则(PC)+rel→PC,且1→CY; 若(A)=#data,则顺序执行,且0→CY。
② rel为负数时,范围为:-128~-1 (80H~FFH)。
③相对转移指令“SJMP rel”
★正向跳转时: rel=目的地址-源地址-2
=地址差-2。
例如:
0157H
0100H:SJMP rel
设转移的地址为0157H,则: rel=0157H-0100H-2=55H。故该指令可写成:
0100H:SJMP 55H 其机器码为: 80H 55H
⑵位置1指令
SETB C SETB bit
; 1→ CY。 1字节指令 ;1→bit 。 2字节指令
2. 位修正指令
⑶位取反指令
CPL C
;(C)→C, 1字节指令
CPL bit ;(bit) → bit。 2字节指令
3. 位逻辑运算指令 ⑴位逻辑“与”指令 ANL C, bit ;(C) ∧ (bit)→C。 2字节指令 ANL C, /bit ;(C) ∧ (bit) →C。 2字节指令
; 否则顺序执行。
JNZ rel ;(PC)+2→PC。若A≠0,则转移到(PC)=(PC)+rel ;
;否则顺序执行。
第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:• 其中操作码 其中操作码是必不可少的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最常用的非规整型编码方式是扩展操 作码法: 让操作数地址个数多的指令(如三地 址指令)的操作码字段短些,操作数地址 个数少的指令(如一或零地址指令)的操 作码字段长些。
注意
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
例如:设某机的指令长度为16位,操 作码字段为4位,有三个4位的地址码字段, 其格式为:
第 3章
计算机组成原理
指令系统
北京理工大学计算机学院
第 3章
计算机组成原理
指令和指令系统是计算机中最基本的 概念。指令是指示计算机执行某些操作的 命令,一台计算机的所有指令的集合构成 该机的指令系统,也称指令集。指令系统 是计算机的主要属性,位于硬件和软件的 交界面上。本章将讨论一般计算机的指令 系统所涉及的基本问题。
3.1 指令格式
计算机组成原理
3.目的操作数地址 二地址指令
OP + 100 A1 200 A2 50 51 100 200 300 指令 下一指令 5 5 8 3 3
(A1)OP(A2)→A 源操作数地址 1 (PC)+1=下条将要执行 指令的地址
5 A1中原存内容在 + 3 指令执行后被破坏。 8
4位 4位 4位 4位
OP
A1
A2
A3
如果按照定长编码的方法,4位操作码 字段最多只能表示16条不同的三地址指令。
北京理工大学计算机学院
3.1 指令格式
4位 4位 4位
计算机组成原理
4位
OP OP
OP
A1 OP
OP
A A1 2
A A2 A1 3
…
0000 XXXX YYYY ZZZZ
扩展窗口 1110 XXXX YYYY ZZZZ
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
3.1.2 地址码结构 一条双操作数指令的除操作码之外,还 应包含以下信息: 第一操作数地址,用A1表示; 第二操作数地址,用A2表示; 操作结果存放地址,用A3表示; 下条将要执行指令的地址,用A4表示。 这些信息可以在指令中明显的给出,称 为显地址;也可以依照某种事先的约定,用 隐含的方式给出,称为隐地址。 下面以双操作数指令为例讨论地址码结 构。
执行一条二地址 指令需4次访问主存。
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
累加寄存器 4.一地址指令
OP + 100 A1 50 51 100 指令 下一指令 3 3
(Acc)OP(A1)→Acc (PC)+1=下条将 要执行指令的地 址 执行一条一 地址指令需2次访 问主存。
5 + 3 8
计算机组成原理
二地址指令: MOV X,A MUL X,B ADD X,C SUB X,D MOV Y,E ADD Y,F DIV X,Y 7条指令,MOV指令3次访存,算逻指令 4次访存,执行此程序共访存2×3+5×4=26次。
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
一地址指令: LOAD E ADD F STORE X LOAD A MUL B ADD C SUB D DIV X STORE X
注意
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
例:计算x=(a×b+c-d) ÷(e+f) 三地址指令: MUL A,B,X ADD X,C,X SUB X,D,X ADD E,F,Y DIV X,Y,X 5条指令,每条指令4次访存,执行此程 序共访存20次。
北京理工大学计算机学院
3.1 指令格式
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
2.寄存器寻址 指令中地址码部分 给出某一通用寄存器的 编号,所指定的寄存器 中存放着操作数。 两个明显的优点: 从寄存器存取数据 比主存快得多; 由于寄存器的数量 较少,其地址码字段比 主存单元地址字段短得 多。
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
3. 指令中地址码的位数 指令格式中每个地址码的位数是与主存 容量和最小寻址单位(即编址单位)有关联 的。主存容量越大,所需的地址码位数就越 长。对于相同容量来说,如果以字节为最小 寻址单位,地址码的位数就需要长些;如果 以字为最小寻址单位(假定字长为16位或更 长),地址码的位数可以减少。设某机主存 容量为220 个字节,机器字长32位。若最小 寻址单位为字节(按字节编址),其地址码 应为20位;若最小寻址单位为字(按字编 址),其地址码只需18位。
200 300
北京理工大学计算机学院来自3.1 指令格式计算机组成原理
5.零地址指令
OP
操作数地址是隐含的。参加运算的操 作数放在堆栈中,运算结果也放在堆栈中。 有关堆栈的概念将在稍后讨论。
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
指令中地址个数的选取要考虑诸多的 因素。从缩短程序长度,用户使用方便, 增加操作并行度等方面来看,选用三地址 指令格式较好;从缩短指令长度,减少访 存次数,简化硬件设计等方面来看,一地 址指令格式较好。对于同一个问题,用三 地址指令编写的程序最短,但指令长度最 长,而用二、一、零地址指令来编写程序, 程序的长度一个比一个长,但指令的长度 一个比一个短。
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
1.四地址指令
+ OP 100 A1 200 A2 300 A3 50 400 400 A4 指令
(A1)OP(A2)→A3 A4=下条将要执行 指令的地址
5 + 3 8
100
200 300
5 5
3 3 8
400
北京理工大学计算机学院
下一指令
3.1 指令格式
9条指令,每 条指令2次访存, 执行此程序共访 存9×2=18次
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
3.1.3 指令的操作码 指令系统中的每一条指令都有一个唯 一确定的操作码,指令不同,其操作码的 编码也不同。为了能表示整个指令系统中 的全部指令,指令的操作码字段应当具有 足够的位数。 指令操作码的编码可以分为规整型和 非规整型两类: 规整型(定长编码) 注意 非规整型(变长编码)
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
3.2.2 数据寻址和指令寻址 寻址可以分为数据寻址和指令寻址。 寻找操作数的地址称为数据寻址,数据寻 址方式较多,其最终目的都是寻找所需要 的操作数。寻找下一条将要执行的指令地 址称为指令寻址,指令寻址比较简单,它 又可以细分为顺序寻址和跳跃寻址。
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
3.2.3 基本的数据寻址方式 寻址方式是根据指令中给出的地址码 字段寻找真实操作数地址的方式。 1.立即寻址
指令中的形式地址A───→有效地址EA
OP 立即数
寻址方式
在取指令时,操作码和操作数被同时取 出,不必再次访问存储器,从而提高了指令 的执行速度。但是,因为操作数是指令的一 部分,不能被修改,且立即数的大小将受到 指令长度的限制。
北京理工大学计算机学院
第 3章
计算机组成原理
3.1 指令格式 3.2 寻址技术 3.3 堆栈与堆栈操作 3.4 指令类型 3.5 指令系统的发展
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
寻址,指的是寻找操作数的地址或下 一条将要执行的指令地址。寻址技术包括 编址方式和寻址方式。
2012.10
北京理工大学计算机学院
3.1 指令格式
4 6 6
计算机组成原理
OP
8
S
2
D
6
OP
8
R
8
S X
6
单字长 (16位)
OP
10
OP
13
D
3
OP
16
R
OP 二字长 (32位) 三字长 (48位)
4 6 6 16
OP
4
S
6
D
6
地址
16 16
OP
S
D
地址1
地址2
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
计算机组成原理
2. 编址单位 (1)字编址 编址单位=访问单位 每个编址单位所包含的信息量(二进 制位数)与读或写一次寄存器、主存所获 得的信息量是相同的。早期的大多数机器 都采用这种编址方式。
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
(2)字节编址 字节编址是为了适应非数值计算的需 要。字节编址方式使编址单位与信息的基本 单位(一个字节)相一致,这是它的最大优 点。然而,如果主存的访问单位也是一个字 节的话,那么主存的频带就太窄了。 编址单位<访问单位 通常主存的访问单位是编址单位的若 干倍。 (3)位编址 也有部分计算机系统采用位编址方式。
北京理工大学计算机学院
第 3章
计算机组成原理
软件 裸机
指令系统
北京理工大学计算机学院
第 3章
计算机组成原理
3.1 指令格式 3.2 寻址技术 3.3 堆栈与堆栈操作 3.4 指令类型 3.5 指令系统的发展
北京理工大学计算机学院
3.1 指令格式
计算机组成原理
3.1.1 机器指令的基本格式 一条指令就是机器语言的一个语句, 它是一组有意义的二进制代码。指令的基 本格式如下:
北京理工大学计算机学院
3.2 寻址技术
计算机组成原理
3.2.1 编址方式 1. 编址 通常,指令中的地址码字段将指出操作 数的来源和去向,而操作数则存放在相应 的存储设备中。在计算机中需要编址的设 备主要有 CPU 中的通用寄存器、主存储器 和输入输出设备等3种。