第三章 指令系统

合集下载

第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空间。

第3章 8086指令系统-汇编语言程序设计教程-陆遥-清华大学出版社

第3章  8086指令系统-汇编语言程序设计教程-陆遥-清华大学出版社

直接寻址方式可以利用变量名的偏移地址属性来 描述操作数的偏移地址(可直接用变量名,或将 变量名置于方括号[ ]中),段寄存器默认为DS。 如果实际使用的段寄存器不是DS,则必须用段 前缀明确指出。
【例3.7】设数据段内有如下变量定义语句
VAR DB 76H,5CH,0A3H,08H
分析以下指令的执行结果。
3.1 指令系统基本概念
指令是给计算机下达的一个简单操作任务,CPU 所能执行的所有指令构成了一个计算机的指令系 统(也称指令集)。
汇编语言指令是对机器指令的符号化表示,采用 助记符来表示指令的操作功能和操作对象。
指令通常可以分为以下几类:
⑴ 数据传送类指令。 ⑵ 算术运算类指令。
⑸ 程序控制类指令。 ⑹ 处理器控制类指令。
【例3.3】要求将数据68传送给AL寄存器,写出相应的传 送指令。 分析:由于AL寄存器接收数据,所以目的操作数为AL, 采用寄存器寻址方式,而源操作数为常数68,采用立即寻 址方式
MOV AL,68 ;AL←68
【例3.4】设被加数存于寄存器DX中,加数为512,写出相 应的加法指令。 分析:因为被加数由寄存器DX提供,所以DX为目的操作 数,采用寄存器寻址方式,而加数为常数512,采用立即 寻址方式
操作数。
2. ADD指令
指令格式:ADD DST,SRC 指令功能:DST←(DST)+(SRC) 。执行加法运算。 操作数特点:两个操作数。被加数DST为目的操作数,加
数SRC为源操作数。
3. NOT指令
指令格式:NOT OPR 指令功能:OPR←(OPR) 。执行逻辑非运算。 操作数特点:一个操作数。OPR既是目的操作数,也是源
段地址由段寄存器提供,用段前缀(DS:,ES:, CS:或SS:)来指明;偏移地址(亦称有效地址) 则有多种表示形式,由此形成了不同的存储器寻 址方式。

第三章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条)

微机原理第3章-指令系统

微机原理第3章-指令系统

▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB


PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:

汇编语言第3章 指令系统和寻址方式

汇编语言第3章 指令系统和寻址方式

5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)

第三章 8086 8088指令系统

第三章 8086 8088指令系统

SI 1200
+)
6000 0 1200 61200 AX 33 44
61200H 61201H
存储器 . . . 44H 33H 数 据 段
. . .
图 3-5 寄存器间接寻址示意图
3.2.5 寄存器相对寻址
寄存器相对寻址——操作数在存储器中。由指令指定的地址寄存器的内容加上指令中
给出的一个8位或16位的地址位移量,即可得操作数的偏移地址。
SI AX AX AX AX AX
3.2.8隐含寻址
隐含寻址—— 操作数隐含在操作码中,在有些指令的操作数中,不仅包含了操作的性质,
还隐含了部分操作数的地址。如乘法指令 MUL,在这条指令中只须指明乘数的地址,而被乘数 已经乘积的地址是隐含且固定的。这种将一个操作数隐含在指令码中的寻址方式就称为隐含
立即数操作数: 所谓立即数指具有固定数值的操作数,不因指令的执行而发生变化 。立即数操作 数只能用作源操作数,而不能用作目标操作数。

寄存器操作数:
8086CPU的8个通用寄存器和4个段寄存器可以作为指令中的寄存器操作数,寄存
器操作数在指令中既可以作为源操作数,也可以用作目标操作数。 存储器操作数: 参加运算的数据是存放在内存中。
两单元的内容送到AX中。假设DS=2000H,则所寻找的操作数的物理地址为: 2000H×10H+3102H = 23102H, 指令的执行情况如图3-3所示
存储器 . . .
MOV操作码
02H 31H AH AL 23102H 23103H
图 3-3 直接寻址方式
代 码 段
. . . ×× ×× . . . 数 据 段
请注意:使用基址—变址方式时,不允许将两个基址寄存器或两个变址寄存器组合

第3章答案指令系统1-40..

第3章答案指令系统1-40..

第3章指令系统1,简述下列基本概念:指令,指令系统,机器语言,汇编语言,高级语言。

1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2,什么是计算机的指令和指令系统?2、见第1题。

3,简述89C51汇编指令格式。

3、操作码[目的操作数] [,源操作数]4,简述89C51寻址方式和所能涉及的寻址空间。

5,要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6,在89C51片内RAM中,已知(30H)=38H, (38H)=40H, (40H)=48H, (48H)=90H, 请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。

6、MOV A,40H ;直接寻址(40H)→AMOV R0,A ;寄存器寻址(A)→R0MOV P1,#0F0H ;立即数寻址0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址(R0 )→P0MOV 18H,#30H ;立即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址((R0)) →AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元7,对89C51片内RAM的高128字节的地址空间寻址要注意什么7、用直接寻址,位寻址,寄存器寻址8,指出下列指令的本质区别。

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

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

第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 出栈指令 POP OPRD 与PUSH过程相反。
3. 交换指令 XCHG OPRD1, OPRD2 ; B/W OPRD1, OPRD2可以是CPU内部REG,也可以是
内存单元,但不能同时为两个内存单元。
26
二、累加器专用传送指令
1. 输入/输出指令IN,OUT IN AL/AX, port IN AL/AX, DX OUT port, AL/AX OUT DX, AL/AX
33
二、减法指令(续)
5. 比较指令 CMP OPRD1, OPRD2; OPRD1-OPRD2 不送回相减的结果,只影响标志位。
♥ 当两数x,y为无符号数比较时,判断大小用CF标志: 若x-y,CF=0,x>y; 若x-y,CF=1,x<y。
♥ 若两数x,y为带符号数比较大小时,用OF与SF判断大小: 若x-y后,SF=1,OF=1,则x>y; SF=0,OF=0,则x>y; 即若SF OF=0,则x>y。 若x-y后,SF=1,OF=0或SF=0,OF=1,即:SFOF=1 则x<y。
3. PUSHF 将FR压入堆栈。
4. POPF 将堆栈顶内容弹出给FR。
PF
CF
30
第三节 算术运算指令
31
一、加法指令(ADD,ADC,INC)
1. 不带进位CF的加法指令 ADD OPRD1, OPRD2; OPRD1←OPRD1+OPRD2
2. 带进位的加法指令 ADC OPRD1, OPRD2; OPRD1←OPRD1+OPRD2+CF ADD与ADC影响标志位SZAPCO(六个) 例如58+79=D1 SZAPCO=101101B
若DS=1200H, 则操作数地址为12000H和12001H。
(允许段超越)
15
DS左移4位 : 12000H + 16位偏移量: 1200H
13200H
低地址 Memory
高地址 操作码

00H

12H

AX AH AL
13200H
78H
13201H
9AH
数 据 段
图3.5 直接寻址示意图
16

AX AH AL
17200H
78H
17201H
9AH
数 据 段
图3.6 变址寻址示意图
18
二、寻址方式(续)
6. 基址加变址寻址方式 通常把BX和BP作基址REG,SI与DI做变址REG,把这两
种寻址结合起来形成一种新的寻址方式。 即BX或BP加上SI或DI再加上8(or16)位偏移量,四个量
相加。 例如:MOV AX, [BX+SI+1030H]或MOV AX, 1030[BX][SI]
二、寻址方式(续)
5. 变址寻址
以指定的REG内容,加上指令中给定的8位(或16位)偏
移量(必须要一个段REG作基址),作为操作数之地址。
作为变址寻址的REG是SI、DI、BX、BP中任一个。
(三个内容相加→地址)
例如:MOV AX, [DI+60]
或MOV AX, 60[DI];
MOV BX, [SI+1000H] 或MOV BX, 1000H[SI]
2
第一节 指令格式与寻址 方式
3
有关的基本概念
微机工作过程中其内部信息有两类: 一类是控制信息(指令); 一类是被加工处理的信息(数据)。
• 指令:微机中的控制信息就是使计算机进行某种 操作的命令,这些命令就称为指令。
• 指令系统:一台计算机所能执行的全部指令的集 合称为指令系统。不同的计算机其指令系统是不 同的。
3. 寄存器间接寻址 操作数是在存储器中,而不在REG中,操作数地
址的16位偏移量是在REG中(即SI,DI,BP,BX 之一中)。分以下两种情况:
① 若以SI、DI、BX间址,操作数在现行数据段 区域中,操作数地址为DS左移4位加上SI、DI、 BX中之一的内容。 例如:DS=2000H,SIAH AL
低地址
Memory
高地址
操作码

34H

12H

图3.1 立即寻址示意图
8
二、寻址方式(续)
2. 寄存器寻址 操作数放在CPU内部的REG中,如AX,BX,CX, DX等。 例如:MOV CX, AX;CX←AX.
CX
AX
图3.2 寄存器寻址示意图
9
二、寻址方式(续)
例如:有两个I/O端口分别为:80H和120H, 如何读/写这两个端口?
读80H口: IN AL,80H; 写80H口:OUT 80H,AL 读120H口:MOV DX, 120H; IN AL, DX 写120H口: MOV DX, 120H; OUT DX, AL
27
二、累加器专用传送指令
第三章 指令系统
1
本章内容提要
本章主要介绍: • 微机系统的指令格式及其常用的寻址方式、指令
类型 • 8086指令系统
*数据传送类指令 *算术运算类指令 *逻辑运算指令 *字符串操作指令 *程序控制类指令 *CPU控制指令
• 介绍DEBUG调试工具(为练习指令) • X86高性能微处理器新增指令简介(不要求)
操作如下:SP←SP-1 (栈操作都是16位)
[SP] ←OPRDH
SP←SP-1
[SP] ←OPRDL
M
例如 SP=2000H,SS=1000H,AX=1234H
执行PUSH AX, 则堆栈内容与SP如下:
SP=1FFEH
SP→1FFE 34 1FFF 12
SP→2000 ××
25
一、通用数据传送类指令(续)
34
二、减法指令(续)
例如:AL=50H,BL=A0H,判断AL,BL谁大。
执行MOV AX, [BP] 操作数地址为14200H与14201H
约定:若以SI、DI、BX作间址,对应的段寄存器为DS, 若以BP作间址,对应的段寄存器为SS。 允许段超越,即在指令中可以指定其他段寄存器。
13
二、寻址方式(续)
SS左移4位 : 12000H
+
BP : 2200H
14200H
AX AH AL
+ 16位偏移量: 1030H
16530H
低地址 Memory
高地址
操作码

位移量L
30H

位移量H 10H

AX AH AL
16530H
78H
16531H
56H
数 据 段
图3.7 基址加变址寻址示意图
20
第二节 数据传送类指令
21
一、通用数据传送类指令
1. MOV OPRD1, OPRD2; OPRD1← OPRD2 其中OPRD1为目的操作数,可以是存储器操作
执行MOX AX, [SI]—(间址用[ ]) 则操作数地址为21500H与21501H。
10
二、寻址方式(续)
低地址 Memory
DS左移4位 : 20000H
+
SI : 1500H
21500H
高地址
操作码
代 码

AX AH AL

21500H
5AH

21501H
23H

图3.3 寄存器间接寻址示意图
若BX=2100H,SI=1400H,偏移量1030H, DS=1200H, 寻址过程如图3.7。
则操作数地址为12000+2100+1400+1030=16530H与16531H。 正常情况下:由基址REG决定哪个段REG作为地址基准
约定: BX→DS,BP→SS。(允许段超越)
19
DS左移4位 : 12000H SI: 1400H BX: 2100H
低地址 Memory

高地址
操作码
码 段
数 据 段
14200H
78H
堆 栈
14201H
9AH

图3.4 以BP间接寻址示意图
14
二、寻址方式(续)
4. 直接寻址 操作数地址的16位偏移量直接在指令中(存放于
码区),而操作数是在数据区中。(操作数地址为DS 左移4位加上该16位偏移量) 例如:MOV AX, [1200H];1200H为16位地址偏移量
2. 表格查找指令(操作数是隐含的, 操作数地址为基址+索引值)
XLAT;BX为表格起点,AL为索引值; 从[BX+AL]中取一个字节送给AL。
表格地址
BX+0→ BX+1→ BX+2→
内容 XX YY ZZ
BX+AL→ DD
28
三、地址传送指令
1. LEA reg, src ; src代表地址偏移量(16位)
5
一、指令格式
指令一般由两部分组成:操作码与地址码
操作码规定操作的性质(即执行什 么样的操作)
Q
D
地址码提供操作数地址或操作数本身。
还有多地址指令
Q
D1
D2
D3
微机中操作数的来源有以下三处: 1. 操作数就含在指令中(码区中); 2. 操作数在CPU的REG中;
3. 操作数在内存的数据区中。
6
二、寻址方式
10022H 00
3.
LES reg, mem;(DW)
10023H
将上述指令的DS换为ES即可。
20
→DS
29
四、标志传送指令
1. LAHF(Load AH from Flags):将FR中的低8位送到AH中
相关文档
最新文档