寻址方式与指令系统

第三章 寻址方式与指令系统
主要内容:
– 8086/8088指令系统的寻址方式 – 8086/8088指令格式 – 8086/8088指令系统 – 80x86指令系统
8086/8088指令系统的寻址方式
所谓寻址方式就是寻找操作数存放地址 (位置)的方法。在8086/8088系统中操作数存 放的位置有以下4种:
+ SI: 2000H
M
32000H
AX
40 50
30000H
32000H
50 40
…… ……
DS:30000H
+ BX: 1000H
M
31000H
AL
30000H
50
31000H
50
⑶ 寄存器相对寻址
MOV ((BBCXPL)) , [BX8位+1d0is6p4H]
EA= (DI) + 16位 disp
1. 数据的寻址方式
对于数据操作数,有四种形式:
① 无操作数
② 单操作数:可以是源操作数,也可以是 目的操作数。
③ 双操作数:一个是源操作数,一个是目的 操作数。
④ 隐含操作数:可能隐含一个操作数(源或 目的),也可能隐含两个操作数。
源操作数:在操作过程中其值不变的操作数。 (可以提供数据的操作数)
DS:(S2I0)000H
BX: 1000H
+
1064H
操作码
代
码
64
段
10
22064H
20000H
CL
45
…
21000H
数 据
…
段
22064H 45
⑷ 基址加变址寻址方式
(BX) (DI) EA= (BP) + (SI)
MOV AH, [BP][SI]
M
SS:40000H BP: 2000H + SI: 1200H
41444H AH 45
…
数
据
…
段
41444H 45
4)I/O端口寻址方式 ⑴ 直接端口寻址方式
IN AL, 21H
I/O接口
01H 02H
……
AL
80 21H
80
操作码
代
21H
码
段
⑵ 间接端口寻址方式 OUT DX, AL
I/O接口 0001H 0002H
80 1234H
……
DX
12
34
AL 80
MOV AX,2500H (AX)=
MOV AX,[300H] (AX)=
MOV AX,[BX]
(AX)=
MOV AX,500H[BX] (AX)=
MOV AX,[BX][SI] (AX)=
MOV AX,[BX+SI+2] (AX)=
设(DS)= 1000H,(ES)= 2000H,(SS)= 3000H,(SI)= 0080H,(BX)= 02D0H ,(BP)= 0060H,试指出下列指令的源操 作数字段是什么寻址方式?它的物理地址是 多少?
指出下列指令中,源操作数及目的操作数的寻 址方式
SUB BX,[BP+35] MOV AX,2030H
SCASB IN AL,40H MOV [DI+BX],AX ADD AX,50H[DI] MOV AL,[1300H]
MUL BL
已知(DS)= 1000H,(SI)= 0200H,(BX)= 0100H ,(10100H)= 11H,(10101H)= 22H,( 10600H)= 33H,(10601H)= 44H,(10300H)= 55H,(10301H)= 66H,(10302H)= 77H,( 10303H)= 88H,试分析下列各条指令执行完后AX 寄存器的内容。
43200H
……
AH
40000H
56H
43200H 56H
⑸ 基址加变址相对寻址
EA=
(BX) (BP) +
(DI) (SI)
+
8位 disp 16位 disp
MOV [BX+DI+1234H], AH
操作码
代
码
34
段
DS:40000H
BX: 0200H
DI: 0010H
+
1234H
12 40000H
⑴ 直接寻址方式
EA= 16位 disp
MOV AL, [1064H]
DS:20000HΒιβλιοθήκη +1064H
21064H
操作码
代
64
码
10
段
AL 45
20000H
…
数 据
21064H 45
段
⑵ 寄存器间接寻址 MOV AX, [SI] MOV [BX], AL
(BX) EA= (DI)
(SI)
DS:30000H
目的操作数:在操作后可被操作结果代替的 操作数。(可以接收数据的操作数)
1)立即数寻址方式 例如:MOV AL, 80H
MOV AX, 1234H
MOV AL, 80H AL 80H
程序存储器
操作码字节 指
令
80H
码
MOV AX, 1234H
程序存储器
AH AL
12H 34H 操作码字节 指
34H
⑴ 操作数包含在指令字节中。即指令格式 中操作数部分就是操作数本身。这种操作数叫 立即数操作数。
⑵ 操作数存放在CPU的某个内部寄存器中。 这种操作数叫寄存器操作数。
⑶ 操作数在内存的数据区中。这种操作数 叫存储器操作数。
⑷ 操作数来自或送到I/O端口。这种操作 数叫I/O操作数。
在8086/8088系统中,操作数又可分为两大 类:数据操作数和地址操作数。因此,寻址方 式也分为数据寻址方式和地址寻址方式两大类。
MOV AX,0CBH
MOV AX,[100H]
MOV AX,[BX]
MOV AX,[BP]
MOV AX,[BP+50]
MOV AX,[BX][SI]
2.地址的寻址方式 地址的寻址方式其时是程序转移地址的寻 址方式,也就是找出程序转移的地址号,而不 是操作数。 转移地址可以在段内(称段内转移),也 可以跨段(称段间转移)。寻求转移地址的方 法有以下四种: 1)段内直接寻址 转移的地址是当前IP内容和指令规定的8位 或16位位移量之和。 当位移量是8位时,称为短程转移;位移量 是16位时称为近程转移。
PM
opcode
位移量 位移量
当前IP
+
EA
有效转移地址
(CS) ×10H + EA
这种寻址方式适用于条件转移或无条件转 移类指令。但条件转移只有8位位移量的短程转 移。
例:JMP SHORT ALPHA
存储器
本例指令是一无条件转移
令
码
12H
有效地址可以由以下三种地址分量组成:
● 位移量:它是存放在指令中的一个8位或 16位的带符号数。
● 基 址:它是存放在基址寄存器BX或BP 中的内容。
● 变 址:它是存放在变址寄存器SI或DI 中的内容。
对于某条具体指令,这三个地址分量可有不 同的组合。正是因为这三种地址分量有不同的组 合,才使得对存储器操作数的寻址产生了若干种 不同的方式。
合集下载

第4章 TMS320F28x系列DSP的寻址方式及指令系统

第4章 TMS320F28x系列DSP的寻址方式及指令系统
第4章 TMS320F28x系列DSP的寻址方式及 指令系统
4.1 TMS320F28x系列DSP的寻址方式 4.1.1 寻址方式选择位AMODE 4.1.2 直接寻址方式 4.1.3 堆栈寻址方式 4.1.4 间接寻址方式 4.1.5 寄存器寻址方式 4.1.6 其他寻址方式 4.1.7 32位操作数的定位 4.2 TMS320F28x系列DSP指令系统概述
在 F2812间接寻址方式中,使用哪个辅助寄存器指针在指令中并不 被明确指出。而在 C2xLP的间接寻址方式中,3位长度的辅助寄存器指 针被用来选择当前使用哪个辅助寄存器以及下次操作将使用哪个辅助寄 存器。
汇编器/编译器对AMODE位的追踪
编译器总是假定AMODE=0,所以它只使用对AMODE=0 有效的寻址模式。而汇编器可以通过设置命令行选项实现默认 AMODE=0或者AMODE=1。 √ – v28 ;假定AMODE=0(C28x寻址方式) – v28 – m20 ;假定AMODE=1(与C2xLP全兼容的寻址方式) √ 在文件中使用内嵌伪指令
器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。
▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式
兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。
周鹏 安徽工程大学电气工程学院
周鹏 安徽工程大学电气工程学院
寻址方式是指CPU根据指令中给出的地址信息
来寻找指令中操作数物理地址的方式,即获得操作
数的方式。指令系统即各种指令的集合,或称指令
集 。 本 章 简 要 介 绍 C28x 系 列 ( TMS320F2812 属 于 C28x系列)DSP的寻址方式和指令系统。

第三章 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章(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]
• 无符号数和有符号数采用同一套加法指令及减法 所有算术运算指令均影响状态标志。 指令有两个条件:

3. 寻址方式与指令系统

3. 寻址方式与指令系统

算术运算类指令
加法指令(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 ;通用寄存器和段寄存器之间的 传送

第二章 80868088寻址方式和指令系统

第二章 80868088寻址方式和指令系统

(5)奇偶标志PF
用于反映运算结果中“1”的个数。如果“1”的个数为偶数,则OF被置1,否则OF被清0。
(6)辅助进位标志AF
在字节操作时,如发生低半字节向高半字节进位或借位;在字操作时,如发生低字节向高字 节进位或借位,则辅助进位标志AF被置1,否则AF被清0。
②状态控制标志
(1)方向标志DF
方向标志决定着串操作指令执行时,有关指针寄存器调整方向。 当DF为1时,串操作指令按减方式改变有关的存储器指针值, 当DF为0时,串操作指令按加方式 改变有关的存储器指针值。
其中:存储单元的物理地址是12345H, 标出的:两个重叠段的段值分别是:1002H和1233H, 在对应段内的偏移分别是2325H和0015H。
采用段值和偏移构成逻辑地址后,段值由段寄存器给出,偏移可由指令指针IP、堆栈指针SP 和其他可作为存储器指针使用的寄存器(SI、DI、BX和BP)给出,偏移还可直接用16位数给 出。
图中指令存放在代码段中,OP表示该指令的操作码部分 再例如: MOV AL,5 则指令执行后,(AL)=05H
MOV BX,3064H 则指令执行后, (BX)=3064H
2、寄存器寻址方式
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数数,寄存器可以是:
AX、BX、CX、DX、SI、DI、SP和BP等;
指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动 形成20位物理址。
3、段寄存器的引用
由于8086/8088CPU有四个段寄存器,可保存四个段值。所以可同时使用四个段值,但这四个 段有所分工。
在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令 的物理地址。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

汇编语言第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的寻址方式和指令系统

习题 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] 相对基址变址寻址

数据表示、寻址方式与指令系统

1 10000001 01000000000000000000000
其中,S=1,E=129,M=0.25,因此N= (-1)1 *2 129-127*(1.25) = -5
例3 将 5/32 转换成IEEE单精度格式。
5/32=1.25*4/32=1.25*22 /25 =1.25* 2-3 所以S=0,E=-3+127=124,M=0.25,因此5/32的单精度格式为
格式:
描述符 标志位
3
特征标记 8
数据块长度 20
数据块起始地址 20
图2.5 数据描述符格式 优点:整块数据可一次性操作;简化编译中的代码生成。
例1 N= -1.5,求它的IEEE单精度浮点格式 由于N= -1.5= (-1)1*2 127-127*(1.5) 所以,S=1,E=127,M=0.5,因此N=-1.5单精度格式为
1 01111111 10000000000000000000000 例2 以下的32位数所表示的单精度浮点数为多少?
23 M
尾数
52 M
尾数
32位浮点单精度数据格式:
单精度格式: 若E=0且M=0,N为0; 若E=0且M≠0,N=(-1)S·2-126 ·(0.M),非规格化数; 若1≤E≤254,N=(-1)S·2E-127 ·(1.M),规格化数; 若E=255且M ≠ 0,N=NaN(非数值); 若E=255且M = 0,N= (-1)S ∞(无穷大)。
(3)优点:简化了指令系统和程序设计; 简化了编译程序; 由硬件自动实现一致性检验和数据类 型的转变;
支持了数据库系统的实现与数据类型 无关的要求; 为软件调试和应用软件开发提供了支 持;
(4)引入可行性分析: a.存储空间问题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档