首页 理论教育 直接寻址的编辑方式及优点

直接寻址的编辑方式及优点

时间:2023-06-20 理论教育 版权反馈
【摘要】:直接寻址的优点是每条指令只需要一个字。具体使用DP还是SP根据状态寄存器ST1中的直接寻址编辑方式标志位CPL来确定。图4-4 DP作为基地址的直接寻址方式例如,DP=1,dmad=03h,实际地址为0080h+03h=0083h。由于DP值的范围为0~511,因此以DP为基地址的直接寻址将存储器分为512页。 DP直接寻址示例。直接寻址主要用于要求运算速度较快的场合。

直接寻址的编辑方式及优点

在直接寻址方式中,指令中包含有数据存储器地址(dmad)的低7位,这7位dmad作为偏移地址,结合基地址(由数据页指针DP或堆栈指针SP给出)共同形成16位的数据存储器地址。使用这种寻址方式,可以在不改变DP或SP的情况下,随机地寻址128个存储单元中的任何一个单元。直接寻址的优点是每条指令只需要一个字。

图4-3给出了使用直接寻址的指令代码的格式,其中,15~8位包含了指令的操作码;第7位I确定了寻址方式,若I=0,表示指令使用直接寻址方式;6~0位包含了指令的数据存储器的偏移地址。

978-7-111-35536-6-Chapter04-18.jpg

图4-3 直接寻址的指令代码格式

直接寻址的语法是用1个符号或1个常数来确定偏移地址值。例如,要将地址为SAMPLE的存储器单元内容加到累加器A中,可以表示为

978-7-111-35536-6-Chapter04-19.jpg

则地址SAMPLE的低7位存放在指令代码6~0位中,实际地址由数据页指针DP或堆栈指针SP与SAMPLE的低7位相结合产生。具体使用DP还是SP根据状态寄存器ST1中的直接寻址编辑方式标志位CPL来确定。

当CPL=0时,寻址方式为以DP为基地址的直接寻址方式,简称DP直接寻址;当CPL=1时,寻址方式为以堆栈指针SP为基地址的直接寻址方式,简称SP直接寻址。

1.DP直接寻址

当状态寄存器ST1中CPL=0时,以数据存储器地址(dmad)的低7位为低位,以数据页指针DP中的9位字段为高位,共同构成16位的数据存储器地址,如图4-4所示。

978-7-111-35536-6-Chapter04-20.jpg

图4-4 DP作为基地址的直接寻址方式

例如,DP=1,dmad=03h,实际地址为0080h+03h=0083h。(www.xing528.com)

由于DP值的范围为0~511,因此以DP为基地址的直接寻址将存储器分为512页。由于7位dmad的范围为0~127,所以每页有128个可以访问的单元。也就是说,由DP值确定是512页中的哪一页,由dmad值确定是该页中128个单元中的哪一个单元。因此,访问第1页的第0单元与访问第2页的第0单元的区别仅仅在于DP值改变了。DP的值可由LD指令装入,RESET指令将DP赋值为0。注意,DP不能用上电进行初始化,在上电后它处于不定状态。所以,没有初始化DP的程序就可能工作不正常。重新上电以后,所有的程序都必须对数据页指针DP作初始化。

例4-7】 DP直接寻址示例。

978-7-111-35536-6-Chapter04-21.jpg

2.SP直接寻址

当状态寄存器ST1中CPL=1时,数据存储器地址(dmad)的低7位与堆栈指针SP的16位地址相加形成16位的数据存储器地址,如图4-5所示。

978-7-111-35536-6-Chapter04-22.jpg

图4-5 SP作为基地址的直接寻址方式

例如,SP=0100h,dmad=030h,则实际地址为0100h+030h=0130h。

SP可指向数据存储器中的任意一个地址,dmad可指向当前页中一个具体的单元,从而允许访问数据存储器任意基地址中连续的128个单元。

例4-8】 SP直接寻址示例。

978-7-111-35536-6-Chapter04-23.jpg

直接寻址所寻址数据存储器的16位地址是由DP或SP与7位偏移地址dmad构成;可在单周期寻址128个单元;寻址速度快,能进行流水线并行操作。直接寻址主要用于要求运算速度较快的场合。需要注意的是,由于DP与SP两种直接寻址方式是相互排斥的,当采用SP直接寻址后再次用DP直接寻址之前,必须选用RSBXCPL指令对CPL清0。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈