第3章_1寻址方式

合集下载

4 种寻址方式

4 种寻址方式

第3章 8086/8088指令系统寻址方式寻址方式:包含数据寻址方式和转移地址寻址方式。

这里指数据寻址方式。

它是指取得指令操作数地址的方式。

(1)立即寻址方式(2)直接寻址方式(3)寄存器寻址方式(4)寄存器间接寻址方式(5)寄存器相对寻址方式(6)基址变址寻址方式(7)相对基址变址寻址方式寻址方式:包含数据寻址方式和转移地址寻址方式。

这里指数据寻址方式。

它是指取得指令操作数地址的方式。

(1)立即寻址方式(2)直接寻址方式(3)寄存器寻址方式(4)寄存器间接寻址方式(5)寄存器相对寻址方式(6)基址变址寻址方式(7)相对基址变址寻址方式1 寄存器间接寻址方式微机原理寄存器间接寻址:操作数的有效地址是寄存器的内容,结合对应段寄存器的内容计算出操作数的物理地址,存储器中对应物理地址的内容即是操作数。

1 寄存器间接寻址方式微机原理例: MOV AX,[BX]假设DS寄存器的内容为 1000HBX寄存器的内容为 3600H那么源操作数的存储器的物理地址为1000H*16+3600H=13600H由于是16位的操作数,所以从13600H、13601H 2个单元读出内容送至AX。

1 寄存器间接寻址方式微机原理2 寄存器相对寻址方式微机原理寄存器相对寻址:操作数的有效地址由SI、DI、BX或BP之一的内容,加上指令中8位或16位相对地址构成。

例:MOV AX,[BX+0D8H]假设DS寄存器的内容为 6000HBX寄存器的内容为 4500H那么源操作数的存储器的物理地址为6000H*16+4500H+0D8H=645D8H有效地址2 寄存器相对寻址方式微机原理基址变址寻址:操作数的有效地址等于一个基址寄存器的内容和一个变址寄存器的内容之和。

基址寄存器:BX、BP 变址寄存器:SI 、DI例: MOV AL,[BX+DI]可以记成 MOV AL,[BX][DI]或记成 MOV AL ,[BX]+[DI]例:MOV AL,[BX] [DI]假设DS寄存器的内容为 6000HBX寄存器的内容为 4500HDI寄存器的内容为 1600H那么源操作数的存储器的物理地址为6000H*16+4500H+1600H=60000H+5B00H=65B00H有效地址3 基址变址寻址方式微机原理相对基址变址寻址:操作数的有效地址等于一个基址寄存器的内容、一个变址寄存器的内容以及一个偏移量之和。

第三章 存储与寻址方式

第三章 存储与寻址方式

第三章 存储结构与寻址方式
(1) 指令组织方式 变长指令存放在32 变长指令存放在32比特宽的存储 32比特宽的存储 器中。 器中。指令的地址根据操作码的 最高有效字节的地址确定。例如 最高有效字节的地址确定。 指令A的地址是000101h 指令A的地址是000101h。 000101h。
地址 000100h~000103h 000104h~000107h B(15~8) 00010Ch~00010Fh E(15~8) 字节0 字节0 字节1 字节1 字节2 字节2 字节3 字节3
字地址 000100h~000101h 字0 MSW 字1 LSW
(2) 若MSW的地址是奇地址,则LSW从MSW的前一个地址存取。 的地址是奇地址, 的前一个地址存取。
000102h~000103h LSW MSW
可通过将MSW的最低有效位(LSB)取反来确定LSW地址。 的最低有效位(LSB)取反来确定LSW地址。 (LSB)取反来确定LSW地址
A(23~16) A(15~8) A(7~0) B(7~0) C(31~24) C(23~16) D(7~0) E (23~16)
000108h~00010Bh C(15~8) C(7~0) E(7~0)
第三章 存储结构与寻址方式
(2) 边界对齐关系 在程序空间中存放指令时不用边界对齐,当读取指令时,需按32 在程序空间中存放指令时不用边界对齐,当读取指令时,需按32 比特边界的偶地址对齐(根据前面指令缓冲单元I 的介绍, 比特边界的偶地址对齐(根据前面指令缓冲单元I 的介绍,指令缓冲队列
第三章 存储结构与寻址方式
2、程序空间的指令结构
C55X DSP支持变长指令,其长度可以是8、16、24、 32、 40、 DSP支持变长指令 其长度可以是8 16、24、 32、 40、 支持变长指令,

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

第三章操作数的寻址方式

第三章操作数的寻址方式

第一节 汇编指令格式
2、单操作数指令
指令助记符 操作数
只有把数据先送入隐含的寄存器中、才能执行此操
作的指令。
例:mul cx
;(ax) ×(cx)→(dx,ax)
3、无操作数指令 指令助记符
例:clc ;0→cf stc ;1→cf
第二节 操作数的寻址方式
一、概述 二、立即数寻址(imm) 三、寄存器寻址(reg) 四、存储器寻址(mem)
如mov ax,varw
mov ax,[varw]
与立即数寻址的区别
在指令中,直接寻址给出操作数的EA,立 即数寻址给出操作数。
用数字书写时,格式不一样。
mov ax,1234h
mov ax,[1234]
2、寄存器间接寻址
操作数在存储器中,操作数的有效地址用si、di、 bx和bp等四个寄存器之一来指定,称这种寻址方式 为寄存器间接寻址方式。
2、寄存器间接寻址
例:假设有指令:mov ax, [bx],在执行时, (ds)=3000h,(bx)=2000h,存储单元32000h的内容是 1234h。问执行指令后,ax的值是什么?
PA=(ds)*16+(bx)=3000h*16+2000h=32000h (bx)=1234h
图示
3、寄存器相对寻址
立即数寻址(imm)
操作数出现在指令中,是指令的一个组成部分。这 样的操作数叫做立即数.以这种指定操作数的方式 就叫做立即数寻址。 执行过程
例:
mov ah, 80h add ax, 1234h mov b1, 12h mov w1, 3456h add d1, 32123456h
其中:b1、w1和d1分别是字节、字和双字内存变量。

第3章TMS320C54XDSP寻址方式09.10

第3章TMS320C54XDSP寻址方式09.10

ARx包含了数据存储器地址 访问后,ARx以循环寻址方式减1 ARx包含了数据存储器地址 访问后,ARx以循环寻址方式减去 AR0 ARx包含了数据存储器地址 访问后,ARx以循环寻址方式加1 ARx包含了数据存储器地址 访问后,ARx以循环寻址方式加上 AR0 ARx加上16位长偏移量作为数据 存储器地址 访问后,ARx中内容不变 ARx加上16位长偏移量作为数据 存储器地址 访问后,ARx中内容加上16位长 偏移量 ARx以循环寻址方式加上16位长 偏移量作为数据存储器地址, 同时修改ARx中内容 以无符号16位长偏移量作为数据 存储器地址 (绝对地址)
19
单操作数 3 间接寻址 y0 a i x i a0 x0 a1 x1 a 2 x 2 a3 x3 编程举例: i 0 .mmregs .bss x, 4 .word 1, 2, 3, 4 STM #a, AR1 STM #x, AR2 LD #0, A LD *AR1+,T MAC *AR2+,A LD *AR1+,T MAC *AR2+,A LD *AR1+,T MAC *AR2+,A LD *AR1,T MAC *AR2,A …..
第一条指令表示将数据存储器中以DATA符号为地址单元中 的数据传送到由辅助寄存器ARl所指向的数据存储单元中去。 DATA代表数据存储单元的地址dmad。 第二条指令表示将程序存储器中以TABLE符号为地址单元中 的数据传送到由辅助寄存器AR2所指向的数据存储单元中去。 TABLE代表程序存储单元的地址pmad。 第三条指令表示将地址为0F2F0H的端口中的数据传送到由 辅助寄存器AR5所指向的数据存储单元中去。
17序号间址类型功能说明arxaddrarxarx包含了数据存储器地址arxaddrarxarxarx1arx包含了数据存储器地址访问后arx中地址减1arxaddrarxarxarx1arx包含了数据存储器地址访问后arx中地址加1arxaddrarx1arxarx1寻址前arx中地址加1arx0baddrarxarxbarxar0arx包含了数据存储器地址访问后arx以位倒序方式减去ar0arx0addrarxarxarxar0arx包含了数据存储器地址访问后arx中减去ar0arx0addrarxarxarxar0arx包含了数据存储器地址访问后arx中加上ar0arx0baddrarxarxbarxar0arx包含了数据存储器地址访问后arx以位倒序方式加上ar0号表示间址32位字时增减为2寻址前变址只用于写操作指令18arxaddrarxarxcircarx1arx包含了数据存储器地址访问后arx以循环寻址方式减1arx0addrarxarxcircarxar0arx包含了数据存储器地址访问后arx以循环寻址方式减去ar010arxaddrarxarxcircarx1arx包含了数据存储器地址访问后arx以循环寻址方式加111arx0addrarxarxcircarxar0arx包含了数据存储器地址访问后arx以循环寻址方式加上ar012arxlkaddrarxlkarxarxarx加上16位长偏移量作为数据存储器地址访问后arx中内容不变13arxlkaddrarxlkarxarxlkarx加上16位长偏移量作为数据存储器地址访问后arx中内容加上16位长偏移量14arxlkaddrcircarxlkarxcircarxlkarx以循环寻址方式加上16位长偏移量作为数据存储器地址同时修改arx中内容15lkaddrlk以无符号16位长偏移量作为数据存储器地址绝对地址lk不允许mmr寻址19间接寻址时

寻址方式

寻址方式

相对寻址是把程序计数器PC的内容加上指令格式中的形式D而形成操作数的有效。程序计数器的内容就是当 前指令的。“相对”寻址,就是相对于当前的指令而言。采用相对寻址方式的好处是程序员无须用指令的绝对编 程,因而所编程序可以放在内存的任何地方。 指令格式:MOV AX,[BX+1200H] 操作数物理 PA=(DS/SS)16H+EA EA=(BX/BP/SI/DI)+(6/8)位偏移量Disp对于BX,SI,DI寄存器来说段寄存器默认为DS,对 于BP来说,段寄存器默认为SS
注意是否跳跃可能受到状态寄存器的操作数的控制,而跳跃到的分为绝对(由标记符直接得到)和相对(对 于当前指令的偏移量),跳跃的结果是当前指令修改PC程序计数器的值,所以下一条指令仍是通过程序计数器PC 给出。
操作数寻址
01
隐含寻址
02
立即寻址
03
直接寻址
04
间接寻址
06
相对
05
寄存器和寄 存器间接
变址
基址

这种类型的指令,不是明显地给出操作数的。而是在指令中隐含着操作数的。例如,单的指令格式,就不明 显地在字段中指出第2操作数的,而是规定累加寄存器AC作为第2操作数。指令格式明显指出的仅是第1操作数的D。 因此,累加寄存器AC对单指令格式来说是隐含。 如:DAA ;
指令的字段指出的不是操作数的,而是操作数本身,这种寻址方式称为立即寻址。立即寻址方式的特点是指 令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。 如:MOV AX,#5678H注意:立即 数只能作为源寄存器的内容,加上变址寄存器的内容而形成操作数的有效。基址寻址的 优点是可以扩大寻址能力,因为与形式相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中 寻址。

第三章 IMB PC机的指令系统和寻址方式

第三章  IMB PC机的指令系统和寻址方式

续看第三章-2 IMB PC机的指令系统和寻址方式的WORD下各类指令 数据传送指令 算术运算指令 逻辑运算和移位指令 串处理指令 控制转移指令 处理机控制指令 2)能够根据不同的寻址方式掌握源操作数和目操作数的物理地 址的确定。
3)能够正确分析给定指令组所完成的功能和运行结果,并能灵 活选用各种指令完成指定的操作。 讲课内容请看: 第三章 IMB PC机的指令系统和寻址方式.doc的WORD文档
IBM-PC汇编语言程序设计 汇编语言程序设计
80X86 X86的指令系统和寻址方式 第3章 80X86的指令系统和寻址方式
本章主要介绍了与数据有关的六种寻址方式及其书写格式,在不同寻址 方式下,源操作数和目的操作数物理地址的确定;有关转移地址的四种寻址 方式的定义和形成,以及各自规定的转移范围。掌握好8086/8088指令系统是 学习汇编语言程序设计的根本基础。指令按其不同的功能分成六大类,每一 条汇编语言符号指令均对应有机器指令,因此对指令的定义和组成、操作码 和操作数在指令中作用的掌握是十分必要的。学习指令系统的重点是要掌握 好寻址方式以及相关指令执行后对状态寄存器PSW各标志位的影响。为后面 的程序设计打下扎实的基础。

微机原理第3章习题与答案解析

微机原理第3章习题与答案解析

习题一、选择题1.寻址方式指出了操作数的地点,一般来说_______。

A.立刻寻址给出了操作数的地点B.寄存器直接寻址的操作数在寄存器内,而指令给出了储存器C.直接寻址直接给出了操作数自己D.寄存器直接寻址的操作数包括在寄存器内,由指令指定寄存器的名称答案: D2.寄存器寻址方式中,操作数在_________。

A. 通用寄存器B. 货仓C.内存单元D.段寄存器答案: A3.寄存器间接寻址方式中,操作数在_________ 。

A. 通用寄存器B. 货仓C.内存单元D.段寄存器答案: C4.以下指令中的非法指令是 ______。

A. MOV [SI+BX], AXB.MOV CL, 280C.MOV [0260H], 2346HD.MOV BX, [BX]答案: B5.设 (SP)=0100H ,(SS)= 2000H ,履行 PUSH BP 指令后,栈顶的物理地点是 _____。

A.200FEHB.0102HC. 20102HD.00FEH答案: A6.指令 LEA BX, TAB 履行后,其结果是 ______。

A. 将 TAB 中内容送 BXB.将 TAB 的段基址送 BXC.将 TAB 的偏移地点送 BXD.将 TAB 所指单元的储存内容送 BX答案: C7.以下正确的指令格式有______。

A.MOV [BX], 1B.MOV AL, 0345HC.MOV ES: PTR[CX], 3D. XLAT答案: D8.设 (AX)=C544HA.CF=0,OF=0 ,在履行指令B.CF=0,OF=1ADD AH,AL 以后,C.CF=1,OF=0______。

D,CF=1,OF=1答案: C9.若 AL 、 BL 再履行 DAA 中是压缩BCD后, (AL)=_____数,且在履行。

ADD AL, BL 以后,(AL)=0CH , CF=1 ,AF=0 。

A.02HB.12HC.62HD.72H 答案: B10.履行以下程序后AL 的内容为 _____。

第3章 8086(8088)CPU指令系统

第3章 8086(8088)CPU指令系统
数据段 BX + SI 10H
20H 00H
00H 34H 12H
3000H:0000H
注: ◆基址因子BP访问默认为堆栈段 ◆不能同时取两个基址因子;也不 能同时去两个变址因子
16
+
3000H:3000H
AH
AL
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
●存储器寻址之相对基址加变址寻址(Base
9
第3章 8086/8088CPU指令系统
3.1.3 操作数寻址方式
4.1操作数寻址方式
所谓操作数的寻址方式,是在指令格式中怎样有效的表示出操 作数的存放位臵,CPU在执行该指令时,按照指令格式中的表示找 到并对数据进行存取。 1.立即寻址(Immediate Addressing) 立即寻址中的操作数作为指令的一 部分存放在代码段中,在取指阶段数据 随指令一起被取到CPU,这种数据在指 令格式中的直接表现为常数。 如:MOV AL,34H

2
第3章 8086/8088CPU指令系统
汇编语言指令或符号指令:用字母和其它一些符 号组成的“助记符”与操作数等表示的指令称为汇编 语言指令或符号指令。 例如: MOV AX, BX ; AX←BX 而其二进制代码(机器代码)为89D8H,就是 1000 1001 1101 1000 B 不易理解,不易记忆。助记符是MOV。
操作码
操作数
4
第3章 8086/8088CPU指令系统
3.1.1 8086/8088指令格式
4.1操作数寻址方式
8086/8088机器指令格式通常1-6个字节组成。典型的指令格式 由2个字节组成,如下图所示。
操作码 D W MOD REG R/M

第3讲_1 寻址方式

第3讲_1 寻址方式
15
⑤基址变址寻址(2)
基址变址寻址的格式: [BX+SI+位移量] [BX+DI+位移量] [BP+SI+ [BP+SI+位移量] [BP+DI+位移量] ] [BP+DI+ ] [BX+SI] [BX+DI] [BP+SI] [BP+DI] 错误的写法: [BX+BP] [SI+DI] 位移量的范围: 补码表示的8位或16位 (-128~+127,-32768~+32767)
3.3 寻址方式
3.3.1 3.3.2 3.3.4 3.3.5 操作数的种类 寻址方式 段更换和段跨越 有效地址的计算时间
1
3.3.1 操作数的种类
(1) 立即操作数: 指令要操作的数据在指令代码中, MOV AL,10H ;指令码B010. (2) 存储器操作数:指令要操作的数据在存储器(内 存)中, MOV AL,[1234H]; 指令码A03412. (3)寄存器操作数:指令要操作的数据在CPU的寄存 器中, MOV AL,BL; 指令码88D8. (4)I/O端口操作数, IN AL,20H; 指令码E420.
假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指 令在执行完后的结果分别是什 么? ① MOV AX,[BX+100H] ② MOV AX,[BP+100H]
19
寻址方式中不能出现的情况
立即数只能用于源操作数寻址 除源操作数为立即寻址方式外,其中一个操 作数的寻址方式必须是寄存器直接寻址,即 两个操作数不能同时为存储器操作数 例如 MOV data1,12h MOV data1,data2 错

《微机原理与接口技术》(第3版_汪吉鹏)电子教案3

《微机原理与接口技术》(第3版_汪吉鹏)电子教案3

说明:
OPS → OPD
(1)MOV指令不允许在两个存储单元之间直接传送数据。 (2)MOV指令不允许在两个段寄存器之间直接传送数据。 (3)MOV指令不允许用立即数直接为段寄存器赋值。 (4)MOV指令不影响标志位。
MOV指令传送信息的形式:
指令系统
(1)寄存器到寄存器,如: MOV AX,BX (2)立即数到寄存器,如: MOV AX, 1234H (3)立即数到存储单元,但必须用PRT确定操作数类型
汇编格式为:段寄存器名:偏移地址 功能:冒号“:”之前的段寄存器指明了操作数所在段。
指令系统
举例说明:
例如:
(1)MOV AX,DS:[BP]
(2)MOV AX,ES:[BX]
(3)MOV BX,SS:[SI]
其中,“DS:”、“ES:”、“SS:”均为跨段前缀。此时,默认不起作用。 所
以,操作数的物理地址由“:”前面的段寄存器内容左移4位与偏移地址EA相加 而
(21300H)=5678H。
执行后:AX=5678H,BX、DI,DS。(21300H)内容不变。
8.段超越问题
指令系统
以上七种寻址方式中,除立即数寻址方式和寄存器寻址方式外,其它各种 寻址方式的操作数都在除代码段以外的存储区中。通常,若选用寄存器BP 作间址寄存器、变址寄存器或基址寄存器,只要BP出现在方括号之内, 则操作数在当前堆栈段,此时,操作数的物理地址PA由堆栈段寄存器SS 的内容左移4位与偏移地址EA相加形成。这是8086的基本约定,即默认状 态。当要否定默认状态,到非约定段寻找操作数时,必须用跨越段前缀 指明操作数所在段的段寄存名。
注:该操作数可以是8位或者16位二进制补码表示的常数。
说明:指令的下一字单元的内容为操作数n, n也称为 立即操作数。

10种寻址方式的定义

10种寻址方式的定义

10种寻址方式的定义寻址方式是指计算机系统用来定位并访问存储单元或数据的方式。

以下是常见的一些寻址方式:1.直接寻址(Direct Addressing):直接使用给定地址或指针来访问内存中的数据或指令。

2.间接寻址(Indirect Addressing):使用存储在一个地址或寄存器中的地址来访问数据,间接地定位到实际的数据存储位置。

3.相对寻址(Relative Addressing):使用相对于当前指令或指针的地址偏移量来定位数据,常用于访问数组或其他数据结构的元素。

4.基址寻址(Base Addressing):使用一个基址寄存器和一个偏移量来计算地址,定位到存储单元。

5.索引寻址(Index Addressing):通过一个索引寄存器的值和一个基地址来计算地址,以定位到数组或表中的元素。

6.变址寻址(Displacement Addressing):通过将寄存器中的地址与立即数相加或相减来计算目标地址。

7.间接相对寻址(Indirect Relative Addressing):通过使用相对地址来访问存储单元,但是该地址指向的是另一个存储位置的地址。

8.堆栈寻址(Stack Addressing):使用栈指针来访问栈中的数据,通常用于函数调用和返回时保存和恢复数据。

9.寄存器寻址(Register Addressing):直接使用CPU内部的寄存器地址来访问数据或指令。

10.变量寻址(Variable Addressing):在编程语言中,通过使用变量名来访问和操作变量的值。

这些寻址方式在不同的计算机体系结构和编程范式中有着不同的应用和特点,用于在计算机系统中有效地定位和访问数据。

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

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

- 8-
⑵ 寄存器间接寻址





若操作数在存储器中,存储单元有效地址被放在基址寄存器 BX、BP或变址寄存器SI、DI中,则称为寄存器间接寻址。 寄存器间接寻址方式在汇编格式中表示为: [基址寄存器名或变址寄存器名] 例如: MOV AX,[BX] ;物理地址=DS×16+BX MOV AL,[BP] ;物理地址=SS×16+BP MOV AX,CS:[DI] ;物理地址=CS×16+DI 其中“[BP]”、“[BX]”、“[DI]”都是寄存器间接寻址方式。
-11-
例如,TABLE是数据段中定义的一个变量名,假设它在数据段中的偏移地址为 0100H,有指令: MOV AX,TABLE[SI] 若(DS)=2000H,(SI)=00A0H,(201A0H)=12H,(201A1H)=34H, 则源操作数20位物理地址=20000H+0100H+00A0H=2000H+01A0H=201A0H 操作的示意图如图3.9所示:
3.1.4 指令的执行
要执行的程序段的指令,均保存在存储器中, 当计算机需要执行一条指令时,首先产生这条指令 的相应地址,并根据地址号打开相应的存储单元, 取出指令代码,CPU根据指令代码的要求以及指令 中的操作数,去行相应的操作。
- 4-
3.2 8086寻址方式
3.2.1 数据寻址方式
1. 立即数寻址 操作数直接存放在指令中,紧跟在指令操作码之后。这样的数称为 立即数,相应的寻址方式称为立即寻址方式。这种寻址方式在汇编语言 格式中表示为: 数字表达式 这个数字表达式的值可以是一个8位无符号整数,也可以是一个16 位无符号整数,但不可以为小数。 例如: MOV AX,251 ;将十进制数251送入寄存器AX,“251”是立即数 MOV AL,‘5’ ;将5的ASCII码送入寄存器AL,其中‘5’是立即 数 MOV AL,0E8H ;将8位立即数E8H送入寄存器AL MOV AX,2346H ;将16位立即数2346H送入寄存器AX 可以看到,立即数寻址方式主要用来给寄存器或存储单元赋值,因 此这种寻址方式不能用于单操作数指令;若用于双操作数指令,也只能 用于源操作数字段,不能用于目标操作数字段。

微型计算机原理第3章_1_寻址方式

微型计算机原理第3章_1_寻址方式

8086/8088的寻址方式 第三章 8086/8088的寻址方式 和指令系统主 讲 : 乔 瑞 萍学习要点数据寻址的8种寻址方式,I/O端口寻址的 2种寻址方式 程序转移地址的4种寻址方式 掌握8086指令(操作码助记符,可以使用 的寻址方式) 了解80386新增寻址方式和指令3.1 计算机指令格式1、汇编指令格式: OP.C OP.D (Operating Code、Operating Data) 注:OP.C指操作码助记符 OP.D指操作数部分,又称地址码。

(实际上的OP.C、OP.D都应该是二进制数,即 机器码。

)2、根据OP.D中地址的个数,指令可分为: 1)零地址指令:只有OP.C,没有OP.D。

2)一地址指令:单OP.D。

3)二地址指令:双OP.D。

4)三地址指令:三OP.D。

3. 指令长度与字长的关系指令长度主要取决于OP.C的长度 OP.D地址的长度 OP.D地址的个数几个概念: 1)指令的长度指其机器码的长度,是字节的简 单倍数; 2)现代计算机广泛采用变字长指令格式:并非 所有指令的长度一致。

3)指令长度与其执行时间没有必然的联系,短 指令也可能执行时间长。

4)指令字长与内存的编址单位及CPU的机器字 长有关。

3.3 指令格式1、80x86指令编码格式(P81~83) 指令码是指每条指令所对应的二进制 编码,即机器码,这里只是要求大家了 解一下汇编指令如何翻译成机器码的, 即了解编译程序的工作,自学,不做要 求。

3.2 80X86的寻址方式 (addressing modes)P70,指令语句由操作码和操作数两部 分构成,操作码表示计算机执行什么操 作;操作数可能指明了参与操作的数本 身,或规定了操作数的地址。

8086/8088的寻址方式分为两类:数据寻址方式 转移地址寻址方式1)数据寻址方式(8种)(以通用传送指令MOV AX,SRC为例)定义:指令中用以说明或形成操作数有效地址 (Effective Adress)的方法,称为操作数的寻址 方式。

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

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

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 中。

第3章_1 寻址方式

第3章_1 寻址方式

16位不允许使用 、CX、DX存放 位不允许使用AX、 、 存放 存放EA 位不允许使用 × MOV AX, [CX]
3.2 寻址方式 .
存储器寻址
例1 MOV AX,[BX] , (DS)=2000H,(SS)=1000H,(BP)=120H ) , ) , ) (BX)=100H,(AX)=1234H,(20100H)=5678H ) , ) , ) 偏移地址EA=(BX)=100H ( ) 偏移地址 物理地址PA= (DS) × 16 +(BX)=20000H+100H=20100H 物理地址 ) ( ) 内 存 (DS) 2000H BH EA=(BX) 01H 2000H 20100H BL 00H 0H ×16
AL 05H
64H
...
AH 30H
AL 64H
... 操作码 指 令 代 码 段
05H
30H
...
...

MOV MOV MOV
AL,05H , AX,3064H , 3,AL , MOV AH, 3064H
立即数不能做目的操作数 源、目的操作数的字长一致 目的操作数的字长一致
3.2 寻址方式 .
(AX) = 5678H
AH AL
0CH 52H
56H
78H 20100 78H 20101 56H
+
PA
3.2 寻址方式 .
存储器寻址 3. 基址寻址
为:基址寄存器+位移量 基址寄存器 位移量 •16位偏移地址 位偏移地址EA 位偏移地址 数据段( ) 数据段(DS)EA=BX+8或16位移量 或 位移量 堆栈段( ) 堆栈段(SS)EA=BP+8或16位移量 或 位移量 MOV MOV MOV MOV AX, [BX] ;源操作数在数据段 AX, [BX+3] AX, 3[BX] [BP],DI ;目的操作数在堆栈段 ,

第三章(寻址方式)

第三章(寻址方式)
MOV AX , [ BX ] MOV AX , ES: [ BX ] MOV AX , [ BP ] PA = 16d × ( DS ) + ( BX ) PA = 16d × ( ES ) + ( BX ) PA = 16d × ( SS ) + ( BP )
* 不允许使用AX、CX、DX 存放 EA MOV AX , [ CX ] * SRC 和 DST 的字长一致 MOV DL , [ BX ] MOV DX , [ BX ] * 适于数组、字符串、表格的处理
(3) 直接寻址方式 * —— 有效地址 EA 由指令直接给出
例:MOV AX , [ 2000H ] EA = 2000H , 假设 (DS) = 3000H , 那么 PA = 32000HAH ALFra bibliotek3050
32000
50H 30H (AX) = 3050H
* 隐含的段为数据段 DS * 可使用段跨越前缀
loop next
(3) 寄存器相对寻址
mov cx, count mov si, 0 next : mov dl, string [ si ] mov ah, 2 int 21h inc si loop next
; mov dl, [ string + si ] ; 显示一个字符 ; mov cx, 17
访问存储器的方式
取指令 堆栈操作 一般数据访问 BP 作为基址的寻址 串操作的源操作数 串操作的目的操作数
默认的 段寄存器
CS SS DS SS DS ES
可跨越的 段寄存器
无 无 CS ES SS CS DS ES CS ES SS 无
偏移地址
IP SP 有效地址 EA BP SI DI

第3章C54x的寻址方式

第3章C54x的寻址方式
3.1.4 直接寻址
DP地址的范围是从0~511(29-1),将存储器分成 512页。
7位dmad范围是从0~127,每页有128个可以访 问的单元。
以DP为基准的直接寻址是由DP值确定是512页中 的哪一页,由dmad确定是该页中的哪一个单元。
SP可以指向存储器中的任意一个地址。dmad可
以指向当前页中具体的单元,从而允许访问存储器
A 立即数的数值形式:
程序存储
① 短立即数。3、5、8、9位,单字指器令;
② 长立即数。16位,双字指令。 操作码 特点:指令中含有一个固定的立即数立,即运数行速度 较快,但需占用程序存储空间,并且数值不F1能80改变。
用途:用于表示常数或对寄存器初始化。
2021/4/22
DSP技术及应用
立即数寻址
❖ AR0-AR7的内容相当灵活,可以装入立即数, 加上立即数,减去立即数,也可以从数据存 储器中装入地址,还可以作以下的变址寻址
2021/4/22
DSP技术及应用
2021/4/22
DSP技术及应用
2021/4/22
DSP技术及应用
❖ 将该AR的内容加1或减1,然后再寻址(循环 常用)。
❖ 将该AR的内容加或减AR0的内容,然后再寻 址
❖ 将该AR的内容逆向进位加或减AR0的内容, 然后再寻址
2021/4/22
DSP技术及应用
寻址方式:间接寻址
ADD *,8,A ;将当前辅助寄存 器所指的地址里的数据,左移8-bit 后加给AccA
存储器映像 :用来改变映像寄存器,但不影响DP或SP的值 寄存器寻址 堆栈寻址 :用来管理系统堆栈中的操作
2021/4/22
DSP技术及应用
第3章 TMS320C54x的指令系 统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任意一个16位通用寄存器 AX, BX, CX, DX, SI, DI, BP, SP 代表r8或r16
seg
2016/4/11
段寄存器CS、DS、ES、SS
30
操作数的表达符号(1)
操作数符号 m8 m16 mem dest 含义(寻址方式)
一个8位存储器操作数单元(包括所 有主存寻址方式)
一个16位存储器操作数单元(包括 所有主存寻址方式) 代表m8或m16 目的操作数 源操作数
指令的助记符格式
标号:操作码 操作数1,操作数2 ;注释
标号代表该条指令的存放地址。它为程序分支、 循环、跳转提供了转移目标地址。标号与符号 指令之间用冒号“:”做间隔符。 操作数2,常被称为源操作数src,它表示参与 指令操作的一个对象 操作数1,常被称为目的操作数dest,它不仅 可以作为指令操作的一个对象,还可以用来存 放指令操作的结果 分号后的内容是对指令的解释
源操作数与目的操作数应该位数相同。
2016/4/11
16
3、存储器寻址方式
操作数在主存储器中,用主存地址表示 物理地址 =段基址×16+段内偏移量 程序设计时,8088采用逻辑地址表示主存地址
段地址在默认的或用段超越前缀指定的段寄存器中 指令中只需给出操作数的偏移地址(有效地址EA)
2016/4/11 28
相对寻址方式中的位移量
在寄存器相对和相对基址变址寻址方式中,其 位移量不仅可用常量表示,也可用符号表示 这个符号可以是变量名,例如WVAR变量,而 且支持多种表达形式
MOV AX, [DI+WVAR] ; 等同于 MOV AX, WVAR[DI] MOV AX,[BX+SI+WVAR] 等同于 MOV AX, [BX+SI+WVAR]
2016/4/11 27
存储器寻址方式中的变量
变量指示内存中的数据,变量名具有地址属性。存储器
寻找方式中经常采用变量形式 变量的定义 WVAR DW 1234H ;定义16位变量WVAR,具有初值1234H ;假设其偏移地址为10H 单独引用变量名是直接寻址方式 MOV AX,WVAR ;指令功能:(AX)=1234H ;等同于 MOV AX,[0010H] 相对寻址方式中,变量名表示其偏移地址,相当于位移 量 MOV AX, [DI+WVAR] ;= MOV AX,WVAR[DI];等同 于MOV AX,[DI+0010H]
2016/4/11
;AX←DS:[BX+SI] ;AX←DS:[BX+SI]
演示
24
(5)相对基址变址寻址方式
有效地址是基址寄存器(BX/BP)、变址寄存 器(SI/DI)与一个8位或16位位移量之和: 有效地址=BX/BP+SI/DI+8/16位位移量 段地址对应BX基址寄存器默认是DS,对应BP 基址寄存器默认是SS;可用段超越前缀改变 MOV AX, [BX+DI+6] ;AX←DS:[BX+DI+6] MOV AX, 6[BX+DI] MOV AX, 6[BX][DI]
名字 伪指令助记符 参数,参数,…… ;注释
2016/4/11
38
演示
2016/4/11 25
4、隐含寻址
用指令约定用方式寻址操作数,但指令中没有 操作数的地址或仅有形式地址。 几种常见的隐含寻址的场合:
串操作 查表操作 乘法/除法操作 位扩展操作 ……
2016/4/11
26
存储器寻址总结
[BX/BP]+[SI/DI]+16/8位偏移量 (1) (2) (3) EA中只要出现BP,其约定段为SS;不出现BP,约定 段为DS,段超越除外; 书写格式:MOV AX, 5[BX][SI] [BX+SI+5] 5[BX+SI] 约定段与段超越:P43,表2.3 格式: MOV AL, CS:[2000H] CS: MOV AL, [2000H]
8086设计了多种存储器寻址方式
1、直接寻址方式 2、寄存器间接寻址方式 3、寄存器相对寻址方式(基址/变址寻址) 4、基址变址寻址方式 5、相对基址变址寻址方式
2016/4/11 17
(1)直接寻址方式
有效地址在指令中直接给出 默认的段地址在DS段寄存器,可使用段超越前 缀改变 用方括号包含有效地址,表达存储单元的内容
2016/4/11
;AX←0102H
演示 13
1、立即数寻址方式
规定:
(1)立即数只能为整数。 (2)立即数只能作为源操作数,不能作为目的操作数。 例:MOV AX, 1A90H MOV AL, 80H
2016/4/11
14
2、寄存器寻址方式
操作数存放在CPU的内部寄存器reg中,而寄 存器名由指令指出:
指令中的操作数:
可以是一个具体的数值 可以是存放数据的寄存器 或指明数据在主存位置的存储器地址
2016/4/11
7
指令格式以及组成部分 操作数的寻址方式 转移地址寻址
2016/4/11
8
寻址方式
指令系统设计了操作数的多种来源
寻找操作数的过程就是操作数的寻址
把寻找操作数的方式叫Байду номын сангаас(操作数)寻址方式
MOV AX, [2000H]
;AX←DS:[2000H]
MOV AX, ES: [2000H] ;AX←ES:[2000H] ES: MOV AX, [2000H] ;AX←ES:[2000H]
演示 2016/4/11 18
(1)直接寻址方式
有效地址EA可以变量名的形式给出。 例:VALUE DB 12H MOV AL, [VALUE] MOV AL, VALUE (AL)=12H
操作数部分—REG编码(REG名), 寻址方式—寄存器寻址。
2016/4/11
10
寻址方式
3. 在内存的数据区中 操作数部分—操作数的地址:内存单元地址。 (段内偏移量,有效地址EA) 物理地址 =段基址×16+段内偏移量 段内偏移量可以由几个部分组成,也称为有效 地址EA。 EA=[基址寄存器]+[变址寄存器]+偏移量
目标地址同时替换CS/IP的值 目标地址(段地址:偏移地址)在指令中给出 目标地址以立即地址或符号地址给出 例如:
JMP F000H:005BH
2016/4/11
36
(4)段间直接寻址
目标地址同时替换CS/IP的值 目标地址(段地址:偏移地址)只能存放在存储 器中(4个连续的存储单元) 例如: JMP DWORD PTR [BX]
理解操作数的寻址方式是理解指令功能的前提
操作数采取哪一种寻址方式
会影响处理器执行指令的速度和效率 对程序设计很重要
2016/4/11 9
寻址方式
操作数的来源有三种可能:
1. 包含在指令中,给出具体数值。
这种操作数— 称为立即数,
这种寻址方式—称为立即寻址。
2. 在CPU的某个寄存器(REG)中。
src
2016/4/11
31
内容提要
指令格式以及组成部分 操作数的寻址方式 转移地址寻址
2016/4/11
32
转移地址寻址
改变IP/CS:IP的方式 确定下面一条指令的地址 通常由转移指令完成
跳转指令 调用与返回指令 条件转移指令
2016/4/11
33
(1)段内直接寻址
只改变IP的值:目标地址替换原来的IP的值 转移的目标地址(偏移地址)直接出现在指令中 目标地址通常以符号地址或立即数地址给出 例如: JMP 2000H ; CALL PGMB2D ;
8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 4个段寄存器seg: CS、DS、SS、ES
寄存器名表示其内容(操作数)
MOV AX, BX
2016/4/11
;AX←BX
演示 15
2、寄存器寻址方式
例:MOV DS, AX MOV AH, BL 注意:
等同于 MOV AX, WVAR[BX+SI] 等同于 MOV AX, WVAR[BX][SI]
2016/4/11 29
操作数的表达符号(1)
操作数符号 含义(寻址方式)
i8
i16 imm r8 r16 reg
一个8位立即数
一个16位立即数 代表i8或i16
任意一个8位通用寄存器 AH, AL, BH, BL, CH, CL, DH, DL
2016/4/11
3
指令格式
操作码 操作数
指令由操作码和操作数两部分组成
操作码说明计算机要执行哪种操作,如传送、 运算、移位、跳转等操作,它是指令中不可缺少 的组成部分 操作数是指令执行的参与者,即各种操作的对 象 有些指令不需要操作数,通常的指令都有一个 或两个操作数.
2016/4/11 4
2016/4/11
37
汇编语言的两种语句格式
⑴执行性语句——执行性语句用于表达处理器 指令(也称为硬指令),汇编后对应一条指令代码。 由处理器指令组成的代码序列是程序设计的主体
标号: 硬指令助记符 操作数,操作数 ;注释
⑵说明性语句——说明性语句用于表达伪指令, 指示源程序如何汇编、变量怎样定义、过程怎么 设置等
(4)基址加变址寻址方式
有效地址由基址寄存器(BX或BP)的内容加上变 址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI 段地址对应BX基址寄存器默认是DS,对应BP 基址寄存器默认是SS;可用段超越前缀改变 MOV AX, [BX+SI] MOV AX, [BX][SI]
相关文档
最新文档