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

▲按给出偏移地址方式的不同,分为以下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章 指令系统和寻址方式

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指令系统

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 直接寻址方式
代 码 段
. . . ×× ×× . . . 数 据 段
请注意:使用基址—变址方式时,不允许将两个基址寄存器或两个变址寄存器组合
计算机原理指令系统

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的指令系统

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结构单片机.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章指令系统
4、寄存器间接寻址 操作数的有效地址EA在寄存器中,指令中指明寄存器名称。寄存器可以是下
列几个中的Leabharlann 个: BX、BP、SI、DI如果指令中指定的寄存器是BX,SI,DI,则操作数在数据段中,段地址由DS 提供。
如果指令中指定BP寄存器,则操作数在推栈段中,段地址在SS中。 【例】MOV AX, [SI]
如果指令执行前DS=8000H,(82500H)=02, (82501H)=03 , 则指令执行后AX=0302H
第三章指令系统
通常指令中不出现DS段寄存器名称,这种情况叫做默认段寄存器(或叫缺省 段寄存器)。但是也允许段超越,即允许操作数在代码段或堆栈段或附加段中, 只是必须在指令中指明。 【例】MOV AX, SS:[2500H]
第三章指令系统
在后面要用到下列表示方法: ◆DS=1000H ,表示DS寄存器的内容为1000H。 ◆(2300H)=8CH ,表示物理地址为2300H的内存单元的内容为8CH 。 ◆AX <--5000H 表示数值5000H传到AX寄存器中 ◆AX <--(8000H),表示物理地址为8000H的内存字单元的内容传到AX中。 ◆(8000H) <--AX,表示AX的内容传到物理地址为8000H的内存字单元中。
数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH之一。在这种寻址方 式中,寄存器可以用作源操作数,也可以存放目的操作数。 【例】MOV AX,BP
指令的执行:AX<---BP 如果指令执行前,AX=3664H,BP=2758H,则指令执行后 AX=2758H,BP保 持不变。 【例】MOV CH,BL 指令的执行:CH<---BL 如果指令执行前,CH=64H,BL=58H,则指令执行后 CH=58H,BL保持不变。 立即寻址和寄存器寻址指令,执行速度最快,后面要讲到的存储器寻址指令 执行速度较慢。
◆AX <--(DS:5000H),表示逻辑地址为DS:5000H的内存字单元的内容传 到AX中。DS内容为段地址,5000H为偏移量) ◆AL<--(DS:BX),表示逻辑地址为DS:BX的内存单元的内容传到AL中。 ◆AL<--(DS:BX+5),表示逻辑地址为DS:BX+5的内存单元的内容传到 AL中。
8086 机器指令代码由操作码和操作数代码两部分组成。 直接用机器指令编写程序是一件十分困难的事。通常是用汇编 语言编写程序,输入计算机后,由汇编程序将它翻译成机器语言程 序,计算机才能执行。因此这里对8086机器语言格式不作更多的叙 述。本课程主要介绍汇编语言格式的8086计算机指令。
第三章指令系统
指令的执行:AL<--42H 42H为8位立即数,它是指令的一个组成部分。 指令执行后,AL=42H。 【例】MOV DX,2345H ; 指令的执行:DX<--2345H 2345H为16位立即数,它是指令的一个组成部分。 指令执行后,DX=2345H。
第三章指令系统
2、寄存器寻址方式 寄存器寻址方式即操作数在寄存器中,指令中指明寄存器名称;对于8位操作
指令的执行:AX<--(DS:SI) 若初始条件为DS=2000H,SI=1000H,则该指令源操作数的物理地址为: 2000H×10H+1000H=21000H
第三章指令系统
指令中也可以不使用缺省的段寄存器,而另指定其它的段寄存 器,这就是段超越。指令指令中写眀段超越前缀从而指定其它的段 寄存器。如指令: MOV AX, ES:[BX]
指令的执行:AX<--(SS:2500H) 该指令将SS指明的堆栈段中偏移量为2500H的字单元的内容送到AX中。 直接寻址方式中,存储器操作数的有效地址常常用已经定义的变量名表示,此 时指令中可不写括号。 【例】MOV BH,ARRY 指令的执行:BH<--(DS:ARRY) 指令中ARRY是已经定义的变量名。如果ARRY表示有效地址为3000H的字节 变量,则指令执行后,数据段中偏移量为3000H的字节单元的内容送到BH中。
3.1 8086 指令的寻址方式
一条指令主要包括两方面内容:一是指令进行什么操作,这由 指令操作符表明。二是操作涉及的操作数存放在什么地方,操作的 结果存放在什么地方(有些指令不涉及操作数)。
8086指令涉及的操作数的存放地点可分为4类:
◆操作数直接存放在指令中,即指令本身就含有操作数。
◆操作数在寄存器中,指令中指眀寄存器的名称。
第三章指令系统
3、直接寻址方式 直接寻址方式中,操作数一般在内存数据段中,而操作数的有效
地址直接包含在指令中。 操作数的物理地址是由数据段寄存器DS 的值乘以16再加上这16位的有效地址得到。 【例】MOV AX, [2500H]
指令的执行:AX<--(DS:2500H) 该指令默认DS中为数据段的段地址,指令括号指明的偏移量为 2500H,从而可计算出字单元的物理地址,指令执行把该单元内容 送到AX中。
第三章 8086 指令系统
每种计算机都有一组指令集提供给用户使用,这组指令集称为 该计算机的指令系统。8086微处理器的指令系统具有8位和16位的 处理能力。80386、80486等CPU具有32位处理能力。本课程只讲 8086指令系统。
CPU只能执行二进制代码形式的机器指令,8086机器指令是变字 节指令,一条指令一般由1~6个字节组成(加上前缀字节,最长的 可为7字节指令)。
◆操作数在内存单元中,指令中指明内存单元的地址。
当操作数在内存单元中,寻址所需的偏移地址又叫有效地址,用 EA表示,它是一个16位的无符号数。
◆ 数据存放在I/O端口中,指令中指明I/O端口的地址。
寻址方式就是指令中用于说明操作数所在地址的方法。8086可采 用许多不同的方法来说明操作数所在的地址。
第三章指令系统
寻址方式可分为数据的寻址方式和转移地址的寻址方式两种。 3.1.1 数据的寻址方式
1、立即寻址方式 立即寻址方式即操作数直接存放在指令中,紧跟在操作码以后,作为指令的
一部分存放在代码段区域中。这种操作数称为立即数。它只能用于源操作数字段, 不能用于目的操作数字段. 【例】MOV AL,42H
4、寄存器间接寻址 操作数的有效地址EA在寄存器中,指令中指明寄存器名称。寄存器可以是下
列几个中的Leabharlann 个: BX、BP、SI、DI如果指令中指定的寄存器是BX,SI,DI,则操作数在数据段中,段地址由DS 提供。
如果指令中指定BP寄存器,则操作数在推栈段中,段地址在SS中。 【例】MOV AX, [SI]
如果指令执行前DS=8000H,(82500H)=02, (82501H)=03 , 则指令执行后AX=0302H
第三章指令系统
通常指令中不出现DS段寄存器名称,这种情况叫做默认段寄存器(或叫缺省 段寄存器)。但是也允许段超越,即允许操作数在代码段或堆栈段或附加段中, 只是必须在指令中指明。 【例】MOV AX, SS:[2500H]
第三章指令系统
在后面要用到下列表示方法: ◆DS=1000H ,表示DS寄存器的内容为1000H。 ◆(2300H)=8CH ,表示物理地址为2300H的内存单元的内容为8CH 。 ◆AX <--5000H 表示数值5000H传到AX寄存器中 ◆AX <--(8000H),表示物理地址为8000H的内存字单元的内容传到AX中。 ◆(8000H) <--AX,表示AX的内容传到物理地址为8000H的内存字单元中。
数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH之一。在这种寻址方 式中,寄存器可以用作源操作数,也可以存放目的操作数。 【例】MOV AX,BP
指令的执行:AX<---BP 如果指令执行前,AX=3664H,BP=2758H,则指令执行后 AX=2758H,BP保 持不变。 【例】MOV CH,BL 指令的执行:CH<---BL 如果指令执行前,CH=64H,BL=58H,则指令执行后 CH=58H,BL保持不变。 立即寻址和寄存器寻址指令,执行速度最快,后面要讲到的存储器寻址指令 执行速度较慢。
◆AX <--(DS:5000H),表示逻辑地址为DS:5000H的内存字单元的内容传 到AX中。DS内容为段地址,5000H为偏移量) ◆AL<--(DS:BX),表示逻辑地址为DS:BX的内存单元的内容传到AL中。 ◆AL<--(DS:BX+5),表示逻辑地址为DS:BX+5的内存单元的内容传到 AL中。
8086 机器指令代码由操作码和操作数代码两部分组成。 直接用机器指令编写程序是一件十分困难的事。通常是用汇编 语言编写程序,输入计算机后,由汇编程序将它翻译成机器语言程 序,计算机才能执行。因此这里对8086机器语言格式不作更多的叙 述。本课程主要介绍汇编语言格式的8086计算机指令。
第三章指令系统
指令的执行:AL<--42H 42H为8位立即数,它是指令的一个组成部分。 指令执行后,AL=42H。 【例】MOV DX,2345H ; 指令的执行:DX<--2345H 2345H为16位立即数,它是指令的一个组成部分。 指令执行后,DX=2345H。
第三章指令系统
2、寄存器寻址方式 寄存器寻址方式即操作数在寄存器中,指令中指明寄存器名称;对于8位操作
指令的执行:AX<--(DS:SI) 若初始条件为DS=2000H,SI=1000H,则该指令源操作数的物理地址为: 2000H×10H+1000H=21000H
第三章指令系统
指令中也可以不使用缺省的段寄存器,而另指定其它的段寄存 器,这就是段超越。指令指令中写眀段超越前缀从而指定其它的段 寄存器。如指令: MOV AX, ES:[BX]
指令的执行:AX<--(SS:2500H) 该指令将SS指明的堆栈段中偏移量为2500H的字单元的内容送到AX中。 直接寻址方式中,存储器操作数的有效地址常常用已经定义的变量名表示,此 时指令中可不写括号。 【例】MOV BH,ARRY 指令的执行:BH<--(DS:ARRY) 指令中ARRY是已经定义的变量名。如果ARRY表示有效地址为3000H的字节 变量,则指令执行后,数据段中偏移量为3000H的字节单元的内容送到BH中。
3.1 8086 指令的寻址方式
一条指令主要包括两方面内容:一是指令进行什么操作,这由 指令操作符表明。二是操作涉及的操作数存放在什么地方,操作的 结果存放在什么地方(有些指令不涉及操作数)。
8086指令涉及的操作数的存放地点可分为4类:
◆操作数直接存放在指令中,即指令本身就含有操作数。
◆操作数在寄存器中,指令中指眀寄存器的名称。
第三章指令系统
3、直接寻址方式 直接寻址方式中,操作数一般在内存数据段中,而操作数的有效
地址直接包含在指令中。 操作数的物理地址是由数据段寄存器DS 的值乘以16再加上这16位的有效地址得到。 【例】MOV AX, [2500H]
指令的执行:AX<--(DS:2500H) 该指令默认DS中为数据段的段地址,指令括号指明的偏移量为 2500H,从而可计算出字单元的物理地址,指令执行把该单元内容 送到AX中。
第三章 8086 指令系统
每种计算机都有一组指令集提供给用户使用,这组指令集称为 该计算机的指令系统。8086微处理器的指令系统具有8位和16位的 处理能力。80386、80486等CPU具有32位处理能力。本课程只讲 8086指令系统。
CPU只能执行二进制代码形式的机器指令,8086机器指令是变字 节指令,一条指令一般由1~6个字节组成(加上前缀字节,最长的 可为7字节指令)。
◆操作数在内存单元中,指令中指明内存单元的地址。
当操作数在内存单元中,寻址所需的偏移地址又叫有效地址,用 EA表示,它是一个16位的无符号数。
◆ 数据存放在I/O端口中,指令中指明I/O端口的地址。
寻址方式就是指令中用于说明操作数所在地址的方法。8086可采 用许多不同的方法来说明操作数所在的地址。
第三章指令系统
寻址方式可分为数据的寻址方式和转移地址的寻址方式两种。 3.1.1 数据的寻址方式
1、立即寻址方式 立即寻址方式即操作数直接存放在指令中,紧跟在操作码以后,作为指令的
一部分存放在代码段区域中。这种操作数称为立即数。它只能用于源操作数字段, 不能用于目的操作数字段. 【例】MOV AL,42H