3.2.2  直接寻址方式

3.2.2 直接寻址方式

直接寻址方式(Direct Addressing Mode)操作数的22位物理地址被分成两部分,16位的数据页指针(DP)寄存器作为固定的页指针,指令中提供6位或7位的偏移量,这些偏移量与DP中的值一起确定操作数的地址。

下面按照AMODE的取值不同介绍对应语法。以下的符号loc16/loc32表示指令是16还是32位操作数。

表3-2列出了AMODE=0时的直接寻址语法。

3-2 AMODE=0时的直接寻址语法

978-7-111-57271-8-Chapter03-13.jpg

注:一个数据页为64个字。

直接寻址实例:

MOVW DP,#VarA ;用变量VarA所在页地址值装载DP

ADD AL,@VarA ;将VarA存储单元的值加到AL中,此处的符号@可以省略

MOV @VarB,AL ;将AL内容存入VarB存储单元,VarB与VarA应在同一页表3-3列出了AMODE=1时的直接寻址语法。

3-3 AMODE=1时的直接寻址语法

978-7-111-57271-8-Chapter03-14.jpg

注:一个数据页为128个字。

直接寻址实例:

SETCAMODE ;令AMODE=1

.lp_amode ;告知汇编器按照AMODE=l的语法

MOVW DP,#VarA ;用变量VarA所在页地址值装载DP

ADD AL,@@VarA ;将VarA存储单元的内容加到AL中

MOV @@VarB,AL ;将AL内容存入VarB存储单元,VarB与VarA应在同一页

由表中操作数地址说明部分可见,直接寻址的32位数据地址(31:22)部分始终为0,因此,直接寻址只能访问C28x数据地址低端的4MB空间(21:0)。