正在加载图片...
第2章编程模型 2.2 编程棋型 图2-1给出了dsP1C30F和dsPIC33F的编程模型。编程模型中的所有寄存器皆为存储器映射, 并能直接被指令集操作。表2-1提供了每一个寄存器的说明。 表2-1: 编程模型寄存器说明 寄存器 说明 ACCA.ACCB 40位DSP累加器 CORCON CPU内核配置寄存器 DCOUNT DO循环计数寄存器 DOEND DO循环结束地址寄存器 2 DOSTART DO循环起始地址寄存器 PC 23位程序计数器 PSVPAG 程序空间可视性页地址寄存器 RCOUNT 重复循环计数寄存器 SPLIM 堆栈指针限制值寄存器 SR ALU和DSP引擎STATUS寄存器 TBLPAG 表存储器页地址寄存器 W0-W15 工作寄存器阵列 2.2.1 工作寄存器阵列 16个工作(W)寄存器可作为数据、地址或偏移量寄存器。W寄存器的功能由访问它的指令所 决定。 字节指令以工作寄存器阵列为操作对象,将只对目标寄存器的低位字节(LSB)产生影响。由于 工作寄存器是存储映射的,因此可以字节宽度的数据存储空间访问方式对低位字节和高位字节进 行操作。 2.2.2 默认工作寄存器(WREG) 指令集中的指令可分为两类:工作寄存器指令和文件寄存器指令。工作寄存器指令使用工作寄存 器阵列作为数据值或作为指向某一存储单元的地址。相反,文件寄存器指令对包含在指令操作码 中的特定存储地址进行操作。 文件寄存器指令也使用工作寄存器,但并不指定指令中所使用的工作寄存器,而是采用缺省的工 作寄存器(WREG)。工作寄存器WO指定为WREG。用户无法对WREG的指定进行编程设定。 2.2.3 软件堆栈帧指针 帧是堆栈中用户定义的存储区域。函数通常使用帧来存放局部变量。W14被指定作为LNK(分 配堆栈帧)和ULNK(释放堆栈帧)指令中使用的堆栈帧指针。然而在未使用堆栈帧指针、LNK 和ULNK指令时,W14可被指令当作普通的工作寄存器使用。有关帧指针的详细内容,可参阅第 4.7.3节“软件堆栈帧指针”。 2006 Microchip Technology Inc. 初稿 DS70157BCN第2-3页 2006 Microchip Technology Inc. 初稿 DS70157B_CN 第 2-3 页 第 2 章 编程模型 编程模型 2 2.2 编程模型 图 2-1 给出了 dsPIC30F 和 dsPIC33F 的编程模型。编程模型中的所有寄存器皆为存储器映射, 并能直接被指令集操作。表 2-1 提供了每一个寄存器的说明。 2.2.1 工作寄存器阵列 16 个工作 (W)寄存器可作为数据、地址或偏移量寄存器。 W 寄存器的功能由访问它的指令所 决定。 字节指令以工作寄存器阵列为操作对象,将只对目标寄存器的低位字节 (LSB)产生影响。由于 工作寄存器是存储映射的,因此可以字节宽度的数据存储空间访问方式对低位字节和高位字节进 行操作。 2.2.2 默认工作寄存器 (WREG) 指令集中的指令可分为两类:工作寄存器指令和文件寄存器指令。工作寄存器指令使用工作寄存 器阵列作为数据值或作为指向某一存储单元的地址。相反,文件寄存器指令对包含在指令操作码 中的特定存储地址进行操作。 文件寄存器指令也使用工作寄存器,但并不指定指令中所使用的工作寄存器,而是采用缺省的工 作寄存器(WREG)。工作寄存器 W0 指定为 WREG。用户无法对 WREG 的指定进行编程设定。 2.2.3 软件堆栈帧指针 帧是堆栈中用户定义的存储区域。函数通常使用帧来存放局部变量。 W14 被指定作为 LNK (分 配堆栈帧)和 ULNK (释放堆栈帧)指令中使用的堆栈帧指针。然而在未使用堆栈帧指针、 LNK 和 ULNK 指令时,W14 可被指令当作普通的工作寄存器使用。有关帧指针的详细内容,可参阅第 4.7.3 节 “软件堆栈帧指针”。 表 2-1: 编程模型寄存器说明 寄存器 说明 ACCA, ACCB 40 位 DSP 累加器 CORCON CPU 内核配置寄存器 DCOUNT DO 循环计数寄存器 DOEND DO 循环结束地址寄存器 DOSTART DO 循环起始地址寄存器 PC 23 位程序计数器 PSVPAG 程序空间可视性页地址寄存器 RCOUNT 重复循环计数寄存器 SPLIM 堆栈指针限制值寄存器 SR ALU 和 DSP 引擎 STATUS 寄存器 TBLPAG 表存储器页地址寄存器 W0 - W15 工作寄存器阵列
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有