- 1、本文档共183页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指令系统和程序编写
第3章 指令系统和程序编写 3.1 寻址方式 寻址方式是指CPU按照什么方式方法找到操作数所在地址,即操作数的地址在指令中是如何规定的。 3.1.1 立即寻址 立即寻址:指需要寻找的操作数就在指令中。即在指令中直接给出了操作数。该操作数称为立即数,指令中加前缀“#”表示。立即寻址包括短立即寻址和长立即寻址。 2.长立即寻址 长立即寻址方式下,指令中包含一个16位的操作数。长立即寻址方式的指令是双字指令,立即数就是第二个字。 直接寻址是一种常用的寻址方式,可以访问64K字数据存储器。在DSP控制器中,数据存储器按页进行管理,整个64K字数据存储器分为512个数据页,由状态寄存器ST0中的9位数据页面指针(DP)值确定,例如DP值为000000011b,即当前数据每个数据页含有128个字单元。在访问数据存储器时,首先确定当前数据页(通过LDP等指令),它页为3。确定当前数据页后,该数据页128个字中的哪一个字则由指令寄存器的低7位偏移量指定DSP控制器的直接寻址指令中的直接地址就是该低7位偏移量。中央处理单元将当前DP值与偏移量拼接,就变成16位的存储器地址。 使用直接寻址方式访问数据存储器时,必须首先对DP进行设置,然后再书写进行某种操作的指令。步骤如下: 1)设置数据页。 将当前数据页面(0~511)装入DP。可通过LDP指令或其他能向ST0装入值的任意指令来装载DP。LDP指令仅加载DP而不影响ST0的其它位,并明确指出装入的DP值。 例:指定数据页面为31,则使用 LDP #31。 2)设置偏移量。 给出7位偏移量作为指令的一个操作数。 例:要求ADDC指令则使用当前数据页面中的3Ah单元的值 则使用指令:ADDC 3Ah 注意: ①在所有程序中必须初始化DP。没有初始化DP的程序是不能正确执行的,因为加电和复位时,DP是不确定的。 ②如果一个程序中所有指令均访问同一个数据页,只需在采用直接寻址方式的第一条指令前装载DP,而不必在采用直接寻址方式的每个指令之前设置数据页。若访问新的数据页,需重新装载DP。 ③用直接寻址方式的指令其操作数不加前缀“#”。 例:LDP #500 ;将数据页面设置为500(地址FA00h~FA7Fh) ADDC 6h ;数据存储器地址FA06h中的内容加进位位C的值再加累加器的内容,结果存入累加器 上例中,立即数500=1F4h=111110100B装入DP,与第二条指令的操作数6h=0000110B连接成16位地址1111101000000110B=FA06h。 3.1.3 间接寻址 间接寻址是通过16位辅助寄存器间接访问数据 存储器。 DSP控制器内含8个辅助寄存器(AR0~AR7) 和辅助寄存器算术单元(ARAU),专用于间接寻址 的操作。 8个辅助寄存器(AR0~AR7)都可以参与间接寻址,但是每次寻址只能使用其中的一个,它由状 态寄存器ST0中的3位辅助寄存器指针(ARP)来指 定。ARP指定的辅助寄存器称为当前辅助寄存器 或当前AR。 1. 辅助寄存器的选择 将数值0~7装入状态寄存器ST0的高3位 (D15~D13),该3位为辅助寄存器指针ARP,其编码值即对应8个辅助寄存器AR0~AR7。可使用LST和MAR指令装载ARP值,也可使用支持间接寻址方式的任意指令作为装置ARP的辅助操作方式。 2.间接寻址的选择 LF24xDSP提供了4种方式供间接寻址选择。 ●不增不减。指令使用当前辅助寄存器的内容作为数据存储器地址,指令执行后,当前辅助寄存器的内容保持不变,不增也不减。 ●增1或减1。指令使用当前辅助寄存器的内容作为数据存储器地址,指令执行后将当前辅助寄存器的内容增l或减l。 3.间接寻址操作码格式 一、累加器、算术和逻辑运算指令 1. ABS 取累加器绝对值 语法:ABS 说明:对累加器ACC的内容取绝对值后送回累加器,并将进位位C清0。指令影响C和OV状态位,不受SXM影响,受OVM影响。 注意:①累加器中的值为16位的带符号数,若其大于或等于0,执行ABS后内容不变;若小于0,执行ABS后,为其对2的补码。 ②取绝对值时的特殊情况: 当溢出模式为0(OVM=0)时,执行ABS指令,取绝对值结果是; 当溢出模式为1(OVM=1)时,执行ABS指令,取绝对值结果是对7FFFFFFFh。 上述两种情况状态位OV均置1。 举例: 2.ADD 带移位的加法 语法:1)ADD dma [,shift ] 2)ADD
文档评论(0)