4种寻址方式
第4章_计算机指令构成和寻址方式

Pentium指令系统所支持的数据类型:
1. 整数:补码表示的二进制数,字节(8位)、字(16位)和双字(32 位)3种。
2. 序数:无符号二进制数,字节(8位)、字(16位)和双字(32位)3 种。
3. UBCD数:未压缩的(unpacked)BCD数,数字值0到9,每个数字 占一个字节。 4. BCD数:压缩的BCD数,一个字节可以表示2位数字,从00到99。 5. 指针:32位有效地址,指出段内的地址偏移量。
二地址指令
一地址指令 零地址指令
add r1,r2
add r1 add
r1←r1+r2
A←A+r1 T←T+(T-1)
寻址方式:
寻址方式指的是如何描述一个操作数或下一条指令的地址, 即确定操作数或下一条指令地址的方法。常用的寻址方式有 立即数寻址、寄存器寻址、直接寻址、间接寻址、相对寻址 等。
指令长度: 指令长度有固定长度和可变长度两种。RISC处理机一般采用 固定长度的指令格式,例如SUN SPARC的指令长度均为32位, 与数据字长相同。定长指令格式的好处在于指令译码和流水 线执行比较容易。Pentium处理机的指令长度是可变的,常用 指令用较少的二进制位表示,不常用的指令使用较多的位表 示,它的好处是可以缩短指令的平均长度。 指令系统设计中的问题: 指令种类和寻址方式越多越好,还是越少越好?指令种类越 多、寻址方式越复杂,说明处理机的功能越强。但同时,实 现一条复杂指令需要较多的逻辑门电路,执行一条复杂指令 所化费的时间也比较长,而且处理机的设计复杂度提高、设 计周期增长,并且复杂指令的使用频率较低。指令种类少、 寻址方式简单的好处是可以提高时钟频率,缩短指令周期, 从而很快完成一条指令的执行。但并不是越简单越好,指令 太简单,完成一次比较复杂的操作往往需要一长串的简单指 令序列,也会使执行时间变长,同时也使程序变长。
80C51单片机指令系统的7种寻址方式

80C51单片机指令系统的7种寻址方式寻址方式就是寻找操作数或指令地址的方式。
寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。
寻址方式是计算机性能的具体表达,也是编写汇编语言程序的根底,必须非***悉并灵活运用。
对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。
若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。
80C51单片机指令系统共有7种寻址方式,包括:立即寻址、存放器寻址、直接寻址、存放器间接寻址、变址寻址、相对寻址和位寻址。
现以7条指令为例说明这7种寻址方式。
(1)立即寻址:将操作数直接写在指令中。
如指令①:MOV A,#3AH 执行的操作是将立即数3AH送到累加器A中,因为指令中有立即数3AH,所以称此寻址方式为立即寻址。
注意,立即数前面必须加“#”号,以区别立即数和直接寻址。
该指令的执行过程如图1所示。
图1 立即数寻址示意图(2)存放器寻址:是指将指令操作数存放于存放器中,存放器包括工作存放器R0~R7、累加器A、通用存放器B、地址存放器DPTR等。
如指令②:MOV A,R0 ;(A)←(R0)该指令将存放器R0中的数送入累加器A中,因为指令源操作数为存放器R0,所以称此寻址方式为存放器寻址。
如果程序状态存放器PSW的RS1RS0=00(选中第0组工作存放器,对应地址为(00H~07H),设RAM区00H 的内容为20H,则执行MOV A,R0指令后,累加器A中的内容变为20H。
该指令执行过程如图2所示。
图2 存放器寻址示意图(3)直接寻址:是指把存放操作数的内存单元的地址直接写在指令中。
在80C51单片机中可以直接寻址的存储器主要有内部RAM区和特殊功能存放器SFR区。
如指令③:MOV A,30H ;(A)←(30H)该指令将地址为30H的存储单元的内容送入累加器A,因为指令源操作数为地址直接给出的存储单元,故称此寻址方式为直接寻址。
七种寻址方式

七种寻址⽅式在存储器中,操作数和指令字写⼊或读出的⽅式,有地址指定的⽅式,相联存储⽅式和堆栈存取⽅式,⼏乎所有的计算机,在内存中都采⽤地址指定⽅式,当采⽤地址指定⽅式的时候,形成操作数或指令地址的⽅式称为寻址⽅式,寻址⽅式分为两类,即为指令寻址⽅式和数据寻址⽅式,在传统⽅式设计的计算机中,内存中指令的寻址与数据的寻址是交替进⾏的⽴即数寻址⽅式:将操作数放在操作码的后⾯。
⼀起放在指令代码段中,在程序运⾏的过程中,程序直接调⽤该操作数,⽽不⽤到其他的地址的单元中去取得相应的操作数。
上述中的操作数也被称为⽴即数。
可以有不同的进制寄存器寻址⽅式:指令所要的操作数已经存储在某个寄存器中,或把⽬标操作数存⼊寄存器中,把在指令中指出所⽤的寄存器(寄存器助忆符)的寻址⽅式称为寄存器寻址⽅式寄存器寻址⽅式是⼀种简单快捷的寻址⽅式,源和⽬的操作数都可以是寄存器直接寻址⽅式:在指令格式的地址字段中直接指出操作数在内存中的地址id。
⼀般情况下数据放在数据段中,所以物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使⽤段超越前缀,那么操作数可存放在其他段直接寻址⽅式常⽤于处理内存单元的数据,操作数是内存变量的值,指令中直接给出操作数地址(DIR)的寻址⽅式称为直接寻址⽅式,寻址的对象为:1内存数据存储器,指令中直接地址表⽰2、特殊功能的寄存器SFR,在指令中⽤寄存器名称表⽰寄存器间接寻址⽅式:是指将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数,MCS-51规定R0或R1为间接寻址寄存器,他可寻址内部RAM低地位的12个字节单元内容,还可以采⽤数据指针(DPTR)作为直接寻址寄存器,寻址外部数据存储器的64k字节空间,但不能⽤本寻址⽅式寻址特殊功能寄存器寄存器的间接寻址需要以寄存器符号的形式来表⽰,并且在寄存器名称前⾯加上间接寻址符号“@”。
例如指令MOV A,@RO就使⽤了寄存器间接寻址⽅式,这条指令的意义就是将地址指针RO指向内部数据存储单元中的数据送⼊累加器A中。
第2章寻址方式

第十九页,编辑于星期二:十九点 四十一分。
寄存器间接寻址方式举例 1
例9. MOV AX,[BX]
; AX ? (DS:[BX] )
注意它与寄存器寻址方式在形式上的区别:
MOV AX ,BX
;(AX) ? (BX)
源操作数的物理地址为:
PA = (DS) × 10H +(BX) 若(DS)= 3000H,(BX)= 78H, (30078H)= 12H 则:PA =3000H ×10H+78H =30078H
找到操作数 ;
? 数据寻址方式以 MOV DST ,SRC 为例讨论。
7
第六页,编辑于星期二:十九点 四十一分。
计算机中操作数保存的地点
1.指令中 2.CPU 的寄存器中 3.存储器中 4.I/O接口寄存器中
4. 在访问I/O 的专用 指令中指定接口中寄 存器的端口号。
1.由程序员直接写在指令中
2. 在指令中指定寄存器名
地址是什么。。。
?操作码 域:指定要完成的操作。
?操作数 2:源操作数 ,表示参与指令操作的一个对象;
?操作数 1:目的操作数 ,它不仅可以作为指令操作的一
个对象,还可以用来存放指令操作的结果。
?分号后的内容是对指令的解释。
例: MOV AH , 10
; (AH)= 10
2
第二页,编辑于星期二:十九点 四十一分。
即用寄存器存放源或目的操作数。
? 存储器操作数
存储器操作数是指操作数存放在主存储器中。
因此在汇编指令中应给出的是存储器的地址。
5
第四页,编辑于星期二:十九点 四十一分。
指令操作数的表达
? r8 —— 任意一个 8位通用寄存器 ? r16—— 任意一个 16位通用寄存器 ? reg—— 代表r8或r16 ? seg—— 段寄存器 CS/DS/ES/SS ? m8 —— 一个 8位存储器操作数单元 ? m16—— 一个16位存储器操作数单元 ? mem—— 代表 m8或m16 ? i8 —— 一个 8位立即数 ? i16 —— 一个 16位立即数 ? imm —— 代表i8或 i16 ? dst /src —— 目的操作数 / 源操作数
七种寻址方式

程序计数器 地址寄存器 外部地址总线AB 外部地址总线AB
0002H PC= 0000H 0001H
0000H
内 部 数 据 总 线
(PC) (PC) (PC)
执行过程
运算器 ①② 累加器A 累加器A 存 储 器
0002H 0001H 0 0 0 0 1 0 0 1 0000H 0 1 1 1 0 1 0 0
…Leabharlann MOVC A,@A+DPTR执行示意图 ,@A+DPTR执行示意图
…
6.位寻址方式 MCS-51有位处理功能 可以对数据位进行操作,例如: 有位处理功能, MCS-51有位处理功能,可以对数据位进行操作,例如: MOV C,40H C, 是把位40H的值送到进位位C 40H的值送到进位位 是把位40H的值送到进位位C。 寻址范围包括: 寻址范围包括: 内部RAM中的位寻址区。位有两种表示方法,例如, RAM中的位寻址区 (1)内部RAM中的位寻址区。位有两种表示方法,例如, 40H;另一种是单元地址加上位,例如,(28H).0, 40H;另一种是单元地址加上位,例如,(28H).0,指 的是28H单元中的最低位。它们是等价的。 28H单元中的最低位 的是28H单元中的最低位。它们是等价的。 (2)特殊功能寄存器中的可寻址位 可寻址位在指令中有如下4种的表示方法: 可寻址位在指令中有如下4种的表示方法: 直接使用位地址。例如PSW.5的位地址为0D5H PSW.5的位地址为0D5H。 a. 直接使用位地址。例如PSW.5的位地址为0D5H。
程序存储区 1020 EA 12 R2
片内RAM区 4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: 操作数直接以单元地址的形式给出: A, MOV A,40H 寻址范围: 寻址范围: 内部RAM 128个单元 RAM的 (1) 内部RAM的128个单元 特殊功能寄存器。除了以单元地址的形式外, (2) 特殊功能寄存器。除了以单元地址的形式外, 可用寄存器符号的形式给出 例如: 的形式给出。 还可用寄存器符号的形式给出。例如: A, A,P0是等价的 是等价的。 MOV A,80H 与 MOV A,P0是等价的。 直接寻址方式是访问特殊功能寄存器的唯一寻址方式
计算机学科专业基础综合组成原理-指令系统(三)

计算机学科专业基础综合组成原理-指令系统(三)(总分:151.00,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:29,分数:58.00)1.指令系统中采用不同寻址方式的目的主要是______。
∙ A.可降低编程难度∙ B.可降低指令的译码难度∙ C.缩短指令字长,扩大寻址空间,提高编程灵活性∙ D.以上均不正确(分数:2.00)A.B.C. √D.解析:[解析] 首先A和B错得比较离谱,既然采用了更多不同的寻址方式,是要付出一定代价的,怎么可能反而降低编程难度和指令的译码难度。
首先,有些寻址方式方式确实可以缩短指令字长,如寄存器寻址;有些可以扩大寻址空间,如基址寻址、间接寻址;不同的程序可采用不同的寻址方式来实现,故提高了编程的灵活性。
2.在CPU执行指令的过程中,指令的地址由______给出,操作数的地址由指令的地址码字段给出。
∙ A.程序计数器(PC)∙ B.操作系统∙ C.指令的操作码字段∙ D.指令的地址码字段(分数:2.00)A. √B.C.D.解析:[解析] 指令的地址由PC给出。
操作数的地址由指令的地址码字段给出,指令的操作码字段是判断指令的操作类型,即做什么。
3.下述关于零地址指令的说法中,正确的是______。
∙ A.零地址指令是不需要操作数的指令∙ B.零地址指令需要有操作数,其操作数通过隐含寻址得到∙ C.有的零地址指令不需要操作数,有的零地址指令需要并使用隐含寻址得到操作数∙ D.以上说法都不正确(分数:2.00)A.B.C. √D.解析:[解析] 在知识点讲解中详细讲到,有些零地址指令是不需要操作数的,如停机指令;有些零地址指令需要操作数,其操作数通过隐含寻址得到,即其操作数来自于栈顶和次栈顶(这个会考查选择题)。
4.零地址双操作数指令不需要指出操作数地址,这是因为______。
∙ A.操作数已在数据缓冲寄存器中∙ B.操作数隐含在累加器中∙ C.操作数地址隐含在堆栈指针中∙ D.利用上一条指令的运算结果进行操作(分数:2.00)A.B.C. √D.解析:[解析] 零地址运算指令在指令格式中不给出操作数的地址,它的操作数来自栈顶和次栈顶。
数据寻址方式介绍

数据寻址方式介绍数据寻址方式是计算机中的一种技术,用于确定存储器中数据元素的位置。
在计算机系统中,存储器是一个重要的组成部分,用于存储数据和程序。
为了有效地存取存储器中的数据,需要一种确定数据所在位置的方式。
数据寻址方式可以分为以下几种类型:1.直接寻址:直接寻址是最简单的寻址方式,通过给定一个绝对地址来确定数据元素的位置。
在直接寻址方式中,每个数据元素都有一个唯一的地址,计算机可以直接通过这个地址访问数据。
这种寻址方式的优点是简单快速,但是缺点是地址空间受限,浪费存储空间。
2.间接寻址:间接寻址是通过给定一个地址的地址来确定数据元素的位置。
在间接寻址方式中,存储器中的每个地址都指向存储器中的另一个地址,进而确定数据元素的位置。
这种寻址方式的优点是地址空间较大,可以充分利用存储空间。
但是缺点是多次访问存储器,时间效率较低。
3.寄存器寻址:寄存器寻址是通过将数据元素存储在寄存器中,然后通过寄存器编号来访问数据元素。
在寄存器寻址方式中,计算机系统中有一组寄存器可以用于数据存储,这些寄存器具有较快的访问速度。
这种寻址方式的优点是访问速度快,但是缺点是寄存器数量有限,存储容量有限。
4.索引寻址:索引寻址是通过给定一个索引来确定数据元素的位置。
在索引寻址方式中,存储器中的每个地址都存储了数据元素的索引值,通过给定的索引值可以快速确定数据元素的位置。
这种寻址方式的优点是可以通过索引值快速定位数据元素,但是缺点是需要额外的索引存储空间。
5.相对寻址:相对寻址是根据当前指令的位置来确定数据元素的位置。
在相对寻址方式中,指令中的地址是相对于当前指令的位置的偏移量,通过加上这个偏移量可以计算出数据元素的位置。
这种寻址方式的优点是灵活,可以根据当前指令的位置动态计算数据元素的位置,但是缺点是指令中的地址需要较多的位数。
6.基址寻址:基址寻址是通过给定一个基地址和一个偏移量来确定数据元素的位置。
在基址寻址方式中,基址是存储器中的一个地址,偏移量是相对于基址的地址的偏移量,通过将基址和偏移量相加可以计算出数据元素的位置。
单片机的几种寻址方式

单片机的几种寻址方式
寻址就是寻找指令中操作数或操作数所在的地址。
所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。
通常指源操作数的寻址方式。
MCS-51 系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
1、寄存器寻址
寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。
寄存器可以使用寄存器组R0~R7 中某一个或其它寄存器(A,B,DPTR 等)。
例如:
MOV A,R0 ;(R0 )→A
MOV P1,A ;(A)→P1
ADD A, R0 ;(A)+(R0) →A。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 基址变址寻址方式
微机原理
例:MOV AL,[BX] [DI] 假设DS寄存器的内容为 6000H BX寄存器的内容为 4500H DI寄存器的内容为 1600H 那么源操作数的存储器的物理地址为
6000H*16+4500H+1600H=60000H+5B00H=65B00H
有效地址
3 基址变址寻址方式
微机原理
寄存器间接寻址:操作数的有效地址是寄存器的内容,
结合对应段寄存器的内容计算出操作数的物理地址,
存储器中对应物理地址的内容即是操作数。
1 寄存器间接寻址方式
微机原理
例 : MOV AX,[BX] 假设DS寄存器的内容为 1000H
BX寄存器的内容为 3600H 那么源操作数的存储器的物理地址 为 1000H*16+3600H=13600H
微机原理
第3章 8086/8088指令系统
寻址方式
微机原理
寻址方式:包含数据寻址方式和转移地址寻址方式。这 里指数据寻址方式。它是指取得指令操作数地址的方式。 (1)立即寻址方式 (2)直接寻址方式 (3)寄存器寻址方式 (4)寄存器间接寻址方式 (5)寄存器相对寻址方式 (6)基址变址寻址方式 (7)相对基址变址寻址方式
微机原理
寻址方式:包含数据寻址方式和转移地址寻址方式。这 里指数据寻址方式。它是指取得指令操作数地址的方式。 (1)立即寻址方式 (2)直接寻址方式 (3)寄存器寻址方式 (4)寄存器间接寻址方式 (5)寄存器相对寻址方式 (6)基址变址寻址方式 (7)相对基址变址寻址方式
1 寄存器间接寻址方式
有效地址
4 相对基址变址寻址方式
微机原理
微机原理
下次课见
微机原理
4 相对基址变址寻址方式
微机原理
相对基址变址寻址:操作数的有效地址等于一个基址寄存 器 的内容、一个变址寄存器的内容以及一个偏移量之和。
例:MOV AX,9AH[BX][DI]
偏移量
基址寄存器
例:MOV AX,[DI+SI]指令合法吗?
×
变址寄存器
4 相对基址变址寻址方式
微机原理
例:MOV AX,9AH[BX][DI] 假设DS寄存器的内容为 6000H BX寄存器的内容为 4500H DI寄存器的内容为 1600H 那么源操作数的存储器的物理地址为 6000H*16+4500H+1600H+9AH=65B9AH
那么源操作数的存储器的物理地址为 6000H*16+4500H+0D8H=645D8H
有效地址
2 寄存器相对寻址方式
微机原理
3 基址变作数的有效地址等于一个基址寄存器的内
容和一个变址寄存器的内容之和 。
基址寄存器:BX、BP
变址寄存器:SI 、DI
例: MOV AL,[BX+DI] 可以记成 MOV AL,[BX][DI] 或记成 MOV AL ,[BX]+[DI]
由于是16位的操作数,所以从13600H、13601H 2个单元读出内容送至AX。
1 寄存器间接寻址方式
微机原理
2 寄存器相对寻址方式
微机原理
寄存器相对寻址:操作数的有效地址由SI、DI、BX或BP之 一的内容,加上指令中8位或16位相对地址构成。
例: MOV AX,[BX+0D8H]
假设DS寄存器的内容为 6000H BX寄存器的内容为 4500H