3. 寻址方式与指令系统

合集下载

第三章 MCS-51单片机的寻址方式和指令系统

第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址

以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)

第3章 80X86的指令系统和寻址方式

第3章 80X86的指令系统和寻址方式

通用寄存器 ;
(3)变址:其值存放在变址寄存器中。SI、DI 、除ESP外的 32位通用寄存器 ; (4)比例因子:是386及后继机型中新增寻址方式中的术语。 其值可为1、2、4、8。
寻址方式

立即数寻址 寄存器寻址 存储器寻址
直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址
练习
MOV AX, ARRAY[4]
MOV AX, [BX] MOV AX, [BX+2] ;直接寻址,偏移地址= ARRAY+4 ;寄存器间接寻址
;寄存器相对寻址 MOV AX, ARRAY [BX] ;寄存器相对寻址
MOV AX, [BX+SI] MOV AX, [BX+DI+2]
;基址(BX)变址(SI)寻址 ;相对基址变址寻址
;(BX)←1234H ;(AX)←(BX)
4)寄存器间接寻址方式
有效地址包含在基址寄存器或变址寄存器中;
寄存器可以是BX、BP、SI、DI之一。
(1) 以BX、SI、DI进行寄存器间接寻址,隐含的段
寄存器为数据段寄存器DS 。
MOV AX, [BX]

;物理地址=DS×16+BX ;物理地址=DS×16+SI ;物理地址=DS×16+DI
2)立即数(常数)到存储单元的数据传输
例 3.18 MOV MEM_BYTE, 20H ;将立即数20H送到MEM_BYTE存储单元 MOV DS:[0005H], 4500H ;立即数4500H送到DS:0005H的存储单元中
3)立即数到通用寄存器的数据传输 例 3.19 MOV AL, 20H MOV SP, 2000H ;将立即数20H送到AL寄存器 ;将立即数2000H送入SP寄存器

第3章(1) 寻址方式和指令系统

第3章(1) 寻址方式和指令系统

EA的组成不同,寻找其中的操作数的方式也随之不同。如何寻找操作数 的有效地址,进而找到所需操作数的方式就是寻址方式 因为EA的组成方式都体现在指令中,故寻址方式也可以说是在指令中获得 操作数所在地址的方法。
3.1 Pentium的寻址方式
• 指令的两个问题
– 指出进行什么操作 – 涉及的操作数和操作结果放在何处
在这种寻址方式中,操作数是在存储器中,但是,操作 数的地址的16位偏移量包含在以下四个寄存器SI、DI、 BP、BX之一中。这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。 例:MOV AX,[BP]
医药信息工程学院 何永玲
二、操作数存在方式
在微型计算机中,操作数可能以以下四种方式存在:
• 操作数包含在指令中——即指令的操作数场就包含着操作数本身。
MOV AX, 1234 ; ADD AL, 2
• 操作数包含在CPU的某一个内部寄存器中—— 这时指令中的操作数场是
CPU内部 寄存器的一个编码。
MOV DS, AX
• 操 作 数 在 内 存 的 数 据 区 中 —— 这 时 指 令 中 的 操 作 数 场 包 含 着 此 操 作 数 的
医药信息工程学院 何永玲
3.2.2 算术运算指令(1-P88)
– 不带进位位的加法指令ADD
比如: ADD ADD ADD ADD 比如: ADC ADC ADC CX,1000H ;CX=CX+1000h DI,SI [BX+DI],AX EAX,[BX+2000H]
• 无符号数和有符号数采用同一套加法指令及减法 所有算术运算指令均影响状态标志。 指令有两个条件:

微机原理与接口技术:08第3章 寻址方式和指令系统3.3 习题3

微机原理与接口技术:08第3章 寻址方式和指令系统3.3 习题3

交通信息与控制工程系教案(理论教学用)课程名称微机原理与接口技术第 8 次第 4 周 2 学时上课教室WM1310 课程类型专业基础课授课对象自动化专业章节名称第三章寻址方式和指令系统(3.3)教学目的和要求1.掌握8086的基本指令,如逻辑运算和移位指令、串操作指令、程序控制指令等。

讲授主要内容及时间分配1.逻辑运算和移位指令;(35min)2.串操作指令;(20min)3.程序控制指令;(25min)4.处理器控制指令。

(10min)教学重点与难点重点:1.逻辑运算和移位指令的基本功能和格式;2.串操作指令的基本功能和格式;3.程序控制指令的基本功能和格式。

难点:逻辑运算和移位指令的基本功能和格式。

要求掌握知识点和分析方法1.逻辑运算和移位指令的格式、功能及应用方法;2.串操作指令的格式、功能及应用方法;3.程序控制指令的格式、功能及应用方法。

启发与提问1.逻辑移位和算术移位指令的区别?教学手段多媒体+板书作业布置思考题:1.远跳转和近跳转的区别?3.2, 3.53.9, 3.113.12, 3.14主要参考资料备注讲授内容三、逻辑运算和移位类1.逻辑运算逻辑运算指令对操作数的要求大多与MOV指令相同。

逻辑运算是按位操作的,它包括AND(与)、OR (或)、NOT(非)、XOR(异或)和TEST(测试)指令。

除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,AF位无定义,SF、ZF和PF 根据运算结果设置。

“与”运算指令格式:AND OPRD1,OPRD2操作:两操作数相“与”,结果送目标地址。

【例】要屏蔽AL中的高4位。

AND AL,00001111B【例】AND AL,AL此指令执行前后,(AL)无变化,但执行后使标志位发生了变化,即CF=0,OF=0。

“或”运算指令格式:OR OPRD1,OPRD2操作:两操作数相“或”,结果送目标地址【例】(AL)=0FH,OR AL,10000000B(AL)=8FH【例】OR AL,AL指令执行前后,(AL)不变,但执行后标志位发生了变化,即CF=0,OF=0。

第3章指令系统和寻址方式

第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第三章寻址方式
单片机原理及应用
北京化工大学 信息科学与技术学院 郭 青
1
第三章
本章重点
寻址方式
80C51指令系统
指令格式
操作结果及对标志位影响
3.1
111条指令
概述
29 24 24 17
数据传送类指令 数学运算类指令
分类
逻辑运算类指令 控制转移类指令
位操作指令
17
单字节指令 按指令长度分类
双字节指令
三字节指令 12个振荡周期 64
COUNT:PUSH DPH; 保护DPTR内容
PUSH DPL;
MOV DPTR,#TABLE ;赋表首地址给DPTR
MOVC A, @A+DPTR
; POP DPL; 根据A中内容查表 恢复DPTR内容 返回主程序
POP DPH
RET;
ORG 1000H TABLE:DB 00 DB 01 DB 04 DB 09 DB 16 DB 25 DB 36 DB 49 DB 64 DB 81
19
3.3.1 数据传送类指令
按操作方式,分为三种: 数据传送 数据交换 栈操作
一、普通传送类指令 格式: MOV (目的操作数),(源操作数) 操作码助记符 操作: 将源操作数单元内容,传送到目的操作数 单元中,源操作数内容不变。不影响标志 位Cy,AC和OV。
操作数的组合关系
1、立即数的传送 MOV A, #data MOV Rn, #data (A) (Rn) #data #data
d:MOV direct,#data
将8位立即数送入由direct直接寻址的地 址单元中。 direct:00H~FFH,8位二进制地址码
寻址内部RAM(00H~7FH)及SFR

计算机原理_3寻址方式和指令系统

计算机原理_3寻址方式和指令系统

计算机原理_3寻址方式和指令系统寻址方式和指令系统是计算机原理中非常重要的概念,它们决定了计算机能够进行的操作和数据的处理方式。

下面将从寻址方式和指令系统的概念、分类和特点三个方面详细介绍。

一、寻址方式在计算机中,寻址方式是指CPU访问内存中数据的方式。

常见的寻址方式包括直接寻址、间接寻址、变址寻址和相对寻址等。

1、直接寻址直接寻址是指通过给出数据的内存地址来访问数据。

在直接寻址中,指令中给出了待访问的内存地址,CPU直接从该内存地址中读取/写入数据。

2、间接寻址间接寻址是指通过寄存器中的地址来访问数据。

在间接寻址中,指令中给出了一个寄存器的编号,CPU将寄存器中的地址作为内存地址进行读取/写入操作。

3、变址寻址变址寻址是指通过给出基地址和偏移量来计算内存地址的方法。

在变址寻址中,指令中给出了一个基地址和一个偏移量,CPU通过将两者相加来得到最终的内存地址进行操作。

4、相对寻址相对寻址是指通过给出相对于指令计数器的偏移量来计算内存地址的方式。

在相对寻址中,指令中给出了一个偏移量,CPU将偏移量与指令计数器相加来得到最终的内存地址。

二、指令系统指令系统是指计算机可以执行的指令的集合。

根据指令的类型和功能划分,指令系统可以分为以下几种类型。

1、数据传输指令数据传输指令用于在CPU和内存、寄存器之间传输数据。

例如,将内存中的数据传送到寄存器中或将寄存器中的数据传送到内存中等。

2、算术指令算术指令用于进行数值运算,如加、减、乘、除等。

这些指令可以对寄存器或内存中的数据进行算术运算,并将结果存放在寄存器或内存中。

3、逻辑指令逻辑指令用于进行逻辑运算,如与、或、非等。

这些指令可以对寄存器或内存中的数据进行逻辑运算,并将结果存放在寄存器或内存中。

4、控制指令控制指令用于控制程序的执行流程,如跳转、条件分支等。

这些指令可以根据条件改变程序的执行顺序或跳转到指定的地址执行。

指令系统的设计需要考虑指令的种类、格式、寻址方式和作用等因素。

汇编语言第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)

寻址方式和指令系统

寻址方式和指令系统

寻址⽅式和指令系统《微机原理》复习思考题第3章 8086的寻址⽅式和指令系统3.1 8086汇编语⾔指令的寻址⽅式有哪⼏类?⽤哪⼀种寻址⽅式的指令执⾏速度最快?3.2 直接寻址⽅式中,⼀般只指出操作数的偏移地址,那么,段地址如何确定?如果要⽤某个段寄存器指出段地址,指令中应如何表⽰?3.3 在寄存器间接寻址⽅式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定?3.4 ⽤寄存器间接寻址⽅式时,BX,BP,SI,DI分别针对什么情况来使⽤?这四个寄存器组合间接寻址时,地址是怎样计算的?举例进⾏说明。

3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下⾯两条指令所进⾏的具体操作:MOV BYTE PTR [BP], 2000MOV WORD PTR [BX], 20003.6 使⽤堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注意什么问题?3.7 下⾯这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。

XCHG CS, AXMOV [BX], [1000]XCHG BX, IPPUSH CSPOP CSIN BX, DXMOV BYTE[BX], 1000MOV CS, [1000]3.8 8086系统中,当对SS和SP寄存器的值进⾏修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会⾃动禁⽌外部中断,等到本条指令和下条指令执⾏之后,⼜⾃动恢复对SS寄存器赋值前的中断开放情况。

这样做是为了允许程序员连续⽤两条指令分别对SS和SP寄存器赋值,同时⼜防⽌堆栈空间变动过程中出现中断。

3.9 以下是格雷码的编码表0——0000 1——0001 2——0011 3——0010 4——01105——0111 6——0101 7——0100 8——1100 9——1101请⽤换码指令和其他指令设计⼀个程序段,实现格雷码往ASCII的转换。

第三章 8086的寻址方式和指令系统

第三章 8086的寻址方式和指令系统
习题 CH3 寻址方式和指令系统
计算机的指令通常包含 操作码 和 操作数 两部分。
设SP为0100H,SS为1000H,则执行PUSH AX 后,
00FE H,SS= 1000 H。 8086系统中,栈底在堆栈的 最高地址 (最高地址端、 最低地址端)。
如果VAL为数据段中0056H单元的符号名,其中存放
16
习题 CH3 寻址方式和指令系统
(6)MOV [SI],[BX] 源、目的操作数不能同时为存储单元 (7)MOV DS,0200H 立即数不能直接送给段寄存器 (8)IN BL,05H BL不能作为IN指令的目的操作数 (9)MOV AX,IP IP不能作为操作数 (10)MOV SI,[DX] DX不能进行寄存器间接寻址 (11)PUSH AL PUSH指令以字为操作单位
用单条指令或程序片段,实现下述功能
(1)将AX高8位取反,低四位置1,其余位不变。
XOR AX, 0FF00H
OR AX, 0FH (2)将AL的高四位与低四位互换。 MOV CL, 4 ROL AL, CL
(3)将BX、AX内容互换。
XCHG AX, BX
12
习题 CH3 寻址方式和指令系统
[BP+SI+4]源操作数的有效地址为
地址为 数的有效地址为
,物理 0214H 24514H 。指令MOV AX,[DI+100H]源操作
0306H,物理地址
为 24306H 。 设AX=2000H,BX=2002H,则在执行了指令CMP AX,
BX后,标志位CF为

1 , AX=
。 2000H
基址变址寻址
(5)MOV AX,10[BX][DI] 相对基址变址寻址

第3章8086寻址方式和指令系统-题

第3章8086寻址方式和指令系统-题

第3章8086寻址⽅式和指令系统-题第3章8086寻址⽅式和指令系统⼀、单项选择题(共50⼩题)1、指令MOV AX,[3070H]中源操作数的寻址⽅式为()A、寄存器间接寻址B、⽴即寻址C、直接寻址D、变址寻址2、DS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器3、CF是()A、进位标志位B、辅加进位标志位C、符号标志位D、全零标志位4、SS是_()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器5、指令MOV [BX],AX中A、⽬的操作数是寄存器操作数B、源操作数是存储器操作数C、⽬的操作数是存储器操作数D、源操作数是⽴即操作数6、CS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器B、源操作数存于堆栈段C、⽬的操作数存于数据段D、⽬的操作数存于堆栈段8、BX是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、16位变址寄存器9、ZF是()A、进位标志B、⽅向标志C、符号标志D、零标志10、IP是()A、指令指针寄存器B、堆栈指针寄存器C、通⽤寄存器D、变址寄存器11、SI是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、指令指针寄存器12、DL是()A、16位段寄存器B、16位通⽤寄存器C、8位通⽤寄存器D、16位标志寄存器13、指令IDIV BX 的含义是()A、(AX)/(BX)B、(DX:AX)/(BX)C、(AL)/(BX)D、(AL)/(BL)B、DXC、BPD、DI15、设SS=2000H,执⾏下列程序段后SP=()MOV SP,2000HPUSH AXA、21FFEHB、20000HC、22000HD、22002H16、寄存器间接寻址⽅式中,操作数在( )中。

A、通⽤寄存器B、堆栈C、内存单元D、段寄存器17、JMP WORD PTR[DI]是( )A、段内间接转移B、段间间接转移C、段内直接转移D、段间直接转移18、堆栈指针SP的作⽤是( )。

3-1、80X86寻址方式

3-1、80X86寻址方式

指明CPU要执行什么样的操作。 要执行什么样的操作。 指明 要执行什么样的操作 是一条指令必不可少的部分,用助记符表示。 是一条指令必不可少的部分,用助记符表示。
数据传送 算术运算 逻辑运算 串操作 控制转移 处理机控制
按功能 指令分六类
(2) 操作数 指明参与操作的数据或数据所在的地方。 指明参与操作的数据或数据所在的地方。
例1
MOV
AX , 2056H
执行后: 执行后:(AX)=2056H
例2
MOV
BL , AH
执行前: 执行前:(BL) = ??H, (AH) = 78H 执行后: 执行后:(BL) = 78H , (AH) = 78H
▲ 立即数寻址、寄存器寻址的操作数, 立即数寻址、寄存器寻址的操作数, 不用在取完指令后再到内存中取数。 不用在取完指令后再到内存中取数。 CPU 总线
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
内存
地址总线AB 地 数据总线DB 址 译
、、、 指令1 指令 指令2 指令 指令3 指令 指令4 指令 、、、 数据1 数据 数据2 数据 数据3 数据 、、、
单操作数
指令中给出一个操作数。 指令中给出一个操作数。 有两种可能: 有两种可能: ▲有些操作只需要一个操作数 如 INC AL ; (AL) ← (AL)+ 1 ) )
▲有些操作将另一个操作数隐含在指令中 如 MUL BL ; (AX) ← (AL)×(BL) ) ) )
双操作数
指令中给出两个操作数。 指令中给出两个操作数。
内存 00H ….
若定义value 为字类型 : 若定义 则 MOV value , 0 是一个字操作。 value 是一个字操作。 00H 00H

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

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

第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
根据d的不同进行选取
第四章 第一章 指令系统和寻址方式 基础知识
d=1时的操作
第四章 第一章 指令系统和寻址方式 基础知识
d=0时的操作
第四章 第一章 指令系统和寻址方式 基础知识
如果2000H单元在附加段,指令为: MOV AX, ES:[2000H] 段跨越前缀: 段寄存器名: —— 改变默认使用的段寄存器
第四章 第一章 指令系统和寻址方式 基础知识
可以使用属性操作符 type PTR 来进行属性说明
第四章 第一章 指令系统和寻址方式 基础知识
(4)寄存器间接寻址方式 (Register Indirect Addressing ) 特点: (寄存器) = 操作数的偏移地址 计算操作数物理地址的公式:
next
(7)相对基址变址寻址方式 ( Relative Based Index Addressing ) 特点:(基址寄存器) + (变址寄存器)+位移量 = 操作数的偏移地址
例:设 ( SS ) = 3000H ( BP ) = 2000H ARRAY = 0250H ( SI ) = 1000H MOV AX, ARRAY[BP][SI] 要访问的存储单元物理地址为: 30000H+2000H +0250+1000H 30000H = 33250H
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
Байду номын сангаас

汇编课第3章寻址方式与指令系统之3 (1)

汇编课第3章寻址方式与指令系统之3 (1)

北京理工大学-张华平-2010
24
① 段内直接短转移 格式:JMP SHORT LABEL 例.
JMP SHORT B1 ;无条件转移到B1标号处 A1: ADD AX,BX B1: …
北京理工大学-张华平-2010
25
② 段内直接转移 格式:JMP LABEL 或: JMP NEAR PTR LABEL
同上
测试并取反由SRC 指定的DST中的位
同上
表3-4 位测试指令
北京理工大学-张华平-2010
10
三、位扫描指令
从386开始增加了位扫描指令,它们包括 BSF、BSR指令,可用于扫描操作数中第一个含 1的位。
北京理工大学-张华平-2010
11
1.顺向扫描指令 BSF 格式:BSF DST,RSC 功能:从右向左扫描RSC操作数中第一个含1的
… B3: SUB AX,CX
… C2 ENDS
北京理工大学-张华平-2010
动画演示
29
2.条件转移指令 执行这类指令时通过检测由前边指令已
设置的标志位确定是否转移,所以它们通常 是跟在影响标志的指令之后。这类指令本身 并不影响标志。
条件转移指令的通用汇编格式: JCC LABEL
北京理工大学-张华平-2010
(设为n),空出的位用操作数OPRD2高端的n位 填充,但OPRD2的内容不变,最后移出的位在进 位标志CF中。
2.双精度右移指令 SHRD 格式:SHRD OPRD1,OPRD2,CNT
北京理工大学-张华平-2010
20
3.6 程序控制指令
本节提供的指令可以改变程序执行的顺 序,控制程序的流向。它们均不影响标志位。
表3-7 检测北单京理个工大条学件-张华标平志-201位0 转移指令 33

寻址方式及指令系统

寻址方式及指令系统

协同发展提高计算机性能
通过寻址方式和指令系统的协同发展,可以不断提高计 算机的性能和灵活性,满足不断变化的计算需求。
谢谢
THANKS
序的可读性和可维护性。此外,间接寻址方式还可以用于实现间接函数调用、数组元素的访问等。
基址寻址方式
总结词
基址寻址方式是指将基址寄存器BX或BP 的内容加上位移量DISP。
VS
详细描述
在基址寻址方式中,操作数的有效地址是 由基址寄存器BX或BP的内容与位移量 DISP相加得到的。基址寻址方式常用于 数组元素的访问和变址运算等场景。通过 基址寻址方式,可以方便地实现数组元素 的遍历和跳转等操作。
变址寻址方式
总结词
变址寻址方式是指将变址寄存器的内容加上 位移量DISP。
详细描述
在变址寻址方式中,操作数的有效地址是由 变址寄存器的内容与位移量DISP相加得到 的。变址寻址方式常用于数组元素的访问和 程序中的循环结构等场景。通过变址寻址方 式,可以实现数组元素的动态遍历和循环变 量的自增等操作。
02 指令系统概述
CHAPTER
指令系统的定义
指令系统的定义
指令系统是计算机硬件能够直接执行 的指令集合,它规定了计算机所具有 的基本功能。
指令系统的特点
指令系统是计算机体系结构的核心组 成部分,其特点包括指令集的规模、 指令的功能、寻址方式、操作码的长 度等。
指令系统的组成
指令格式
01
指令格式是指令系统中每条指令的固定格式,包括操作码和地
间接寻址方式
总结词
间接寻址方式是指操作数通过间接指定的地址来访问,而不是直接给出操作数的值或寄 存器名称。
详细描述
在间接寻址方式中,指令中的地址码指示的是一个内存单元的地址,而不是直接给出操作数的值或寄存器名 称。通过访问该内存单元,可以得到操作数的值。间接寻址方式的优点是可以隐藏操作数的实际值,提高程

微型计算机原理与接口技术课件-第三章指令系统和寻址方式

微型计算机原理与接口技术课件-第三章指令系统和寻址方式
指出的存储区进行直接寻址,应在指令中指定段
超越前缀。例如,数据若放在附加段中,则应在
有效地址前加“ES:”,这里的冒号“:”称为 修改
属性运算符,计算物理地址时要用ES作基地址, 而不再是默认值DS。
例如: MOV AX,ES:[500H] 该指令的源操作数的物理地址等于16×ES+
500H。
3.符号地址 在汇编语言中还允许用符号地址代替数值地
MOV CL,AH 注意:源操作数的长度必须与目的操作数一
致,否则会出错。例如,不能将AH寄存器的内 容传送到CX中去,尽管CX寄存器放得下AH的 内容,但汇编程序不知道将它放到CH还是CL中。
这种寻址方式的优点是:寄存器数量 一般在几个到几十个,比存储器单元少很 多,因此它的地址码短,从而缩短了指令 长度,节省了程序存储空间;另一方面, 从寄存器里取数比从存储器里取数的速度 快得多,从而提高了指令执行速度。
用汇编语言(即主要由指令系统组成的语言)编写的程 序称为汇编语言源程序,若直接将它送到计算机,机器
并不认识那些构成程序的指令和符号的含义,还必须由
汇编程序将源程序翻译成计算机能认识的二进制机器语
言指令(机器码)后,才能被计算机识别和执行,得到运算 结果。
8086指令系统采用变长指令,指令的长度可由l~6 字节组成。一字节指令中只包含8位操作码,没有操作数。 如清进位位指令CLC的机器码为1111 1000,可直接从指 令编码表中查到。对于大部分指令来说,除了操作码(不 一定是8位)外,还包含操作数部分,所以要由几个字节组 成。不同的指令,其操作码和寻址方式都是不一样的,
例如:AREA1 EQU 0867H MOV AX,AREA1
例如:AREA1 DW 0867H MOV AX,AREA1 (该指令也可

汇编语言 第三章 实方式指令寻址与指令系统

汇编语言 第三章 实方式指令寻址与指令系统

3.2实方式32位指令寻址

实地址方式32位指令寻址,指在32位的PC机上使
用16位的存储机制,执行32位的非保护方式及非虚拟
方式的指令,达到直接存取32位寄存器和32位存储器
操作数的目的。
3.3实方式指令系统
指令系统是一台机器所有指令的集合。 Pentium系列 机指令系统庞大、类型多样,约有300多条指令,其中包 括基本指令100多条。 具有支持多进程、多任务、虚 拟存储器和多媒体等功能的32位指令。
设DS=4000H, 1、MOV AX,[3020H] 2、VAR DW 86
MOV AX,VAR 3、SI=1800H, MOV AX,[SI] 4、COUNT DW 5,6,7,8 SI=06H MOV AX,COUNT[SI]
3.1.3数据寻址与数据结构的 关系
多种寻址方式能方便、灵活的存取操作数, 支持高级语 言的某些数据结构。
寄存器间接寻址例
例:MOV AX,[BX] 设BX=1200H

MOV


偏移地址

1200H 22H

AH AL 11 22
11H


寄存器间接寻址
由寄存器间接给出操作数的偏移地址;
存放偏移地址的寄存器称为间址寄存器,它们是:BX, BP,SI,DI
操作数的段地址(数据处于哪个段)取决于选择哪一 个间址寄存器:
一、立即寻址
指令中的源操作数是立即数,即源操作数是参加操作 的数据本身
例:MOV AX,1200H
AH AL
MOV
00H

12H



寄存器寻址(Register Addressing)

单片机指令系统-第3讲寻址方式

单片机指令系统-第3讲寻址方式

单片机指令系统-第3讲寻址方式单片机指令系统第 3 讲寻址方式在单片机的世界里,指令系统就如同它的语言规则,而寻址方式则是这套规则中至关重要的一部分。

简单来说,寻址方式决定了单片机如何找到操作数,也就是数据在存储器中的位置。

就好像我们在图书馆找一本书,需要知道它在哪个书架、哪一排,这就是“寻址”。

在单片机中,常见的寻址方式有以下几种:1、立即寻址立即寻址是最简单直接的一种方式。

在这种寻址方式中,操作数直接包含在指令中。

比如说,指令“MOV A, 50H”,这里的“50H”就是操作数,它直接跟在指令后面,单片机一看就知道要把 50H 这个值送到累加器 A 中。

这种方式的优点是指令执行速度快,因为操作数就在指令中,不需要再去别的地方找。

但缺点也很明显,就是能表示的操作数范围有限,通常只能是 8 位或 16 位的数值。

2、直接寻址直接寻址就稍微复杂一点了。

在这种方式下,操作数的地址直接出现在指令中。

例如,指令“MOV A, 30H”,这里的 30H 是操作数所在的地址,单片机通过这个地址就能找到存储在 30H 单元中的数据,并把它送到累加器 A 中。

直接寻址可以访问片内 RAM 的 00H 7FH 单元以及特殊功能寄存器(SFR)。

但要注意的是,对于 SFR,只能使用直接寻址方式进行访问。

3、寄存器寻址寄存器寻址就是操作数在寄存器中。

比如指令“MOV A, R0”,就是把寄存器 R0 中的内容送到累加器 A 中。

这种方式的优点是指令短,执行速度快,因为寄存器的访问速度通常比内存快得多。

在 8051 单片机中,寄存器寻址可以使用工作寄存器 R0 R7 以及部分特殊功能寄存器。

4、寄存器间接寻址寄存器间接寻址与寄存器寻址有点类似,但操作数的地址在寄存器中。

比如指令“MOV A, @R0”,这里的 R0 中存放的不是操作数,而是操作数的地址,单片机先从 R0 中取出地址,再根据这个地址找到操作数并送到累加器 A 中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算术运算类指令
加法指令(Addition) 带进位加法指令(Add with carry) 加1指令(Increment) 减法指令(Subtraction) 带借位减法(Subtract with borrow) 减1指令(Decrement) 求负数指令(Negative)
加法指令(Addition)
指令格式:add dest,src 功能:目的操作数和源操作数相加,其和数 存放在目的操作数中,源操作数原有内容不 变。 根据相加结果设置标志寄存器中的CF、PF、 AF、ZF、SF和OF。 Add指令可以进行字或字节操作。 对src和dest的具体内容的要求。
加法指令
Add ax,bx Add al,bl Add cx,20 Add cl,0A4h Add dl,da_byte Add da_word[si],dx 对于第四条指令,如果(cl) = 0e5h,
指令格式
双操作数指令:OPR DEST,SRC 单操作数指令:OPR DEST 无操作数指令:OPR
传送类指令
数据传送指令(move) mov dest,src 可以进行字节数据传送,也可以进行字数据 传送。 mov cl,05h ;字节传送 mov ax,1234h ;字传送 mov da_byte,12h ;字节传送 mov da_word,1234h ;字传送
位操作类指令
逻辑运算指令(Logical) 测试指令(Test) 移位/循环移位指令(shift/rotate) 处理器控制类指令
逻辑运算指令(Logical)
数据传送指令(move)
寄存器之间的传送 mov dl,cl ;字节传送 mov ax,bx ;字传送 mov ds,ax ;通用寄存器和段寄存器之间的 传送
数据传送指令(move)
寄存器和存储单元之间的传送 mov dl,da_byte ;字节传送 mov ax,da_word ;字传送 mov da_byte,cl ;字节传送 mov ds_word,bx ;字传送
8086/8088的8种寻址方式
立即数寻址(Immediate addressing) 指令中所需操作数包含在指令代码中,立即 数操作数可以是8位,也可以是16位。由于在 指令执行过程中,立即数作为指令的一部分 直接从BIU的指令序列中取出,同寄存器寻址 方式一样,不需另外占用总线周期,因此这 种寻址方式执行速度快。
第三章 寻址方式与指令系统
寻址方式
操作码(指示指令应完成的具体操作) 操作数(表示指令的操作对象) 寻找指令中所需操作数的各种方法叫寻址方 式。 Intel 8086/8088 CPU指令所需操作数类型。
8086/8088的8种寻址方式
寄存器寻址(Register Addressing) 指令中所需操作数在CPU某寄存器(通用寄 存器和段寄存器)中,由于存取这种操作数 完全在CPU内部进行,不需要执行总线周期, 所以执行速度快。如: mov cl,al mov dh,bl mov dx,cx mov ds,ax
组成EA或偏移量的3个地址分量
位移量 位移量是指令中的一个8位或16位二进制数,在源 代码中通常以变量名或标号的形式出现。 基地址 由基址寄存器BX、基址指针BP提供的地址分量。 变址 由源变址寄存器SI或目的变址寄存器DI所提供的地 址分量。
由三地址分量组合得到的存储器寻址 方式
直接寻址(Direct addressing) 在寻找存储器中操作数时,EA直接由位移量 给出。 用符号表示:mov bx,ds:var mov ah,data_byte mov cl,da + 3 用常数表示:mov ax,ds:[100h] 注意与它区分:mov ax,100h
求负数指令(Negative)
指令格式:neg dest 指令功能:dest 0 – (dest) 对目的操作数的要求。 若已知(al) = 13h(00010011b),那么指令neg al的执行结果:(al) = 0edh= 11101101b 若已知(da_byte) = 0afh(10101111b),那么 指令neg da_byte的执行结果是:(da_byte) = 51h(01010001b)。
34
地址传送指令
装入地址指针 作用:装入段基址和偏移量 由用段基址和偏移量均为16 bit,所以需要2 个寄存器:一个段寄存器和一个通用寄存器。 指令格式:lds dest,src ; les dest,src 指令对标志寄存器各位均无影响。 Lds si,addr_table[bx]的执行情况。P35 图3.16
8086/8088的8种寻址方式
立即数寻址(Immediate addressing) mov bx,0a427h mov cl,12 mov bx,”ab” mov dh,”a” mov ax,1234h mov ah,0abh
8086/8088的8种寻址方式
宏汇编源程序中使用的逻辑地址形式: 段基址:偏移量 段基址存放于段寄存器中;而偏移量表示需 要访问的存储单元与段起始地址之间的距离。 偏移量是由CPU的执行单元EU来确定和计算 的有效地址(EA)
数据传送指令(move)
两个存储单元间的数据传送 mov dl,da_byte1 mov da_byte2,dl 即mov指令的源操作数和目的操作数只能是其中之 一为存储器操作数,不能两者同时为存储器操作数。 两个存储单元间的数据交换 mov cl,da_byte1 mov dl,da_byte2 mov da_byte1,dl mov da_byte2,cl
由三地址分量组合得到的存储器寻址 方式
基址寻址和变址寻址 操作数的有效地址EA是基址寄存器或变址寄 存器给出的分量与指令中给出的位移量之和。 mov ax,10h[si] mov ax,array[bx] mov table[di],al mov tabz[bp],bl mov ax,ds:10h[si] mov ax,ds:array[bx] mov ds:table[di],al mov ss:tabz[bp],bl
带进位加法指令(add with carry)
指令格式:adc dest,src 指令差异:若在adc指令前CF已置1,则在两 操作数相加之和中再加1。 Dest (dest) + (src) + cf 设置cf、pf、af、zf、sf和of。 指令主要用于大于16位数的加法中。
带进位加法指令(add with carry)
减法指令(Subtraction)
指令格式:sub dest,src 指令格式:dest (dest) – (src) 影响标志位;cf,pf,af,zf,sf和of 可以进行字节或字减法运算。 对src和dest的使用要求。
减法指令
Sub ax,bx Sub al,bl Sub cx,300h Sub dx,da_word Sub da_byte,dl 如果(dl)= 0a9h,而(da_byte)=0b7h,最后一 条指令的运行情况和影响的标志位。
地址传送指令
装入有效地址(load Effective Address) 指令格式:lea dest,src SRC必须是一个字节或字的存储器操作数。 Dest必须为一个16bit的通用寄存器。 作用:将源操作数的偏移量(即有效地址EA) 送入目的操作数的通用寄存器中。 LEA和MOV指令的区别? P 图3.13、图3.14
现有一个32位无符号数已存放在AX(高16 位)、BX(低16位)中,现要加上一个常数 376425h。可以用下面两条指令来实现: add bx,6425h adc ax,37h
加1指令(Increment)
指令格式:inc dest 指令功能:将目的操作数加1,并送回目的操 作数。 目的操作数可以是8位或16位的通用寄存器或 存储单元。 影响标志位:pf,af,zf,sf,of(不影响cf) Inc cl、inc si、inc count
由三地址分量组合得到的存储器寻址 方式
寄存器间接寻址(Register indirect addressing) 操作数有效地址EA(偏移量)直接从基址寄 存器(BX或BP)或变址寄存器(SI或DI)中 获得,例如: mov ax,[bx] (段基址寄存器:DS) mov bh,[bp] (段基址寄存器:SS) mov cl,[si] (段基址寄存器:DS) mov [di],bx (段基址寄存器:DS)
指令系统
传送类指令(Transfer instructions) 算术运算类指令(Arithmetic instructions) 位操作类指令(Bit manipulation instructions) 串操作类指令(String instructions) 程序转移类指令(Program transfer instructions) 处理器控制类指令(Processor control instructions)
带借位减法(subtract with borrow)
指令格式:sbb dest,src 指令功能:dest (dest) – (src) – cf 影响标志位:cf,pf,af,zf,sf和of。
减1指令(decrement)
指令格式:dec dest 指令功能:目的操作数减1,并送回目的操作 数。 目的操作数可以为一个8位或16位的寄存器或 存储单元。 影响标志位:pf,af,zf,sf,of(不影响cf)
标志传送指令(flags transfer)
标志进栈指令(Push Flag) 指令格式:pushf 作用顶部 字单元中。
标志传送指令(flags transfer)
标志出栈指令(pop flag) 指令格式:popf 作用:首先将现行堆栈顶部的一个字的内容 送入标志寄存器,然后sp加2。
存储器寻址方式归纳总结
P30 图3.9
串操作寻址(String addressing)
相关文档
最新文档