第三章 指令系统

合集下载

第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指出下列每条指令源操作数的寻址方式和功能。

指令系统总结及课后题

指令系统总结及课后题
变址寻址
程序存储器(@A+PC,@A+DPTR)
相对寻址
程序存储器256B范围(PC+偏移量)
位寻址
片内RAM的20H-2FH字节地址、部分SFR
寻址方式中常用的符号注释
Rn(n=0~7):当前选中的工作寄存器组R0~R7。 Ri(I=0,1):作为地址指针的两个工作寄存器R0,R1。 #data:8位立即数。 #data16:16位立即数。 direct:8位片内RAM单元(包括SFR)的直接地址。 addr11:11位目的地址,用于ACALL和AJMP指令中。 addr16:16位目的地址。用于LCALL和LJMP指令中。 rel:补码表示的8位地址偏移量。范围:-128~+127D。 bit:片内RAM或SFR的直接寻址位地址。 @:间接寄存器的符号。 /:位操作指令中对该位先取反再参与操作,不影响原值。 (×):×中的内容。 ((×)):×指出的地址单元中的内容。 →:指令操作流程方向。
B ACC PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMD TCON PCON DPH DPL SP P0
10、如何访问SFR,可采用那些寻址方式? 答:用直接寻址,位寻址,寄存器寻址 11、如何访问片外RAM,可使用那些寻址方式? 答:只能采用寄存器间接寻址(用MOVX指令) 12、如何访问片内RAM,可使用那些寻址方式? 答:低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7) 高128字节:直接寻址,位寻址,寄存器寻址 13、如何访问片内外程序存储器,可使用那些寻址方式? 答:采用变址寻址(用MOVC指令) 14、说明十进制调整的原因和方法? 答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H) 15、说明8951布尔机处理机功能? 答:用来进行位操作

第三章 MCS--51指令系统

第三章 MCS--51指令系统

(3) 该指令使CY、OV清0。
如除数为0,则A为不定值,OV=1
第五节 逻辑运算指令 一、对A的操作 CLR A;A清0 CPL A;A取反 移位指令 RL A RLC A RR A RRC A
或 MOV R1,#20H MOV @R1, #3AH
MOV DPTR, #3020H
例3 将30H与20H内容互换
MOV A, 30H MOV 30H, 20H MOV 20H, A
(1)MOV 00H,#0FFH 或(1)MOV R0,#00H MOV @R0, #0FFH 或(1)MOV PSW, #00H MOV R0, #0FFH
INC Rn
INC direct INC @Ri
INC DPTR
例17 编程将存放在31H~33H中的数相加,其和放入30H单元 (设和不超过8位)。 MOV R0,#31H MOV A, @R0 INC R0 ADD A, @R0 INC R0 ADD A, @R0 MOV 30H, A MOV R0, #31H MOV R7, #03H MOV A, #00H LOOP:ADD A, @R0 INC R0 DJNZ R7, LOOP MOV 30H, A
第三章MCS-51单片机指令系统
基本要求: 熟记MCS-51的主要指令及简单程序的编程方法。 难点及处理: MCS-51的111条指令比较枯燥 ,需要记忆,可 多读一些例题并动手编一编。
第一节 指令及其表示方式
一、指令的基本概念 指令--让计算机做某操作所发命令
指令系统-- 一台计算机所有指令的集合。 MCS-51单片机共111条指令,分为五大类
四、堆栈操作指令 入栈:PUSH direct 出栈:POP direct

计算机原理指令系统

计算机原理指令系统

I/O端口寻址
二. I/O端口寻址
操作数在I/O端口中时,必须通过累加器(AX或AL)实现对端口的访问 1. 直接端口寻址 — 指令直接提供8位端口的地址 例:IN AL, 63H ;AL(63H) 端口寻址时,地址不加[ ],当端口地址可用一个字节来表示时,可使用 直接端口寻址 2. 间接端口寻址 — 由DX寄存器给出16位端口地址
例:MOV AX, [BX+1000H] ;AX BX+1000H 所指向的存储单元 内容
若BX = 2000H,则将数据段(3000H, 3001H)的内容传送给AX
指令也可书写为: MOV AX, 1000H[BX]
7. 基址变址寻址
操作数的有效地址由基址寄存器和变址寄存器的内容相加产生
例:MOV
8086指令介绍
第3.3节 8086指令介绍
8086 CPU共有133条指令,根据操作性质,可分为: ➢ 传输指令 ➢ 算术运算指令 ➢ 逻辑运算和移位指令 ➢ 串操作指令 ➢ 控制转移指令
※ 操作数的符号表示 ✓ DST:目的操作数 ✓ SRC:源操作数 ✓ TARGET:循环、转移和调用指令中的目的操作数
CPU内部操作数寻址
一. 数据寻址方式
1. 立即数寻址
指令中直接给出操作数,指令执行时可以立即得到,此时 把操作数又称作“立即数”
例:MOV AL,5 ;AL5
2. 寄存器寻址
操作数放在CPU内部的寄存器中,在指令中直接指出寄存 器的名字
例:INC CX ;将CX的内容加1
3. 隐含寻址
指令已经默认是对CPU中的某个寄存器操作
PUSH 1000 错误
➢ 操作:DST (SP+1, SP),SP SP+2

第三章MCS51的指令系统

第三章MCS51的指令系统

3.4.1 MCS-51数据传送指令
[1]. 以累加器A为目的操作数类指令(4条) 这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、
立即数、寄存器和寄存器间接寻址方式:
MOV A,direct
(direct)→(A)直接单元30H
MOV A,0A2H
§3.1 概述
7种寻址方式,111条指令
指令所占用空 间(字节数)
指令执行周期 (运算速度)
单字节指令:49条 双字节指令:45条 三字节指令:17条
单周期指令:64条 双周期指令:45条 四周期指令:2 条
试问
1 如果一条指令执行时间为3个机器周 期,那么需要经历多少个时钟周期?
2 如果一条指令执行时使用了2us,而 晶振使用的是12MHz,请问执行这条指 令需要多少个机器周期?
(A)+((Ri))+(C)→(A) 累加器A中的内容与工作寄存 器Ri指向地址单元中的内容、连同进位位相加,结果存在A中
3.4.2 MCS-51算术运算指令
[3]. 带借位减法指令(4条)
这组指令包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位 位C内容相减,结果送回累加器A中。
3.4.1 MCS-51数据传送指令
[2]. 以寄存器Rn为目的操作数的指令(3条)
这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器 Rn中。有直接、立即和寄存器寻址方式:
MOV Rn, direct (data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中 MOV R4,37H
**补充知识
MCS51系列单片机为复杂指令单片机CISC。目前单片机大 量使用的是精简指令集RISC结构单片机.

第三章MCS-51指令系统

第三章MCS-51指令系统
第三章 MCS-51单片机指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。

第3章(指令系统1)

第3章(指令系统1)

0000 0100 + 0000 1011 0000 1111
带:( +4 ) + ( +11 ) = +15 OF = 0 无:4 + 11 = 15 CF = 0 带符号数和无符号数都不溢出
0000 0111 + 1111 1011 0000 0010
带:( +7 ) + ( -5 ) = +2 无:7 + 251 = 2 无符号数溢出
短格式: OUT DX , AL (字节) OUT DX , AX (字) 执行操作: ( ( DX ) ) ( AL ) (字节) ( ( DX ) + 1 , ( DX ) ) ( AX ) (字) 注意: * 不影响标志位 * 前256个端口号 00H ~ FFH 可直接在指令中指定(长格式) * 如果端口号 256,端口号 DX(短格式)
40 H 00 H 00 H 30 H
MOV BX , OFFSET TABLE LEA BX , TABLE LDS BX , TABLE
LES BX , TABLE
例: LEA BX , [ BX + SI + 0F62H ] LDS SI , [ 10H ] LES DI , [ BX ] 注意: * 不影响标志位 * REG 不能是段寄存器 * SRC 必须为存储器寻址方式
POP BX 执行后
( BX ) = 2107H
汇编 语言
进栈指令push和出栈指令pop的用法:
例: PUSH DS SUB AX , AX PUSH AX …… …… RET 例: PUSH PUSH PUSH …… POP POP POP
汇编 语言

第三章基本指令系统

第三章基本指令系统

注:该指令用在多字节加法运算中。
28
例:两个4字节无符号数相加,两数分别在2000H、3000H开 始的内存单元,和放在2000H开始的4个内容单元。
MOV SI, 2000H MOV AX, [SI] MOV DI, 3000H ADD AX, [DI] MOV [SI], AX MOV AX, [SI+2] ADC AX, [DI+2] MOV [SI+2], AX ;SI指向一加数首址 2000H ;AX 8423H ;DI指向另一加数首址 ;AX 8423H+7F00H ;低16位和送[2000H][2001H] ;AX 1000H 3000H ;AX 1000H+2000H+CF ;高16位和送[2002H][2003H]
4)DST、SRC长度要一致。
MOV AL, BX ()
5) DST 不能是立即数 MOV 1000H, AX () 6)DST、SRC 不能同时为存储器寻址 MOV [1000H], [3000H] () 7)MOV指令不破坏源操作数
6
一、通用传送指令——XCHG
2、XCHG 格式:XCHG OPR1, OPR2 ; OPR1 OPR2 功能:两操作数内容相交换。 例: XCHG BL, AL ;两寄存器内容交换(字节交换)
第三章基本指令系统指令系统8086指令系统什么是指令系统cpu指令系统mcs51指令系统指令系统层指令系统的作用微处理器的指令系统指令系统就是指令吗
第三章 8086CPU基本指令系统
3.1 数据传送指令 3.2 算术运算指令
3.3 十进制调整指令
3.4 逻辑运算指令和移位指令 3.5 处理器控制指令
27
一、加法指令——ADC

第3章80888086指令系统(老师用的课件哦)

第3章80888086指令系统(老师用的课件哦)

第3章 8088/8086指令系统
图3.5 变址寻址示意图
第3章 8088/8086指令系统
例:MOV AX,200AH[SI];或(AX)←
[(DS)*16+(SI)+200AH
EA=(SI)
+200AH,SI为变址寄存器,200AH为16位的位移量。
图3.6为用BP寄存器进行变址寻址时的示意图。
第3章 8088/8086指令系统
3.存储器操作数 存储器操作数是把操作数放在存储器单元中。对这 类操作数,在指令中必须给出存储器的地址。存储器 的实际地址(也称物理地址)是由指定的段基址和段内地 址偏移量(也称为有效地址EA)所决定的。由于段基址 相对很少改变,故一般预先予以指定,以后通过隐含 方法使用,即只要段基址未改变,其在汇编指令中便 不再出现。此时,只给出有效地址EA(以各种寻址方式 给出)。
第3章 8088/8086指令系统
3.2 8088/8086指令系统
3.2.1 数据传送指令 1 .数据传送指令MOV 指令格式:MOV OPRD1,OPRD2 MOV 为操作码。 OPRD1为目的操作数,可以是寄存器、存储器、
累加器。
第3章 8088/8086指令系统
OPRD2为源操作数,可以是寄存器、存储器、累 加器和立即数。
第3章 8088/8086指令系统
4.寄存器间接寻址
寄存器间接寻址的操作数类型为存储器操作数,与 直接寻址方式的区别是:该存储单元的16位段内偏移 地址,不是从指令代码中直接得到,而是从指令所指 定的寄存器中得到。能用于间接寻址的寄存器为SI、 DI、BX、BP。若以SI、DI、BX进行间接寻址,应由 数据段DS的内容作为段基址,间接寻址寄存器的内容 为段内偏移量,并指定形成操作数的物理地址。若以 寄存器BP间接寻址,则BP中的内容为段内偏移量,段寄 存器SS与之一起形成物理地址。寄存器间接寻址示意 图如图3.4所示。

计算机原理 指令系统

计算机原理 指令系统

第三章指令系统第一节指令基本格式及寻址方式一、指令及指令系统的概念1.指令指令是计算机硬件能够直接识别和执行的命令。

指令是计算机微操作的组合。

能够完成一定处理任务的指令序列就是计算机程序。

区别:计算机运行所需的指令及相关文档的集合称为软件。

2.指令系统一台计算机所能执行的所有指令的全体集合称为指令系统。

反而言之,不同计算机有不同的指令系统。

强调:指令系统属于计算机硬件范畴。

一个完整的指令系统应满足下面几个要求:(1)完备性:指用汇编语言编制各种程序时指令系统提供的指令足够用。

(2)有效性:指令尽其所能可能短,以便程序所占存储空间小、执行速度快。

(3)规整性:指令的长度是字节的整数倍。

对称性:所有寄存器和存储单元可以同等对待,指令可以使用各种寻址方式。

匀齐性:指令可以支持各种数据结构,编程时无需考虑数据类型。

一致性:指令的长度与数据的长度有一定的关系,以方便存取和处理。

(4)兼容性:在不同机器上能够不作修改地运行。

二、指令格式及分类1.指令格式指令包括操作码和地址码(操作数)。

操作码:表明该条指令操作的性质和功能。

地址码:表明参加操作的操作数地址和结果地址。

指令长度:是操作码的长度与地址码的长度之和。

指令的长度与字长没有固定关系,但一定是字节的整数倍。

操作码的长度,决定指令的种类(条数)。

地址码的长度,决定了指令的寻址空间(所能访问的最大存储空间)。

2.指令格式的分类根据指令中给出的操作数的个数可以将指令分为:零地址指令、一地址指令、二地址指令、三地址指令、多地址指令。

一条指令可以没有地址码,但必须要有操作码。

( )零地址指令中没有一个操作数地址,如停机指令(HALT)、空操作指令(NOP)。

三、寻址方式寻址方式包括:指令的寻址:确定本条指令的地址和下一条要执行指令的地址的方法。

(顺序寻址方式PC(程序计数器、指令指针寄存器)和跳跃寻址方式)操作数的寻址:找到操作数的方法。

操作数寻址方式有:1.立即数寻址:指令中直接给出操作数,通常用于给寄存器设置初始值,操作数在指令中,特点是寻址速度最快,缺点是灵活性最差。

  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中
相关文档
最新文档