寻址方式与指令系统
第4章 TMS320F28x系列DSP的寻址方式及指令系统
![第4章 TMS320F28x系列DSP的寻址方式及指令系统](https://img.taocdn.com/s3/m/978ef93aeefdc8d376ee32bf.png)
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单片机的寻址方式和指令系统](https://img.taocdn.com/s3/m/1b5d014d767f5acfa1c7cd4b.png)
由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
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) 寻址方式和指令系统](https://img.taocdn.com/s3/m/fb230b11a76e58fafab003ef.png)
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. 寻址方式与指令系统](https://img.taocdn.com/s3/m/4da52c2a915f804d2b16c16f.png)
算术运算类指令
加法指令(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寻址方式和指令系统](https://img.taocdn.com/s3/m/b6afad40852458fb770b568c.png)
(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寻址方式和指令系统](https://img.taocdn.com/s3/m/fd20e753cd7931b765ce0508763231126edb77cd.png)
计算机原理_3寻址方式和指令系统寻址方式和指令系统是计算机原理中非常重要的概念,它们决定了计算机能够进行的操作和数据的处理方式。
下面将从寻址方式和指令系统的概念、分类和特点三个方面详细介绍。
一、寻址方式在计算机中,寻址方式是指CPU访问内存中数据的方式。
常见的寻址方式包括直接寻址、间接寻址、变址寻址和相对寻址等。
1、直接寻址直接寻址是指通过给出数据的内存地址来访问数据。
在直接寻址中,指令中给出了待访问的内存地址,CPU直接从该内存地址中读取/写入数据。
2、间接寻址间接寻址是指通过寄存器中的地址来访问数据。
在间接寻址中,指令中给出了一个寄存器的编号,CPU将寄存器中的地址作为内存地址进行读取/写入操作。
3、变址寻址变址寻址是指通过给出基地址和偏移量来计算内存地址的方法。
在变址寻址中,指令中给出了一个基地址和一个偏移量,CPU通过将两者相加来得到最终的内存地址进行操作。
4、相对寻址相对寻址是指通过给出相对于指令计数器的偏移量来计算内存地址的方式。
在相对寻址中,指令中给出了一个偏移量,CPU将偏移量与指令计数器相加来得到最终的内存地址。
二、指令系统指令系统是指计算机可以执行的指令的集合。
根据指令的类型和功能划分,指令系统可以分为以下几种类型。
1、数据传输指令数据传输指令用于在CPU和内存、寄存器之间传输数据。
例如,将内存中的数据传送到寄存器中或将寄存器中的数据传送到内存中等。
2、算术指令算术指令用于进行数值运算,如加、减、乘、除等。
这些指令可以对寄存器或内存中的数据进行算术运算,并将结果存放在寄存器或内存中。
3、逻辑指令逻辑指令用于进行逻辑运算,如与、或、非等。
这些指令可以对寄存器或内存中的数据进行逻辑运算,并将结果存放在寄存器或内存中。
4、控制指令控制指令用于控制程序的执行流程,如跳转、条件分支等。
这些指令可以根据条件改变程序的执行顺序或跳转到指定的地址执行。
指令系统的设计需要考虑指令的种类、格式、寻址方式和作用等因素。
汇编语言第3章 指令系统和寻址方式
![汇编语言第3章 指令系统和寻址方式](https://img.taocdn.com/s3/m/6e32ee2676c66137ee0619ef.png)
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)
寻址方式和指令系统
![寻址方式和指令系统](https://img.taocdn.com/s3/m/394b2f3a905f804d2b160b4e767f5acfa1c783cd.png)
寻址⽅式和指令系统《微机原理》复习思考题第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的寻址方式和指令系统](https://img.taocdn.com/s3/m/7fb948eae009581b6bd9ebfa.png)
计算机的指令通常包含 操作码 和 操作数 两部分。
设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] 相对基址变址寻址
数据表示、寻址方式与指令系统
![数据表示、寻址方式与指令系统](https://img.taocdn.com/s3/m/4abdcc12be23482fb4da4ca8.png)
其中,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.存储空间问题
汇编语言第四章:指令系统和寻址方式
![汇编语言第四章:指令系统和寻址方式](https://img.taocdn.com/s3/m/9b1becf29b89680203d82592.png)
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
第四章 第一章 指令系统和寻址方式 基础知识
根据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)](https://img.taocdn.com/s3/m/9ff21ebb1a37f111f1855ba5.png)
北京理工大学-张华平-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
汇编语言程序设计-80X86指令系统和寻址方式
![汇编语言程序设计-80X86指令系统和寻址方式](https://img.taocdn.com/s3/m/b01d322e700abb68a982fbf7.png)
1.数据传送类指令 • 数据传送类指令用于实现CPU的内部寄存器之间 • CPU内部寄存器和存储器之间 • CPU累加器AX或AL和I/O端口之间的数据传送 此类指令除了SAHF和POPF指令外均不影响标志寄存器的
内容。 在数据传送指令中,源操作数和目的操作数的数据长度
必须一致。
(1)MOV指令
指令功能:把AX中的16位数或AL中的8位数输出到指定端口。
例 3.26
OUT 22H, AL
(4)段间间接寻址方式 这种寻址方式是由指令中给出的存储器数据寻址方式,包括存
放转移地址的偏移量和段地址。其低位字地址单元存放的 是偏移地址,高位字地址单元中存放的是转移段基值。这 样既更新了IP内容又更新了CS的内容,故称为段间间接寻 址。 例 JMP WORD PTR[BX] ;转移到当前代码位置内 ;有效地址存放在BX寻址的单元中
;物理地址=DS×16+SI
MOV [DI], DX
;物理地址=DS×16+DI
2) 以BP进行寄存器间接寻址(BP作为地址指针)的方式
隐含的段寄存器为堆栈段寄存器SS,操作数存放在堆栈段区域, 将堆栈段寄存器SS的内容左移4位,再加上基址寄存器BP的 内容,即为操作数的物理地址。
例
MOV [BP], BX
OP
DW
OP
SW
操作码格式
8086指令格式
几点说明: ① 一条指令可以包含一个操作数,也可以包含一个以上的操作
数;一个操作数的指令称为单操作数指令,单操作数指令中 的操作数可能由指令本身提供,也可能由指令隐含地指出。 ② 若位移量或立即数为16位,那么在指令代码中,将低位字节 放在前面,高位字节放在后面。 ③ 8086指令系统中大多数指令的操作码只占用第一个字节,但 有几条指令是特殊的,其指令中的第一个字节不但包含操作 码成分,而且还隐含地指出了寄存器名,从而整个指令只占 一个字节,成为单字节指令。这些指令字节数最少,执行速 度最快,用得也最频繁。
微机原理第02章(寻址方式和传送指令)
![微机原理第02章(寻址方式和传送指令)](https://img.taocdn.com/s3/m/e411928f02d276a200292e35.png)
有效地址由基址寄存器( BX 或 BP )的内容加上 变址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI 段地址对应 BX基址寄存器默认是 DS,对应BP基 址寄存器默认是SS;可用段超越前缀改变
MOV AX, [BX+SI] MOV AX, [BX][SI]
;AX←DS:[BX+SI]
段内偏移量为适应各种数据结构的需要,可以有几个部分组 成,所以也把它称为有效地址EA。
寻址方式不同EA的构成不同。归纳EA可有多种情况构成: 直接寻址,寄存器间接寻址,寄存器相对寻址,
基址加变址寻址,相对址加变址寻址。
寻址方式——如何寻找内存操作数。 不同寻址方式实质上是构成它段内的偏移量的方法不同。
34H 12H
堆 栈 段
...
寄存器间接寻址方式 MOV [BP], AX
3 、用 SI、DI、BX 、BP作为间接寻址允许段跨越
指令中可以指定段跨越前缀来取得其他段中的数据。
例:MOV ES:[DI], AX MOV DX, DS:[BP] 这种寻址方法可以用于表格处理。
第2章 (五)寄存器相对寻址方式(Register relative addressing)或变 址寻址 (Index Addressing)
8位位移量 PA=16d ×(SS)+ (BP) + 16位位移量
例: MOV AX, COUNT [BP] 或MOV AX, [COUNT+BP] 或MOV AX, COUNT+[BP]
AH AL 48H 存储器 OP OP 40H 20H 操 作 码 位移量 COUNT
COUNT为16位位移量。 指令执行前: (SS)=5000H, (BP)=3000H, COUNT=2040H, (AX)=1234H
寻址方式及指令系统
![寻址方式及指令系统](https://img.taocdn.com/s3/m/d488d30e32687e21af45b307e87101f69f31fb41.png)
协同发展提高计算机性能
通过寻址方式和指令系统的协同发展,可以不断提高计 算机的性能和灵活性,满足不断变化的计算需求。
谢谢
THANKS
序的可读性和可维护性。此外,间接寻址方式还可以用于实现间接函数调用、数组元素的访问等。
基址寻址方式
总结词
基址寻址方式是指将基址寄存器BX或BP 的内容加上位移量DISP。
VS
详细描述
在基址寻址方式中,操作数的有效地址是 由基址寄存器BX或BP的内容与位移量 DISP相加得到的。基址寻址方式常用于 数组元素的访问和变址运算等场景。通过 基址寻址方式,可以方便地实现数组元素 的遍历和跳转等操作。
变址寻址方式
总结词
变址寻址方式是指将变址寄存器的内容加上 位移量DISP。
详细描述
在变址寻址方式中,操作数的有效地址是由 变址寄存器的内容与位移量DISP相加得到 的。变址寻址方式常用于数组元素的访问和 程序中的循环结构等场景。通过变址寻址方 式,可以实现数组元素的动态遍历和循环变 量的自增等操作。
02 指令系统概述
CHAPTER
指令系统的定义
指令系统的定义
指令系统是计算机硬件能够直接执行 的指令集合,它规定了计算机所具有 的基本功能。
指令系统的特点
指令系统是计算机体系结构的核心组 成部分,其特点包括指令集的规模、 指令的功能、寻址方式、操作码的长 度等。
指令系统的组成
指令格式
01
指令格式是指令系统中每条指令的固定格式,包括操作码和地
间接寻址方式
总结词
间接寻址方式是指操作数通过间接指定的地址来访问,而不是直接给出操作数的值或寄 存器名称。
详细描述
在间接寻址方式中,指令中的地址码指示的是一个内存单元的地址,而不是直接给出操作数的值或寄存器名 称。通过访问该内存单元,可以得到操作数的值。间接寻址方式的优点是可以隐藏操作数的实际值,提高程
微型计算机原理与接口技术课件-第三章指令系统和寻址方式
![微型计算机原理与接口技术课件-第三章指令系统和寻址方式](https://img.taocdn.com/s3/m/7b569104f90f76c660371a7f.png)
超越前缀。例如,数据若放在附加段中,则应在
有效地址前加“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 (该指令也可
第4章 寻址方式与指令系统(二)
![第4章 寻址方式与指令系统(二)](https://img.taocdn.com/s3/m/b90133ff941ea76e58fa04fa.png)
6
传送指令
作用
把数据或地址传送到寄存器或存储器单元中
分类
分四大类 共14条指令
《微机接口技术》
7
传送指令的列表
分组 助记符 MOV PUSH POP XCHG 累加器专用传送指 令 功能 传送 压栈 弹栈 交换 操作数类型 字节/字 字 字 字节/字
通用数据传送指令
XLAT
1000H BX 0200H DI 1206H BX 0200H DI
执行前
执行后
注意区别于: MOV BX, [BX+DI+6H]
《微机接口技术》
27
b)LDS指令和LES指令说明
LDS指令(Load pointer into register & DS) 格式:LDS REG, SRC 操作:将源操作数(SRC)指定的FAR型指 针装入指定寄存器(REG)和DS寄存器 说明:
04H AL 66H AL
执行前
执行后
《微机接口技术》
21
b)IN指令和OUT指令说明
IN指令(输入) 格式:IN AC, PORT 操作:把外设端口的内容输入到AL或AX OUT指令(输出)
格式:OUT PORT, AC 操作:把AL或AX的内容输出到外设端口
《微机接口技术》
22
IN指令和OUT指令的寻址方式
XCHG指令示例
XCHG AL, BL XCHG BX, CX
XCHG [BX], CX
XCHG DS:[2530H], CX
《微机接口技术》
17
XCHG指令示例
用XCHG指令改进“存储器中两个字节单元 内容的交换”的程序段
MOV BL, DS:[2035H] MOV CL, DS:[2045H] MOV DS:[2045H], BL MOV DS:[2035H], CL MOV BL, DS:[2035H]
微控制器寻址方式与指令系统
![微控制器寻址方式与指令系统](https://img.taocdn.com/s3/m/b217c39a03d8ce2f01662333.png)
§3.2指令分类
• 数据传送类 • 算术运算类 • 逻辑操作类 • 控制转移类及设置类
12、、123R[R[、、、R装存,d123d=A=C...源加减乘M载储R12a操xr逻 逻 逻地..r±法法法数 数y作址软 程]源辑 辑 辑]运 运 运据 据=操中 序R与 或 异作算 算 算s 断 转数或移 3、45、、R堆45d..=求比栈34-测 移源..补较操操子 功试 位作作调 能数 用 设置
4、R2=D:[R3 - -] //((R3))=>R2, //(R3)-1=>R3。
5、主要用于堆栈操作
2、寄存器前置增量间接寻址
3、寄存器后置增量间接寻址
4、寄存器后置减量间接寻址
5、寄存器自动增减量间接寻址
五、变址寻址
R1=[BP+IM6] //((BP)+IM6)=>R1
六、PC相对寻址
用于转移指令,(PC)±IM6;IM6<=63
PUSH Rx,Rx to [SP] ▪压入某两个或多个寄存器
PUSH Rx,Ry to [SP] ▪先压栈,SP内容自动减1。 ▪不影响标志位。
例1、执行指令 PUSH R3,PC to [SP]
X
X
高 地
X
X
址
SP
PC
SR
R5
R4
R3
低
SP
地
址
2、出栈指令
POP Rx,Ry from [SP]
▪ 将以Rs的内容为起始地址的一组存储器中的内容 送到Rx~Ry中。先传送低序号寄存器。
▪ 弹出到单个寄存器 POP Rx,Rx from [SP]
▪ SP内容先自动增量,再弹出。 ▪ 影响标志位N、Z。
单片机指令系统-第3讲寻址方式
![单片机指令系统-第3讲寻址方式](https://img.taocdn.com/s3/m/a53633aa7d1cfad6195f312b3169a4517623e56a.png)
单片机指令系统-第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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主要内容:
– 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 中的内容。
对于某条具体指令,这三个地址分量可有不 同的组合。正是因为这三种地址分量有不同的组 合,才使得对存储器操作数的寻址产生了若干种 不同的方式。