第1.7__程序存储器地址生成方式

合集下载

存储器的工作原理

存储器的工作原理

存储器的工作原理存储器是计算机系统中的重要组成部份,用于存储和检索数据。

它可以分为主存储器(内存)和辅助存储器(硬盘、固态硬盘等)两大类。

本文将详细介绍存储器的工作原理,包括主存储器和辅助存储器的工作原理、数据存储和检索过程等。

一、主主存储器是计算机中用于存储数据和程序的地方,它的工作原理可以简单地分为存储和检索两个过程。

1. 存储过程当计算机需要存储数据时,首先会将数据传输到主存储器中。

主存储器由一系列存储单元组成,每一个存储单元都有一个惟一的地址。

计算机通过地址线将数据传输到指定的存储单元中。

存储单元通常是由触发器构成,可以存储一个或者多个位的数据。

在存储过程中,计算机会根据数据的类型和大小,将数据划分为不同的存储单元。

例如,一个整数可能需要多个存储单元来存储,而一个字符只需要一个存储单元。

2. 检索过程当计算机需要访问存储器中的数据时,它会根据数据的地址,通过地址线将数据传输到计算机的其他部件中。

检索过程与存储过程相反,计算机通过地址线找到存储单元,并将存储单元中的数据传输到其他部件中进行处理。

主存储器的工作原理可以总结为:根据地址存储数据,根据地址检索数据。

二、辅助辅助存储器是计算机中用于长期存储数据和程序的设备,例如硬盘、固态硬盘等。

辅助存储器相对于主存储器来说,容量更大,但访问速度较慢。

辅助存储器的工作原理主要包括数据的存储和检索过程。

1. 存储过程在存储过程中,计算机将数据传输到辅助存储器中。

辅助存储器通常由磁盘或者闪存芯片组成,数据存储在磁盘的扇区或者闪存芯片的存储单元中。

计算机通过磁头或者控制电路将数据写入到指定的扇区或者存储单元中。

2. 检索过程当计算机需要访问辅助存储器中的数据时,它会根据数据的地址,通过磁头或者控制电路将数据从磁盘或者闪存芯片中读取出来,并传输到计算机的其他部件中进行处理。

辅助存储器的工作原理可以总结为:根据地址存储数据,根据地址检索数据。

三、数据存储和检索过程无论是主存储器还是辅助存储器,数据的存储和检索过程都是通过地址来完成的。

简述计算机指令的寻址方式

简述计算机指令的寻址方式

简述计算机指令的寻址方式计算机指令的寻址方式是指在执行指令时,CPU通过其中一种方式定位到指令所需的操作数或操作数所在的内存位置。

寻址方式可以分为立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、相对基址寻址、相对变址寻址和堆栈寻址等形式。

立即寻址 (Immediate addressing):指令中的操作数直接包含在指令本身中。

该方式的特点是指令长度固定,操作数长度有限制。

直接寻址 (Direct addressing):指令中的操作数是内存中的一个绝对地址。

CPU将指令中的地址直接作为内存地址,在该地址处读取或写入数据。

间接寻址 (Indirect addressing):指令中的操作数是一个内存地址,该内存地址中保存了真正的操作数所在的内存地址。

CPU首先读取间接寻址所指向的内存地址,然后再从该地址处读取或写入数据。

寄存器寻址 (Register addressing):指令中的操作数是CPU内部的寄存器,不需要访问内存。

CPU直接从寄存器中读取或写入数据。

这种寻址方式的快速性和效率高。

寄存器间接寻址 (Register indirect addressing):指令中的操作数是CPU内部的寄存器,该寄存器中保存了一个内存地址,CPU使用该地址从内存中读取或写入数据。

寄存器相对寻址 (Register relative addressing):指令中的操作数是CPU内部的寄存器和一个固定的偏移量,CPU首先将寄存器的内容与偏移量相加,然后使用计算所得的结果作为内存地址,从内存中读取或写入数据。

相对基址寻址 (Base-indexed addressing):指令中的操作数是一个基址寄存器和一个索引寄存器,以及一个固定的偏移量。

CPU首先将基址寄存器的内容与索引寄存器的内容相加,然后再与偏移量相加,最后使用计算所得的结果作为内存地址,从内存中读取或写入数据。

相对变址寻址 (Relative addressing with offset):指令中的操作数是一个地址寄存器和一个偏移量,地址寄存器中保存了一个内存地址,CPU将地址寄存器中的地址与偏移量相加,然后使用计算所得的结果作为内存地址,从内存中读取或写入数据。

step7寻址方式

step7寻址方式

完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。

其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。

当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。

由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A Q2.0 其中的A是指令符,Q2.0是A的操作数,也就是地址。

这个地址由两部分组成:Q:指的是映像输出区2.0:就是这个映像输出区第二个字节的第0位。

由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。

DB X 200 . 0 其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。

这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。

给定指令操作的地址方法,就是寻址方法。

在谈间接寻址之前,我们简单的了解一下直接寻址。

所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。

这样看来,间接寻址就是间接的给出指令的确切操作数。

对,就是这个概念。

比如:A Q[MD100] ,A T[DBW100]。

程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。

间接由此得名。

存储程序的工作原理

存储程序的工作原理

存储程序的工作原理随着计算机技术的不断发展,存储程序已经成为现代计算机的重要组成部分。

存储程序是指计算机内存中存储的一组指令,这些指令按照一定的顺序执行,从而完成特定的任务。

本文将介绍存储程序的工作原理,包括指令的存储和执行过程。

一、指令的存储在计算机内存中,指令以二进制的形式进行存储。

每条指令通常由多个字节组成,不同的指令长度可能会有所不同。

计算机内存中的每个字节都有一个唯一的地址,通过这个地址可以访问和操作存储在该地址上的数据或指令。

为了使计算机能够正确地执行存储的指令,必须将指令按照一定的规则存储在内存中。

常见的指令存储方式有顺序存储和跳跃存储两种。

顺序存储是指将指令按照程序的执行顺序依次存储在内存中的连续地址上。

而跳跃存储则是将指令存储在不连续的地址上,通过跳转指令来实现程序的执行顺序控制。

二、指令的执行指令的执行是计算机完成特定任务的关键过程。

当计算机开始执行程序时,它会从内存中读取第一条指令,并按照指令的操作码和操作数执行相应的操作。

接着,计算机会根据指令中的跳转条件决定是否跳转到下一条指令,从而实现程序的顺序控制。

指令的执行过程通常包括以下几个步骤:1. 指令的获取:计算机从内存中读取指令,并将其存储在指令寄存器中,以便后续的执行操作。

2. 指令的解码:计算机对指令进行解码,确定指令的操作类型和操作数,并将其存储在相应的寄存器中。

3. 操作的执行:计算机根据指令的操作类型和操作数执行相应的操作,例如进行算术运算、逻辑运算或数据传输等。

4. 结果的存储:计算机将操作的结果存储在指定的内存地址或寄存器中,以便后续的使用。

除了顺序执行指令外,存储程序还可以通过条件分支和循环等控制结构来实现程序的灵活执行。

条件分支指令可以根据特定的条件来决定下一条指令的执行路径,从而实现程序的分支控制。

而循环指令可以重复执行一组指令,从而实现程序的循环控制。

三、指令的优化为了提高程序的执行效率,存储程序的设计和优化变得尤为重要。

寄存器与7种寻址方式

寄存器与7种寻址方式

一、寄存器总共有14个16位寄存器,8个8位寄存器通用寄存器:数据寄存器:AH(8位) AL(8位) AX(16位) (AX和AL又称累加器)BH(8位) BL(8位) BX(16位) (BX又称基址寄存器,唯一作为存储器指针使用寄存器)CH(8位) CL(8位) CX(16位) (CX用于字符串操作,控制循环的次数,CL 用于移位)DH(8位) DL(8位) DX(16位) (DX一般用来做32位的乘除法时存放被除数或者保留余数)指针寄存器:SP 堆栈指针(存放栈顶地址)BP 基址指针(存放堆栈基址偏移)变址寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移,即作为存储器(短)指针使用。

作为通用寄存器,它们可以保存16位算术逻辑运算中的操作数和运算结果,有时运算结果就是需要的存储单元地址的偏移.SI 源地址(源变址寄存器)DI 目的地址(目的变址寄存器)控制寄存器:IP 指令指针FLAG 标志寄存器①进位标志CF,记录运算时最高有效位产生的进位值。

②符号标志SF,记录运算结果的符号。

结果为负时置1,否则置0。

③零标志ZF,运算结果为0时ZF位置1,否则置0。

④溢出标志OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。

溢出时OF位置1,否则置0。

⑤辅助进位标志AF,记录运算时第3位(半个字节)产生的进位值。

⑥奇偶标志PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。

当结果操作数中1的个数为偶数时置1,否则置0。

段寄存器CS 代码段IPDS 数据段SS 堆栈段SP BPES 附加段二、七种寻址方式:1、立即寻址方式:操作数就包含在指令中。

作为指令的一部分,跟在操作码后存放在代码段。

这种操作数成为立即数。

立即数可以是8位的,也可以是16位的。

例如:指令: MOV AX,1234H则: AX = 1234H2、寄存器寻址方式:操作数在CPU内部的寄存器中,指令指定寄存器号。

《操作系统精髓与设计原理·第五版》习题答案

《操作系统精髓与设计原理·第五版》习题答案

第1章计算机系统概述1.1、图1.3中的理想机器还有两条I/O指令:0011 = 从I/O中载入AC0111 = 把AC保存到I/O中在这种情况下,12位地址标识一个特殊的外部设备。

请给出以下程序的执行过程(按照图1.4的格式):1.从设备5中载入AC。

2.加上存储器单元940的内容。

3.把AC保存到设备6中。

假设从设备5中取到的下一个值为3940单元中的值为2。

答案:存储器(16进制内容):300:3005;301:5940;302:7006步骤1:3005->IR;步骤2:3->AC步骤3:5940->IR;步骤4:3+2=5->AC步骤5:7006->IR:步骤6:AC->设备61.2、本章中用6步来描述图1.4中的程序执行情况,请使用MAR和MBR扩充这个描述。

答案:1. a. PC中包含第一条指令的地址300,该指令的内容被送入MAR中。

b. 地址为300的指令的内容(值为十六进制数1940)被送入MBR,并且PC增1。

这两个步骤是并行完成的。

c. MBR中的值被送入指令寄存器IR中。

2. a. 指令寄存器IR中的地址部分(940)被送入MAR中。

b. 地址940中的值被送入MBR中。

c. MBR中的值被送入AC中。

3. a. PC中的值(301)被送入MAR中。

b. 地址为301的指令的内容(值为十六进制数5941)被送入MBR,并且PC增1。

c. MBR中的值被送入指令寄存器IR中。

4. a. 指令寄存器IR中的地址部分(941)被送入MAR中。

b. 地址941中的值被送入MBR中。

c. AC中以前的内容和地址为941的存储单元中的内容相加,结果保存到AC中。

5. a. PC中的值(302)被送入MAR中。

b. 地址为302的指令的内容(值为十六进制数2941)被送入MBR,并且PC增1。

c. MBR中的值被送入指令寄存器IR中。

6. a. 指令寄存器IR中的地址部分(941)被送入MAR中。

程序存储器地址生成方式

程序存储器地址生成方式

中断寄存器:
中断标志寄存器IFR:存储器映像CPU寄存器,当一 个中断出现时,相应位被置1,直到中断得到处理为止。 以下4种情况都会将中断标志位清0: (1)54x复位 (2)中断得到处理 (3)将1写到其它位(此位变0) (4)利用适当的中断号执行INTR指令 中断屏蔽寄存器IMR:存储器映像寄存器,用于屏蔽 外部和内部中断。如果某一位为1,则开放相应的中断, 如果ST1中的INTM=0,则允许此中断。
个位置去执行。 当跳转指令到达流水线的执行阶段时,其后面的两个字已被 取指。
无条件跳转 跳转 条件跳转
延迟D(跟在跳转指令后的一个2字或2个一字指令可 以被执行后再跳转) 非延迟(将已被读入的跟在跳转指令后 的一个2字 或2个一字指令被清除后再跳转)
延迟D 非延迟
无条件跳转
指令 说 明 周期数 (非延迟/延迟)

对于C548来讲,有一个7位程序扩展计数器XPC, 用来选择当前的64K字页程序存储器。可以实现 长跳转和长调用指令。 FB FBACC FCALL FCALA FRET FRETE
条件操作:
当一个或多个条件得到满足时才执行。条件见表2.21 当多重条件时,只能从第一组或第二组条件组合,见表2.22 第一组:可从A类或B类中选择一个条件,但不能从同一类中 选择两个;另外,两种条件测试的累加器必须是 同一个。 第二组:可以从A,B,C类各选择一个,但不能从同一类中 选择两个。 如果条件跳转去的地方只有1~2个字的程序段,那么可以用一条 单周期条件,如: XC n,con[,con[,con]];条件满足,n=1,就执行紧随其后的 的一条指令,n=2,就执行紧随其后的的二条指令。如果条件不 满足,就执行一条或二条NOP指令。
可屏蔽中断:可用软件将其设置为禁止中断或允许中断, 54x有16个用户可屏蔽中断SINT15~SINT0) 非屏蔽中断:这些中断不能被禁止,总能被响应,响应 后,程序从ISR所指的地址开始执行。包括所有的软件 中断和两个外部硬件中断RS和NMI。

第1.7 程序存储器地址生成方式

第1.7  程序存储器地址生成方式

无条件调用与返回的指令
指 令 CALL(D)
CALA(D) RET(D) RETE(D) RETF(D)


将返回地址压入堆栈,用指令所规定的 将返回地址压入堆栈 用指令所规定的 地址加载PC 地址加载 将返回地址压入堆栈,用 将返回地址压入堆栈,用 指定累加器 的低16位地址加载 位地址加载PC 的低 位地址加载 用堆栈顶的返回地址加载PC 用堆栈顶的返回地址加载 用堆栈顶的返回地址加载PC并开放 用堆栈顶的返回地址加载 并开放 中断 寄存器中的返回地址加载PC, 用RTN寄存器中的返回地址加载 寄存器中的返回地址加载 并开放中断
加载地址到PC的几种途径 加载地址到 的几种途径
加载到PC的地址 加载到PC的地址 PC PC=FF80h PC=PC+1 16位立即数加载到 位立即数加载到PC 16位立即数加载到PC 用累加器A 的低16位加载到PC 16位加载到 用累加器A或B的低16位加载到PC BRAF=1(块重复有效 块重复有效) PC+1等于块重复循环 BRAF=1(块重复有效)当PC+1等于块重复循环 结束地址(REA+1) (REA+1)时将 块重复起始地址加载PC 结束地址(REA+1)时将 块重复起始地址加载PC PC+2压入堆栈 并用指令后16位立即数加载PC, 压入堆栈, 16位立即数加载 子程序调用 将PC+2压入堆栈,并用指令后16位立即数加载PC, 返回将堆栈弹出到PC,回到原来程序处继续执行; PC,回到原来程序处继续执行 返回将堆栈弹出到PC,回到原来程序处继续执行; PC+1压入堆栈 用累加器A 压入堆栈, 的低16 16位加载 从累加器调用子程序 将PC+1压入堆栈,用累加器A或B的低16位加载 PC;返回时将堆栈弹出到PC, PC,回到原来程序 到PC;返回时将堆栈弹出到PC,回到原来程序 处继续执行; 处继续执行; PC压入堆栈 压入堆栈, 硬件中断或软件中断 将PC压入堆栈,用适当的中断向量地址加载 PC;中断返回时将堆栈弹出到PC, PC,继续执行被 PC;中断返回时将堆栈弹出到PC,继续执行被 中断了的程序. 中断了的程序. 操 作 复位 顺序执行指令 分支转移 由累加器分支转移 块重复循环
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.6 数据寻址方式
堆栈寻址
下图给出了将一个数据 X2压入堆栈(PSHD X2)的 操作过程。
操作前的堆栈和堆栈指针SP SP 操作后的堆栈和堆栈指针
SP
0011
0001
0010 0011 0100 0101 0110 X1
SP
0010
0001
0010 0011 0100 0101 0110 X2 X1
例如:DP=1,dmad=03h,实际地址为0080h+03h=0083h。
1.6 数据寻址方式
直接寻址
[例] DP直接寻址示例
ADD 30h, A ;将实际地址为00B0h的数据存储器单元内 容加到累加器A中去
1.6 数据寻址方式
直接寻址
当状态寄存器 ST1 中 CPL=1 时,数据存储器地址( dmad )的低 7 位与 堆栈指针SP的16位地址相加形成 16 位的数据存储器地址,如下图所示。
注: 1. 寻址16位字时增量/减量为1,32位字时增量/减量为2。 2. 这种方式只能用于写操作指令。 3. 这种方式不允许对存储器映射寄存器寻址。
1.6 数据寻址方式
间接寻址
(1) 循环寻址 在卷积、相关和FIR滤波器等算法中,都需要在存储器中设置一个循环缓 冲器,它是一个滑动窗口,保存着最新的一批数据。 循环缓冲器实现的关键是循环寻址的实现。 BK(循环缓冲器长度):确定了循环缓冲器的大小R。 EFB(循环缓冲器的有效基地址):用户选定的辅助寄存器(ARx)的低 N位置 0后所得到的值。满足条件:2N>R EOB(循环缓冲器的尾地址):通过用BK的低N位代替ARx的低N位得到。
TMS320C54x的寻址方式小结
寻址方式 特点 立即数寻 操作数就在指令中,运行比较慢,并要 址 求较多的存储空间 允许寻址任何一个数据存储器单元中的操 绝对寻址 作数,运行速度较慢,并要求较多的存储 空间 累加器寻 址 直接寻址 利用累加器指向程序存储单元的地址 指令中包含的数据存储器低7位地址,与 DP的9位数拼接或与SP中16位数相加形 成16位地址,可单周期寻址128个单元 通过辅助寄存器和辅助寄存器指针,寻址 数据存储空间的任何一个单元,并自动的 增量/减量、变址寻址、循环寻址、位倒 序寻址 应用场合 表示常数,对寄存器初 始化
1.6 数据寻址方式
存储器映射寄存器寻址
在存储器映射寄存器(MMR)寻址方式中,修改存储器映射寄存器的值, 而不影响当前数据页指针DP或当前堆栈指针SP的值,以存储器映射寄存 器中的修改值去寻址。寻址范围为0000h~007Fh。 有两种产生MMR地址的方式,指令特点: (1)在直接寻址时,不管DP,SP为何值都强制地址高9位为零,不改变 DP,SP内容。 (2)在间接寻址时,取ARX低7位作为MMR地址,并在执行后,对ARX高9 位强制淸零。 共有以下8条能够使用存储器映射寄存器寻址的指令: LDM MMR,dst MVDM dmad,MMR MVMD MMR,dmad MVMM MMRx,MMRy POPM MMR PSHM MMR STLM src,MMR STM #1k,MMR
1.6 数据寻址方式
堆栈寻址
当发生中断或子程序调用时,堆栈用来自动地保存程序计数器PC的值。 堆栈也可以用来保护现场或传送参数。 堆栈寻址,就是利用堆栈指针,按照先进后出的原则来寻址。SP总是指 向压入堆栈的最后一个数据。 堆栈寻址的作用是保护调用,中断现场信息,进行数据传输。 共有四条使用堆栈寻址方式访问堆栈的指令: PSHD Smem ;(SP)-1SP, (Smem)SP PSHM MMR ;(SP)-1SP, (MMR)SP POPD Smem ;(SP)Smem, (SP)+1 SP POPM MMR ;(SP)MMR, (SP)+1 SP
在间接寻址方式中,64K字数据空间的任意单元都可以通 过一个辅助寄存器中的内容所代表的16位地址进行访问。 TMS320C54x有8个16位辅助寄存器(AR0~AR7),2 个辅助寄存器算术单元(ARAU0和ARAU1),根据辅助 寄存器ARx的内容进行操作,完成无符号的16位算术运算。 间接寻址主要用在需要存储器地址以步进方式连续变化的 场合。当使用间接寻址方式时,辅助寄存器内容(地址) 可以被修改(如增加或减少),还可以提供循环寻址和位 倒序寻址两种特殊模式。
1.6 数据寻址方式
直接寻址
当状态寄存器ST1中CPL=0时,以数据存储器地址(dmad)的低7位 为低位,以数据页指针DP中的9位字段为高位,共同构成16位的数据存 储器地址,如下图所示。
15
14 13 12 11 10
9
8
7
6
5
4
3 7位dmad
2
1
0
9位数据页指针DP
DP作为基地址的直接寻址方式
+ 1100 +1100
10110
正向进位
0001
反向进位
1.6 数据寻址方式
原序 间接寻址 十进制数 0 1.单操作数寻址 1 2 (2) 位倒序寻址 3 4 5 6 7 8 9 10 11 12 13 14 15 二进制数 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 位倒序 二进制数 0000 1000 0100 1100 0010 1010 0110 1110 0001 1001 0101 1101 0011 1011 0111 1111 十进制数 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
1.单操作数寻址
MOD域 操作数句 法
单数据存储器操作数的间接寻址类型
功 能 说 明
地址=ARx 1000 (8) *ARx-% ARx=Circ(ARx- 寻址结束后,ARx中的地址值按循环减的方法减11 1) 地址=ARx *ARx - 1001 (9) - 寻址结束后,按循环减的方法从ARx中减去AR0中的值 0% ARx=Circ(ARx AR0) 地址=ARx 1010 (10) *ARx + % ARx=Circ(ARx + 寻址结束后,ARx中的地址值按循环加的方法增11 1) 地址=ARx 1011 (11) *ARx ARx =Circ(ARx + 寻址结束后,按循环加的方法,将AR0中的值加至ARx +0% AR0) ARx +1k 以ARx与16位数之和作为数据存储器的地址,寻址结束后, 1100 (12) *ARx(1k) 地址= ARx= ARx ARx中的值不变 地址=ARx +1k 1101 (13)*+ARx(1k) ARx 将一个16位带符号数加至ARx后进行寻址3 = ARx + 1k 地址=Circ(ARx + 1k) 3 1110 (14) *+ARx(1k )% ARx=Circ(ARx + 将一个16位带符号数按循环加的方法加至ARx,然后再寻址 1k) 利用16位无符号数作为地址寻址数据存储器(相当于绝对寻 1111 (15) *(1k) 地址=1k 址方式)3
SP作为基地址的直接寻址方式 例如,SP=0100h,dmad=030h, 实际地址为0100h+030h=0130h。
1.6 数据寻址方式
直接寻址
[例] SP直接寻址示例
ADD 30h, A ;将实际地址为0130h的数据存储器单元内 容加到累加器A中去
1.6 数据寻址方式
间接寻址
1.6 数据中利用累加器的数值作为地址 来读/写程序存储器,这种寻址方式可用来对存放数据的 程序存储器寻址。 共有两条指令可以采用累加器寻址: READA Smem WRITA Smem READA是把累加器A所确定的程序存储器单元中的一个字 传送到单数据存储器操作数Smem所确定的数据存储器 单元中。 WRITA是把Smem操作数所确定的数据单元中的一个字 传送到累加器A确定的程序存储器单元中去。
1.6 数据寻址方式
间接寻址
1.单操作数寻址
单操作数寻址是指一条指令中,只有一个存储器操作数 (即从存储器中只存取一个操作数)。 单数据存储器操作数间接寻址指令的格式:
指令的标识符 表示指令为间接寻址 3位辅助寄存器域 用来定义所使用的辅助寄存器
15 ~ 8 操作码
7 I=1
6~3 MOD
地址=ARx 0101 (5) *ARx-0 ARx =ARx-AR0
地址=ARx 0110 (6) *ARx + 0 ARx =ARx + AR0
0111 (7) *ARx + 0B
寻址结束后,将AR0中的值加至ARx
寻址结束后,用反向传送进位的方法将AR0加至ARx
地址=ARx ARx=B(ARx + AR0)
位倒序寻址是DSP的一种特殊处理方式,是专门为快速傅立叶变换FFT 而设计的,这种寻址方式可以显著提高程序的执行速度和存储区的利用 效率。 使用时,AR0存放的整数N为FFT点数的一半,另一个辅助寄存器ARx 指向数据存放的单元,当使用位倒序寻址把AR0加到辅助寄存器中时, 地址以位倒序的方式产生,即进位是从左向右,而不是通常的从右向 1010 1010 左。例如
1.6 数据寻址方式
间接寻址
(1) 循环寻址 使用循环寻址时,必须遵循以下三个原则: 1) 循环缓冲器的长度R小于26,且地址从一个低N 位为0的地址开始。 2) 步长小于或等于循环缓冲器的长度。 3) 所使用的辅助寄存器必须指向缓冲器单元。
1.6 数据寻址方式
间接寻址
(2) 位倒序寻址
1.6 数据寻址方式
累加器寻址
[例] 累加器寻址示例
READA *AR3 ;把累加器A所确定的程序 存储器单元中的值传送 给AR3指向的数据存储 器单元
相关文档
最新文档