dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 2

Size: px
Start display at page:

Download "dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 2"

Transcription

1 第 2 章 CPU 目录 本章包括下列主题 : 简介 编程模型 软件堆栈指针 (SSP) CPU 寄存器说明 算术逻辑单元 (ALU) DSP 引擎 除法支持 指令流类型 循环结构 地址寄存器相依性 寄存器映射 相关应用笔记 版本历史 CPU 2009 Microchip Technology Inc. DS70204B_CN 第 2-1 页

2 dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 24 位宽, 可以寻址最大 4M x 24 位的用户程序存储空间 单周期指令预取机制可帮助维持吞吐量, 并使指令的执行具有预测性 除了改变程序流的指令 双字传送 (MOV.D) 指令 表指令, 还有访问程序空间可视性 (Program Space Visibility,PSV) 的指令执行需要多于一个周期外, 所有指令都在单个周期内执行 使用 DO 和 REPEAT 指令支持无开销的程序循环结构, 这两条指令在任何时间都可以被中断 寄存器 dspic33f 器件在编程模型中有 16 个 16 位工作寄存器 每个工作寄存器可作为数据 地址或地址偏移寄存器工作 第 16 个工作寄存器 (W15) 作为软件堆栈指针 (Software Stack Pointer, SSP) 工作, 用于中断和调用 指令集 dspic33f 指令集具有两类指令 : MCU 类指令 DSP 类指令这两类指令无缝地集成到架构中, 并从单个执行单元执行 指令集包含多种寻址模式, 指令的设计可使 C 编译器的效率达到最优 数据空间寻址 数据空间可以作为 32K 字或 64 KB 寻址, 并被分成两块, 称为 X 和 Y 数据存储区 每块存储区有各自独立的地址发生单元 (Address Generation Unit, AGU) MCU 类指令只通过 X 存储区 AGU 进行操作, 可将整个存储器映射作为一个线性数据空间访问 一些 DSP 指令通过 X 和 Y 的 AGU 进行操作以支持双操作数读操作, 这样会将数据地址空间分成两个部分 X 和 Y 数据空间的边界视具体器件而定 可以选择将数据存储空间映射的高 32 KB 映射到由 8 位程序空间可视性页 (Program Space Visibility Page,PSVPAG) 寄存器定义的任何 16K 程序字边界内的程序空间内 程序空间到数据空间的映射功能让任何指令都能像访问数据空间一样访问程序空间 此外,RAM 还可以通过外部总线连接到器件上的程序存储器总线, 用于扩展内部数据 RAM X 和 Y 地址空间都支持无开销循环缓冲区 ( 模寻址 ) 模寻址省去了 DSP 算法的软件边界检查开销 X AGU 的循环寻址可以用于任何 MCU 类指令 X AGU 还支持位反转寻址, 大幅简化了基 2 FFT 算法对输入或输出数据的重新排序 DS70204B_CN 第 2-2 页 2009 Microchip Technology Inc.

3 第 2 章 CPU 寻址模式 CPU 支持以下寻址模式 : 固有寻址 ( 无操作数 ) 相对寻址 立即数寻址 存储器直接寻址 寄存器直接寻址 寄存器间接寻址根据每条指令的功能要求, 每条指令与预定义的寻址模式组相关联 对于每条指令, 支持最多 6 种寻址模式 对于大多数指令, dspic33f CPU 能在单个指令周期内执行以下功能 : 数据 ( 或程序数据 ) 存储器读操作 工作寄存器 ( 数据 ) 读操作 数据存储器写操作 程序 ( 指令 ) 存储器读操作因此, 支持三操作数指令, 允许在单个周期内执行 A + B = C 这样的操作 2 CPU DSP 引擎和指令 DSP 引擎具有以下特性 : 一个高速 17 位 x 17 位乘法器 ( 对于 16 位有符号乘法 ) 一个 40 位算术逻辑单元 (Arithmetic Logic Unit, ALU) 两个 40 位饱和累加器 一个 40 位双向桶形移位寄存器, 能在单个周期内将一个 40 位的值右移或左移最多 16 位 DSP 指令可以无缝地与所有其他指令一起操作, 且设计为能获得最佳实时性能 MAC 指令及其他相关指令能够在从存储器取出两个数据操作数的同时, 将两个工作 (W) 寄存器相乘 这要求数据空间对于这些指令拆分为两块, 但对于所有其他指令保持线性 这是通过将某些工作寄存器专用于每个地址空间, 以透明和灵活的方式实现的 2009 Microchip Technology Inc. DS70204B_CN 第 2-3 页

4 dspic33f 系列参考手册 异常处理 dspic33f CPU 具有向量异常机制, 带有最多 8 个不可屏蔽陷阱源和 118 个中断源 每个中断源都可分配为 7 个优先级之一 图 2-1 给出了 CPU 的框图 图 2-1: dspic33f CPU 框图 X 地址总线 Y 数据总线 X 数据总线 中断控制器 PSV 和表数据访问控制模块 8 16 数据锁存器 Y 数据 RAM 地址锁存器 数据锁存器 X 数据 RAM 地址锁存器 地址锁存器 24 PCU PCH PCL 程序计数器 (PC) 堆栈控制逻辑 循环控制逻辑 Y 地址总线 X RAGU X WAGU 16 程序存储器 Y AGU 数据锁存器 EA 多路开关 ROM 锁存器 IR 立即数数据 x 16 W 寄存器阵列 16 指令译码和控制 至各模块的控制信号 上电延时定时器 DSP 引擎 除法支持 OSC1/CLKI 时序发生 振荡器起振定时器 16 位 ALU MCLR POR/BOR 复位 VDD,VSS AVDD,AVSS 看门狗定时器 ECAN1, ECAN2 10 位或 12 位 ADC 输入捕捉模块 输出比较模块 I 2 C I/O 端口 定时器 DCI SPI1, SPI2 UART1, UART2 DS70204B_CN 第 2-4 页 2009 Microchip Technology Inc.

5 第 2 章 CPU 2.2 编程模型 图 2-2 给出了 dspic33f CPU 的编程模型 编程模型中的所有寄存器都是存储器映射的, 并且可以使用指令直接操作 表 2-1 提供了对每个寄存器的说明 表 2-1: 编程模型的寄存器说明 寄存器名称 W0 到 W15 ACCA 和 ACCB PC SR SPLIM TBLPAG PSVPAG RCOUNT DCOUNT DOSTART DOEND CORCON 说明工作寄存器阵列 40 位 DSP 累加器 23 位 PC ALU 和 DSP 引擎状态寄存器堆栈指针限制值寄存器表存储器页地址寄存器程序空间可视性页地址寄存器 REPEAT 循环计数寄存器 DO 循环计数寄存器 DO 循环起始地址寄存器 DO 循环结束地址寄存器包含 DSP 引擎和 DO 循环控制位 2 CPU 除了编程模型中包含的寄存器,dsPIC33F 还包含用于模寻址 位反转寻址和中断的控制寄存器 这些寄存器将在本文后续章节中进行说明 与编程模型相关的所有寄存器都是存储器映射的, 如表 2-3 中所示 2009 Microchip Technology Inc. DS70204B_CN 第 2-5 页

6 dspic33f 系列参考手册 图 2-2: 编程模型 15 0 W0(WREG) W1 W2 W3 DSP 操作数寄存器 W4 W5 W6 W7 W8 工作 / 地址寄存器 DSP 地址寄存器 W9 W10 W11 PUSH.S 和 POP.S 影子寄存器 W12 W13 帧指针 /W14 堆栈指针 /W15 0 SPLIM 0 堆栈指针限制 DSP 累加器 ACCA ACCB ACCAU ACCAH ACCAL ACCBU ACCBH ACCBL TBLPAG 7 0 PSVPAG 15 0 RCOUNT 15 0 DCOUNT 22 0 DOSTART DOEND 0 0 程序计数器数据表页地址程序空间可视性页地址 REPEAT 循环计数器 DO 循环计数器 DO 循环起始地址 DO 循环结束地址 OA OB SA SB SRH OAB SAB DA DC IPL<2:0> RA SRL N OV SZ C 状态寄存器 15 0 CORCON 内核控制寄存器 注 : DCOUNT DOSTART 和 DOEND 均具有一层影子寄存器 ( 未显示 ), 用于嵌套的 DO 循环 DS70204B_CN 第 2-6 页 2009 Microchip Technology Inc.

7 第 2 章 CPU 工作寄存器阵列 16 个工作 (W) 寄存器可用作数据 地址或地址偏移寄存器 W 寄存器的功能由访问它的指令的寻址模式决定 dspic33f 指令集可被分为两种指令类型 : 寄存器指令 文件寄存器指令 寄存器指令 寄存器指令可将每个 W 寄存器用作数据值或地址偏移值, 如例 2-1 所示 例 2-1: 寄存器指令 MOV W0, W1 ; move contents of W0 to W1 MOV W0, [W1] ; move W0 to address contained in W1 ADD W0, [W4], W5 ; add contents of W0 to contents pointed ; to by W4.Place result in W 文件寄存器指令 文件寄存器指令对在指令操作码和寄存器 W0 中包含的特定存储器地址进行操作 W0 是一个可在文件寄存器指令中使用的特殊工作寄存器 在文件寄存器指令中, 工作寄存器 W1-W15 不可被指定为目标寄存器 文件寄存器指令对只有一个 W 寄存器的现有 PIC MCU 器件提供向后兼容性 在汇编语法中使用标号 WREG 来表示文件寄存器指令中的 W0, 如例 2-2 所示 2 CPU 例 2-2: 文件寄存器指令 MOV WREG, 0x0100 ; move contents of W0 to address 0x0100 ADD 0x0100, WREG ; add W0 to address 0x0100, store in W0 注 : 关于寻址模式和指令语法的完整说明, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) W 寄存器存储器映射 由于 W 寄存器是存储器映射的, 因此可以在文件寄存器指令中访问 W 寄存器, 如例 2-3 所示 例 2-3: 在文件寄存器指令中访问 W 寄存器 MOV 0x0004, W10 ; equivalent to MOV W2, W10 其中 : 0x0004 是 W2 存储器中的地址 此外, 还可执行一条将 W 寄存器同时用作地址指针和操作数目标的指令, 如例 2-4 所示 例 2-4: MOV 其中 : W1 = 0x1234 W2 = 0x0004 W 寄存器用作地址指针和操作数目标 W1, [W2++] ;[W2] addresses W Microchip Technology Inc. DS70204B_CN 第 2-7 页

8 dspic33f 系列参考手册 在例 2-4 中,W2 的内容是 0x0004 由于 W2 被用作地址指针, 它指向存储器中的 0x0004 单元 W2 也映射到存储器中的该地址 虽然这是不太可能发生的事件, 但不到运行时不可能检测到 dspic33f CPU 确保数据写操作占据主导, 使该示例中 W2 = 0x W 寄存器和字节模式指令 将 W 寄存器阵列作为目标寄存器的字节指令只影响目标寄存器的最低有效字节 (LSB) 由于工作寄存器是存储器映射的, 因此可以通过对数据存储空间进行字节宽度的访问来操作 LSB 和最高有效字节 (MSB) 影子寄存器 编程模型中的许多寄存器都有相关的影子寄存器, 如图 2-2 所示 所有影子寄存器均不能直接访问 有两种类型的影子寄存器 : PUSH.S 和 POP.S 指令使用的影子寄存器 DO 指令使用的影子寄存器 PUSH.S 和 POP.S 影子寄存器 在执行函数调用或中断服务程序 (Interrupt Service Routine,ISR) 时,PUSH.S 和 POP.S 指令可用于快速现场保存 / 恢复 PUSH.S 指令会将以下寄存器的值传送到它们各自的影子寄存器中 : W0...W3 SR ( 仅 N OV Z C 和 DC 位 ) POP.S 指令会将值从影子寄存器恢复到这些寄存器单元 例 2-5 给出了使用 PUSH.S 和 POP.S 指令的代码示例 例 2-5: PUSH.S 和 POP.S 指令 MyFunction: PUSH.S ; Save W registers, MCU status MOV #0x03,W0 ; load a literal value into W0 ADD RAM100 ; add W0 to contents of RAM100 BTSC SR,#Z ; is the result 0? BSET Flags,#IsZero ; Yes, set a flag POP.S ; Restore W regs, MCU status RETURN PUSH.S 指令会改写先前保存在影子寄存器中的内容 影子寄存器深度只有一层 因此, 如果多个软件任务使用影子寄存器, 必须小心 用户应用程序必须确保任何使用影子寄存器的任务均不会被同样使用该影子寄存器且具有更高优先级的任务中断 如果允许较高优先级的任务中断较低优先级的任务, 较低优先级任务保存在影子寄存器中的内容将被较高优先级任务改写 DO 循环影子寄存器 当执行 DO 指令时, 以下寄存器会自动保存到影子寄存器中 : DOSTART DOEND DCOUNT DO 影子寄存器深度只有一层, 允许自动嵌套两层循环 关于 DO 循环嵌套的更多详细信息, 请参见第 节 DO 循环嵌套 DS70204B_CN 第 2-8 页 2009 Microchip Technology Inc.

9 第 2 章 CPU 未初始化的 W 寄存器复位 W 寄存器阵列 (W15 除外 ) 在发生所有复位时被清零, 并且在被写入前视为未经初始化 试图将未初始化的寄存器用作地址指针将会复位器件 必须执行字写操作来初始化 W 寄存器 字节写操作不会影响初始化检测逻辑 2.3 软件堆栈指针 (SSP) W15 寄存器作为专用的 SSP 并被异常处理 子程序调用和返回自动修改 但是,W15 可以被任何指令以与所有其他 W 寄存器相同的方式引用 这样就简化了对堆栈指针 (SP) 的读 写和操作 例如, 创建堆栈帧 注 : 为了防止不对齐的堆栈访问, W15<0> 被硬件设置为 0 2 所有复位均将 W15 初始化为 0x0800 该地址确保在所有 dspic33f 器件中,SP 指向有效的 RAM 并允许不可屏蔽陷阱异常使用堆栈 这些可能在 SP 被用户应用程序软件初始化前发生 在初始化期间, 用户可以对 SP 再编程以指向数据空间内的任何单元 SP 总是指向第一个可用的空字并从低地址到高地址填充软件堆栈 图 2-3 显示了它如何在弹出堆栈 ( 读 ) 时预递减, 以及在压入堆栈 ( 写 ) 时后递增 当 PC 压入堆栈时,PC<15:0> 位被压入第一个可用的堆栈字, 然后 PC<22:16> 位被压入第二个可用的堆栈单元 对于任何 CALL 指令执行期间的 PC 压栈, 压栈前 PC 的 MSB 是零扩展的, 如图 2-3 所示 在异常处理期间, PC 的 MSB 与 CPU 状态寄存器 SR 的低 8 位组合在一起 这样就使 SRL 的内容在中断处理期间能被自动保存 CPU 图 2-3: CALL 指令的堆栈操作 15 0 CALL SUBR 堆栈向高地址增长 PC<15:0> B PC<22:16> < 空字 > W15(CALL 前 ) W15(CALL 后 ) 软件堆栈示例 使用 PUSH 和 POP 指令可操作软件堆栈 PUSH 和 POP 指令相当于将 W15 用作目标指针的 MOV 指令 W0 的内容可被压入堆栈, 如例 2-6 所示 例 2-6: 软件堆栈示例 PUSH W0 该语法相当于 : MOV W0,[W15++] 要将栈顶的内容返回 W0, 可通过 : POP W0 该语法相当于 : MOV [--W15],W Microchip Technology Inc. DS70204B_CN 第 2-9 页

10 dspic33f 系列参考手册 图 2-4 到图 2-7 给出了如何使用软件堆栈的示例 图 2-4 显示了器件初始化时的软件堆栈 W15 已经初始化为 0x0800 该示例假设 0x5A5A 和 0x3636 这两个值已被分别写入 W0 和 W1 图 2-5 中第一次压入堆栈,W0 中包含的值被复制到堆栈中 W15 自动更新以指向下一个可用的堆栈单元 (0x0802) 在图 2-6 中, W1 的内容被压入堆栈 图 2-7 显示了如何弹出堆栈, 以及栈顶 (Top-of-Stack, TOS) 值 ( 先前从 W1 压入 ) 如何被写入 W3 图 2-4: 器件复位时的堆栈指针 0x0000 W15 0x0800 0xFFFE W15 = 0x0800 W0 = 0x5A5A W1 = 0x3636 图 2-5: 执行第一条 PUSH 指令后的堆栈指针 0x0000 W15 0x5A5A 0x0800 0x0802 PUSH W0 0xFFFE W15 = 0x0802 W0 = 0x5A5A W1 = 0x3636 图 2-6: 执行第二条 PUSH 指令后的堆栈指针 W15 0x5A5A 0x3636 0x0000 0x0800 0x0802 0x0804 PUSH W1 0xFFFE W15 = 0x0804 W0 = 0x5A5A W1 = 0x3636 图 2-7: 执行一条 POP 指令后的堆栈指针 W15 0x05A5A 0x x0000 0x0800 0x0802 POP W3 0xFFFE W15 = 0x0802 0x3636 W3 DS70204B_CN 第 2-10 页 2009 Microchip Technology Inc.

11 第 2 章 CPU W14 软件堆栈帧指针 帧是堆栈中用户定义的存储器段, 供单个子程序使用 通过使用 LNK ( 链接 ) 和 ULNK ( 不链接 ) 指令可以将工作寄存器 W14 用作堆栈帧指针 当不用作帧指针时, W14 可被指令当作普通的工作寄存器使用 关于将 W14 用作堆栈帧指针的软件示例, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 堆栈指针上溢 堆栈指针限制 (SPLIM) 寄存器用于指定堆栈缓冲区的大小 SPLIM 是一个 16 位寄存器, 但 SPLIM<0> 被设置为 0, 因为所有的堆栈操作都必须按字对齐 直到一个字写入 SPLIM 寄存器后才会使能堆栈上溢检查 在此之后, 只能通过器件复位禁止堆栈上溢检查 所有将 W15 用作源或目标寄存器而产生的有效地址将与 SPLIM 中的值作比较 如果堆栈指针 (W15) 的内容比 SPLIM 寄存器的内容大 2, 并且执行了压栈操作, 则不会在后续压栈操作时产生堆栈错误陷阱 因此, 例如, 如果想要在堆栈指针递增到超出 RAM 中的地址 0x2000 时引起堆栈错误陷阱, 可将 SPLIM 初始化为值 0x1FFE 注 : 如果使能了堆栈上溢检查, 则当 W15 有效地址计算越过了数据空间的末尾 (0xFFFF) 时, 也会产生堆栈错误陷阱 注 : 任何使用 W15 寄存器的内容来产生有效地址 (Effective Address, EA) 的指令均有可能产生堆栈错误陷阱 因此, 如果 W15 的内容比 SPLIM 寄存器的内容大 2, 并且执行了一条 CALL 指令或发生了中断, 则会产生堆栈错误陷阱 对 SPLIM 寄存器的写操作后面不应紧跟一个使用 W15 的间接读操作 关于堆栈错误陷阱的更多信息, 请参见第 6 章 中断 (DS70184) 2 CPU 堆栈指针下溢 复位时堆栈被初始化为 0x0800 如果堆栈指针地址小于 0x0800, 就会产生堆栈错误陷阱 注 : 通常, 数据空间中 0x0000 和 0x07FF 之间的单元预留给内核和外设的特殊功能寄存器 (Special Function Register, SFR) 2009 Microchip Technology Inc. DS70204B_CN 第 2-11 页

12 dspic33f 系列参考手册 2.4 CPU 寄存器说明 SR:CPU 状态寄存器 dspic33f CPU 有一个 16 位状态寄存器 (Status Register,SR) 寄存器 2-1 给出了 CPU 状态寄存器的详细说明 该寄存器的 LSB 被称为 SRL ( 状态寄存器, 低字节 ) MSB 被称为 SRH ( 状态寄存器, 高字节 ) SRL 寄存器包含所有的 MCU ALU 操作状态标志 CPU 中断优先级状态位 (IPL<2:0>) 和 REPEAT 循环活动状态位 RA (SR<4>) 在异常处理期间, SRL 与 PC 的 MSB 相连形成一个完整的字值, 然后将该字值压入堆栈 SRH 包含 : DSP 加法器 / 减法器状态位 DO 循环活动位 DA (SR<9>) 半进位位 DC (SR<8>) SR 位可读 / 写, 但以下各位例外 : DA 位 (SR<8>) 是只读位 RA 位 (SR<4>) 是只读位 OA OB (SR<15:14>) 和 OAB (SR<11>) 位是只读位, 只能由 DSP 引擎硬件修改 SA SB (SR<13:12>) 和 SAB (SR<10>) 位是只读且只可清零位, 只能由 DSP 引擎硬件置 1 一旦置 1, 它们将保持置 1 状态直到被用户应用程序清零, 而与任何后续 DSP 操作的结果无关 注 1: 清零 SAB 位也会清零 SA 和 SB 位 2: dspic30f/33f 程序员参考手册 (DS70157B_CN) 中提供了对受各指令影响的 SR 位的说明 CORCON: 内核控制寄存器 CORCON 寄存器包含控制 DSP 乘法器和 DO 循环硬件操作的位 CORCON 寄存器还包含 IPL3 状态位, 它与 IPL<2:0>(SR<7:5>) 组合形成 CPU 中断优先级 (Interrupt Priority Level,IPL) DS70204B_CN 第 2-12 页 2009 Microchip Technology Inc.

13 第 2 章 CPU 寄存器 2-1: SR:CPU 状态寄存器 R-0 R-0 R/C-0 R/C-0 R-0 R/C-0 R-0 R/W-0 OA OB SA (1) SB (2) OAB SAB (3) DA DC bit 15 bit 8 R/W-0 (4,5) R/W-0 (4,5) R/W-0 (4,5) R-0 R/W-0 R/W-0 R/W-0 R/W-0 IPL<2:0> RA N OV Z C bit 7 bit 0 图注 : C = 可清零位 R = 可读位 W = 可写位 U = 未实现位, 读为 0 -n = POR 时的值 1 = 置 1 0 = 清零 x = 未知 2 bit 15 OA: 累加器 A 溢出状态位 1 = 累加器 A 已溢出 0 = 累加器 A 未溢出 bit 14 OB: 累加器 B 溢出状态位 1 = 累加器 B 已溢出 0 = 累加器 B 未溢出 bit 13 SA: 累加器 A 饱和 粘住 状态位 (1) bit 12 bit 11 bit 10 bit 9 bit 8 1 = 累加器 A 饱和或在某时已经饱和 0 = 累加器 A 未饱和 (2) SB: 累加器 B 饱和 粘住 状态位 1 = 累加器 B 饱和或在某时已经饱和 0 = 累加器 B 未饱和 OAB: OA 和 OB 组合的累加器溢出状态位 1 = 累加器 A 或 B 已溢出 0 = 累加器 A 和 B 都未溢出 (3) SAB:SA 和 SB 组合的累加器 粘住 状态位 1 = 累加器 A 或 B 饱和或在过去某时已经饱和 0 = 累加器 A 和 B 都未饱和 DA:DO 循环活动位 1 = 正在进行 DO 循环 0 = 不在进行 DO 循环 DC:MCU ALU 半进位 / 借位标志位 1 = 结果的第 4 个低位 ( 对于字节大小的数据 ) 或第 8 个低位 ( 对于字大小的数据 ) 发生了进位 0 = 结果的第 4 个低位 ( 对于字节大小的数据 ) 或第 8 个低位 ( 对于字大小的数据 ) 未发生进位 CPU 注 1: SA 位可被读取或清零 ( 但不能置 1) 2: SB 位可被读取或清零 ( 但不能置 1) 3: SAB 位可被读取或清零 ( 但不能置 1) 清零该位的同时将清零 SA 和 SB 4: IPL<2:0> 位与 IPL<3> 位 (CORCON<3>) 组合形成 CPU 中断优先级 如果 IPL<3> = 1, 那么括号中的值表示 IPL 当 IPL<3> = 1 时, 禁止用户中断 5: 当 NSTDIS (INTCON1<15>) = 1 时, IPL<2:0> 状态位是只读位 2009 Microchip Technology Inc. DS70204B_CN 第 2-13 页

14 dspic33f 系列参考手册 寄存器 2-1: SR:CPU 状态寄存器 ( 续 ) bit 7-5 IPL<2:0>:CPU 中断优先级状态位 (4,5) bit 4 bit 3 bit 2 bit 1 bit = CPU 中断优先级为 7 (15) 禁止用户中断 110 = CPU 中断优先级为 6 (14) 101 = CPU 中断优先级为 5 (13) 100 = CPU 中断优先级为 4 (12) 011 = CPU 中断优先级为 3 (11) 010 = CPU 中断优先级为 2 (10) 001 = CPU 中断优先级为 1 (9) 000 = CPU 中断优先级为 0 (8) RA:REPEAT 循环活动位 1 = 正在进行 REPEAT 循环 0 = 不在进行 REPEAT 循环 N:MCU ALU 负标志位 1 = 结果为负 0 = 结果为非负 ( 零或正值 ) OV:MCU ALU 溢出标志位该位用于有符号的算术运算 ( 以二进制补码方式进行 ) 它表示量值上的溢出, 这种溢出将导致符号位改变状态 1 = 有符号算术运算中发生溢出 ( 本次算术运算 ) 0 = 未发生溢出 Z:MCU ALU 全零标志位 1 = 影响 Z 位的任何运算在过去某时已将该位置 1 0 = 影响 Z 位的最近一次运算已将该位清零 ( 即运算结果非零 ) C:MCU ALU 进位 / 借位标志位 1 = 结果的最高有效位 (MSb) 发生了进位 0 = 结果的最高有效位 (MSb) 未发生进位 注 1: SA 位可被读取或清零 ( 但不能置 1) 2: SB 位可被读取或清零 ( 但不能置 1) 3: SAB 位可被读取或清零 ( 但不能置 1) 清零该位的同时将清零 SA 和 SB 4: IPL<2:0> 位与 IPL<3> 位 (CORCON<3>) 组合形成 CPU 中断优先级 如果 IPL<3> = 1, 那么括号中的值表示 IPL 当 IPL<3> = 1 时, 禁止用户中断 5: 当 NSTDIS (INTCON1<15>) = 1 时, IPL<2:0> 状态位是只读位 DS70204B_CN 第 2-14 页 2009 Microchip Technology Inc.

15 第 2 章 CPU 寄存器 2-2: CORCON: 内核控制寄存器 U-0 U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-0 US EDT (1) DL<2:0> bit 15 bit 8 R/W-0 R/W-0 R/W-1 R/W-0 R/C-0 R/W-0 R/W-0 R/W-0 SATA SATB SATDW ACCSAT IPL3 (2) PSV RND IF bit 7 bit 0 图注 : C = 可清零位 R = 可读位 W = 可写位 U = 未实现位, 读为 0 -n = POR 时的值 1 = 置 1 0 = 清零 x = 未知 2 bit 未实现 : 读为 0 bit 12 US: DSP 乘法无符号 / 有符号控制位 1 = DSP 引擎执行无符号乘法运算 0 = DSP 引擎执行有符号乘法运算 bit 11 EDT:DO 循环提前终止控制位 (1) 1 = 在当前循环迭代结束时终止执行 DO 循环 0 = 无影响 bit 10-8 DL<2:0>:DO 循环嵌套层级状态位 111 = 正在进行 7 层 DO 循环嵌套 001 = 正在进行 1 层 DO 循环嵌套 000 = 正在进行 0 层 DO 循环嵌套 bit 7 SATA:ACCA 饱和使能位 1 = 使能累加器 A 饱和 0 = 禁止累加器 A 饱和 bit 6 SATB:ACCB 饱和使能位 1 = 使能累加器 B 饱和 0 = 禁止累加器 B 饱和 bit 5 SATDW: DSP 引擎的数据空间写饱和使能位 1 = 使能数据空间写饱和 0 = 禁止数据空间写饱和 bit 4 ACCSAT: 累加器饱和模式选择位 1 = 9.31 饱和 ( 超饱和 ) 0 = 1.31 饱和 ( 正常饱和 ) bit 3 IPL3:CPU 中断优先级状态位 3 (2) bit 2 1 = CPU 中断优先级大于 7 0 = CPU 中断优先级等于或小于 7 PSV: 数据空间中程序空间可视性使能位 1 = 程序空间在数据空间中可视 0 = 程序空间在数据空间中不可视 CPU 注 1: EDT 位总是读为 0 2: IPL3 位与 IPL<2:0> 位 (SR<7:5>) 组合形成 CPU 中断优先级 2009 Microchip Technology Inc. DS70204B_CN 第 2-15 页

16 dspic33f 系列参考手册 寄存器 2-2: CORCON: 内核控制寄存器 ( 续 ) bit 1 bit 0 RND: 舍入模式选择位 1 = 使能有偏 ( 常规 ) 舍入 0 = 使能无偏 ( 收敛 ) 舍入 IF: 整数或小数乘法器模式选择位 1 = 使能 DSP 乘法运算的整数模式 0 = 使能 DSP 乘法运算的小数模式 注 1: EDT 位总是读为 0 2: IPL3 位与 IPL<2:0> 位 (SR<7:5>) 组合形成 CPU 中断优先级 DS70204B_CN 第 2-16 页 2009 Microchip Technology Inc.

17 第 2 章 CPU 其他 dspic33f CPU 控制寄存器 本节提供了与 dspic33f CPU 相关的其他寄存器的简要说明 将在 dspic33f 系列参考手册 的其他章节中对这些寄存器进行更详细的说明 TBLPAG: 表页寄存器 TBLPAG 寄存器用于在表读和表写操作过程中保存程序存储器地址的高 8 位 表指令用于在程序存储空间和数据存储空间之间传输数据 更多详细信息, 请参见第 4 章 程序存储器 (DS70203) PSVPAG: 程序空间可视性页寄存器 PSVPAG 允许用户应用程序将程序存储空间的 32 KB 区域映射到数据地址空间的高 32 KB 该特性允许通过对数据存储器操作的 dspic33f 指令对常量数据进行透明访问 PSVPAG 寄存器选择映射到数据地址空间的程序存储空间的 32 KB 区域 关于 PSVPAG 寄存器的更多详细信息, 请参见第 4 章 程序存储器 (DS70203) MODCON: 模控制寄存器 MODCON 寄存器用于使能和配置模寻址 ( 循环缓冲区 ) 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70202) XMODSRT 和 XMODEND:X 模起始和结束地址寄存器 XMODSRT 和 XMODEND 寄存器保存在 X 数据存储器地址空间中实现的模 ( 循环 ) 缓冲区的起始和结束地址 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70202) YMODSRT 和 YMODEND:Y 模起始和结束地址寄存器 YMODSRT 和 YMODEND 寄存器保存在 Y 数据存储器地址空间中实现的模 ( 循环 ) 缓冲区的起始和结束地址 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70202) XBREV:X 模位反转寄存器 XBREV 寄存器设置用于位反转寻址的缓冲区大小 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70202) DISICNT: 禁止中断计数寄存器 DISI 指令使用 DISICNT 寄存器将优先级为 1-6 的中断在指定的几个周期内禁止 关于模寻址的更多详细信息, 请参见第 6 章 中断 (DS70184) 2 CPU 2009 Microchip Technology Inc. DS70204B_CN 第 2-17 页

18 dspic33f 系列参考手册 2.5 算术逻辑单元 (ALU) dspic33f ALU 为 16 位宽, 并能进行加法 减法 单位移位和逻辑运算 除非另外声明, 算术运算一般采用二进制补码方式进行 根据不同的运算,ALU 可能会影响 SR 寄存器中以下状态位的值 : 进位标志位 (C) 全零标志位 (Z) 负标志位 (N) 溢出标志位 (OV) 半进位标志位 (DC) 在减法运算中, C 和 DC 状态位分别作为借位位和半借位位 根据所使用的指令模式,ALU 可执行 8 位或 16 位运算 根据指令的寻址模式,ALU 运算的数据可以来自 W 寄存器阵列或数据存储器 同样,ALU 的输出数据可被写入 W 寄存器阵列或数据存储单元 关于受各指令 寻址模式和 8 位 /16 位指令模式影响的 SR 位的更多详细信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 注 1: 字节操作使用 16 位 ALU, 并可能产生超过 8 位的结果 但是, 如果要保持与 PIC MCU 器件的向后兼容性, 所有字节操作的 ALU 结果被写回为一个字节 ( 即, 不修改 MSB), 并且只根据结果 LSB 的状态更新 SR 寄存器 2: 字节模式中执行的所有寄存器指令只会影响 W 寄存器的 LSB 可以使用访问 W 寄存器的存储器映射内容的文件寄存器指令修改任何 W 寄存器的 MSB 字节到字的转换 dspic33f 具有两条在混合执行 8 位和 16 位 ALU 运算时很有用的指令 : 符号扩展 (SE) 指令, 该指令可以从 W 寄存器或数据存储器获取字节数据值, 并产生经过符号扩展的字数据值, 存储到 W 寄存器中 零扩展 (ZE) 指令, 该指令可以将 W 寄存器或数据存储器中字数据值的高 8 位清零, 并将结果放入目标 W 寄存器中 DS70204B_CN 第 2-18 页 2009 Microchip Technology Inc.

19 第 2 章 CPU 2.6 DSP 引擎 DSP 引擎是一个硬件模块, 它的输入数据来自 W 寄存器阵列, 但具有自己的专用结果寄存器 DSP 引擎由与 MCU ALU 相同的指令译码器驱动 此外, 所有操作数的有效地址 (EA) 都在 W 寄存器阵列中产生 DSP 引擎的工作不能与 MCU 指令流同时进行, 虽然 MCU ALU 和 DSP 引擎资源可以由指令集中的所有指令共用 DSP 引擎由以下组件组成 : 高速 17 位 x 17 位乘法器 桶形移位寄存器 40 位加法器 / 减法器 两个目标累加器寄存器 舍入逻辑 ( 具有可选的模式 ) 饱和逻辑 ( 具有可选的模式 ) 2 DSP 引擎的数据输入来自于以下来源 : 对于双源操作数 DSP 指令, 直接来自 W 阵列 ( 寄存器 W4 W5 W6 或 W7) W4 W5 W6 和 W7 寄存器的数据值通过 X 和 Y 存储器数据总线预取 对于所有其他 DSP 指令, 来自 X 存储器数据总线 CPU DSP 引擎的数据输出写入以下目标之一 : 由所执行的 DSP 指令定义的目标累加器 到数据存储器地址空间中任意单元的 X 存储器数据总线 DSP 引擎能执行固有 不需要其他数据的累加器 - 累加器操作 MCU 移位和乘法指令使用 DSP 引擎硬件来获取它们的结果 在这些操作中,X 存储器数据总线用于数据读取和写入 图 2-8 给出了 DSP 引擎的框图 注 : 关于与本节相关的详细代码示例和指令语法, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 2009 Microchip Technology Inc. DS70204B_CN 第 2-19 页

20 dspic33f 系列参考手册 图 2-8: DSP 引擎框图 位累加器 A 位累加器 B 舍入逻辑 饱和逻辑 16 饱和 加法器 取补 桶形移位寄存器 符号扩展 X 数据总线 Y 数据总线 补零 位 x 17 位 乘法器 / 定标器 16 位至 17 位转换 至 / 来自 W 阵列 DS70204B_CN 第 2-20 页 2009 Microchip Technology Inc.

21 第 2 章 CPU 数据累加器 两个 40 位数据累加器 ACCA 和 ACCB 是表 2-3 中列出的 DSP 指令的结果寄存器 每个累加器通过存储器映射到以下三个寄存器, 其中的 x 表示特定的累加器 : ACCxL:ACCx<15:0> ACCxH:ACCx<31:16> ACCxU:ACCx<39:32> 对于使用累加器的小数运算, 小数点位于 bit 31 右侧 可在每个累加器中存储的小数值的范围为 到 ( ) 对于使用累加器的整数运算, 小数点位于 bit 0 右侧 可在每个累加器中存储的整数值的范围为 -549,755,813,888 到 549,755,813, 乘法器 dspic33f CPU 具有一个由 MCU ALU 和 DSP 引擎共用的 17 位 x 17 位乘法器 ( 用于 16 位有符号乘法运算 ) 该乘法器可以执行有符号或无符号运算, 并支持 1.31 小数 (Q.31) 或 32 位整数结果 乘法器接受 16 位输入数据, 并会将数据转换为 17 位 乘法器的有符号操作数会进行符号扩展 无符号输入操作数则进行零扩展 因为数据在乘法器中内部使用 17 位表示, 所以可以正确地执行混合符号和无符号的 16 位 x 16 位乘法运算 对于整数和小数乘法器模式, 数据在硬件中的表示方式如下 : 整型数据的固有表示形式为有符号的二进制补码值, 其中最高有效位定义为符号位 通常, N 位二进制补码整数的范围为 -2 N-1 到 2 N-1 1 小数数据表示为二进制补码小数, 其中 MSb 定义为符号位, 小数点暗含在符号位之后 (Q.X 格式 ) 暗含小数点的 N 位二进制补码小数的范围为 -1.0 到 (1 2 1-N ) 表 2-2 中列出了整数和小数模式下的数据范围 图 2-9 和图 2-10 说明了乘法器硬件在整数和小数模式下是如何解释数据的 整数或小数乘法器模式选择 (IF) 位 (CORCON<0>) 决定表 2-3 中列出的指令的整数 / 小数运算 IF 位不会影响表 2-4 中列出的 MCU 乘法指令, 这些指令始终执行整数运算 对于小数运算, 乘法器会将结果向左换算一位 结果的最低有效位 (LSb) 总是清零 在器件复位时, 对于 DSP 运算, 乘法器默认设为小数模式 2 CPU 表 2-2: 寄存器长度 dspic33f 数据范围 整数范围 小数范围 16 位 到 到 ( ) (Q.15 格式 ) 32 位 -2,147,483,648 到 2,147,483, 位 -549,755,813,888 到 549,755,813, 到 ( ) (Q.31 格式 ) 到 ( ) ( 带有 8 个警戒位的 Q.31 格式 ) 小数分辨率 x x x Microchip Technology Inc. DS70204B_CN 第 2-21 页

22 dspic33f 系列参考手册 图 2-9: 0x4001 的整数和小数表示 0x4001 的不同表示整数 : x4001 = = 小数 : 暗含小数点 0x4001 = = 图 2-10: 0xC002 的整数和小数表示 0xC002 的不同表示整数 : xC002 = = = 小数 : 暗含小数点 0xC002 = = = DS70204B_CN 第 2-22 页 2009 Microchip Technology Inc.

23 第 2 章 CPU DSP 乘法指令 表 2-3 中汇总了使用乘法器的 DSP 指令 表 2-3: 使用乘法器的 DSP 指令 DSP 指令说明代数等价式 MAC 相乘并与累加器相加, 或者平方并与累加器相加 a = a + b * c a = a + b 2 MSC 相乘并从累加器中减去 a = a b * c MPY 相乘 a = b * c MPY.N 相乘并将结果取负 a = -b * c ED 偏欧氏距离 a = (b c) 2 EDAC 将偏欧氏距离与累加器相加 a = a + (b c) 2 2 注 : 使用乘法器的 DSP 指令可以工作于小数 (1.15) 或整数模式 DSP 乘法器无符号 / 有符号控制 (US) 位 (CORCON<12>) 决定 DSP 乘法指令是执行有符号 ( 默认 ) 还是无符号运算 US 位不会影响 MCU 乘法指令, MCU 具有用于有符号或无符号运算的特定指令 如果 US 位置 1, 则表 2-3 中列出的指令的输入操作数会被视为无符号值, 无符号值总是进行零扩展, 扩展到乘法器值的第 17 位 CPU MCU 乘法指令 同一个乘法器还支持包括 16 位有符号 无符号和混合符号整数乘法的 MCU 乘法指令, 如表 2-4 中所示 由 MUL 指令执行的所有乘法运算均产生整数结果 MUL 指令可以使用字节或字长度的操作数 字节输入操作数将产生 16 位结果, 而字输入操作数将产生 32 位结果, 结果存放在 W 阵列的指定寄存器中 表 2-4: 使用乘法器的 MCU 指令 MCU 指令 说明 MUL/MUL.UU 将两个无符号整数相乘 MUL.SS 将两个有符号整数相乘 MUL.SU/MUL.US 将一个有符号整数与一个无符号整数相乘注 1: 使用乘法器的 MCU 指令只能工作于整数模式 2: MCU 乘法运算结果的长度为 32 位, 存储在一对 W 寄存器中 表 2-5: 乘法选项 指令类有符号 x 有符号无符号 x 无符号无符号 x 有符号有符号 x 无符号 MAC (DSP 乘法 ) 有 ( 整数或小数 ) 有 ( 整数或小数 ) 无 无 MUL (MCU 乘法 ) 有 ( 仅整数 ) 有 ( 仅整数 ) 有 ( 仅整数 ) 有 ( 仅整数 ) 2009 Microchip Technology Inc. DS70204B_CN 第 2-23 页

24 dspic33f 系列参考手册 数据累加器加法器 / 减法器 数据累加器具有一个 40 位加法器 / 减法器, 该加法器 / 减法器带有用于乘法器结果的自动符号扩展逻辑 ( 如果有符号 ) 它可以选择两个累加器 (A 或 B) 之一作为其累加前的源累加器和累加后的目标累加器 对于 ADD ( 累加器 ) 和 LAC 指令, 可选择通过桶形移位寄存器在累加之前将要累加或装入的数据进行换算 40 位加法器 / 减法器可以选择将它的其中一个操作数输入取负, 以更改结果的符号 ( 不会改变操作数 ) 取负操作在相乘并相减 (MSC) 或相乘并取负 (MPY.N) 运算期间使用 40 位加法器 / 减法器有一个额外的饱和模块, 如果使能, 饱和模块将控制累加器的数据饱和 累加器状态位 支持饱和与溢出的 6 个状态寄存器位位于 CPU 状态寄存器 (SR) 中, 表 2-6 中列出了这些位 : 表 2-6: 累加器溢出和饱和状态位 状态位 存储单元 说明 OA SR<15> 累加器 A 溢出到警戒位 (ACCA<39:32>) OB SR<14> 累加器 B 溢出到警戒位 (ACCB<39:32>) SA SR<13> ACCA 已饱和 (bit 31 溢出并饱和 ) 或 ACCA 溢出到警戒位并饱和 (bit 39 溢出并饱和 ) SB SR<12> ACCB 已饱和 (bit 31 溢出并饱和 ) 或 ACCB 溢出到警戒位并饱和 (bit 39 溢出并饱和 ) OAB SR<11> OA 和 OB 的逻辑或 SAB SR<10> SA 和 SB 的逻辑或清零 SAB 的同时也将清零 SA 和 SB OA 和 OB 位是只读位, 它们在每次数据传送经过累加器加法 / 减法逻辑时被修改 置 1 时, 它们指示最近的操作已溢出到累加器警戒位 (bit 32 到 bit 39) 此类溢出不是灾难性溢出; 警戒位会保留累加器数据 OAB 状态位的值是 OA 和 OB 的逻辑或运算值 在 OA 和 OB 位置 1 时, 可以选择产生算术错误陷阱 使能该陷阱的方法是将中断控制器的中断控制寄存器 1 中相应的溢出陷阱标志允许位 OVATE 或 OVBTE (INTCON1<10> 或 <9>) 置 1 通过陷阱事件, 用户可以根据需要立即执行修正操作 每次数据传送经过累加器饱和逻辑时, SA 和 SB 位可能置 1 置 1 之后, 这两位会一直保持置 1, 直到用户应用程序将其清零 SAB 状态位指示 SA 和 SB 的逻辑或运算值 当 SAB 清零时, SA 和 SB 位会清零 置 1 时, 这些位指示累加器已溢出其最大范围 ( 对于 32 位饱和是 bit 31, 而 40 位饱和是 bit 39), 将发生饱和 ( 如果饱和使能 ) DS70204B_CN 第 2-24 页 2009 Microchip Technology Inc.

25 第 2 章 CPU 未使能饱和时,SA 和 SB 位指示发生了灾难性溢出 ( 累加器的符号被破坏 ) 如果灾难性溢出陷阱允许 (COVTE) 位 (INTCON1<8>) 置 1, 当饱和被禁止时,SA 和 SB 位将产生算术错误陷阱 注 1: 关于算术警告陷阱的更多详细信息, 请参见第 6 章 中断 (DS70184) 2: 根据累加器饱和是否使能,SA SB 和 SAB 状态位具有不同的含义 累加器饱和模式通过 CORCON 寄存器进行控制 饱和和溢出模式 dspic33f CPU 支持三种饱和和溢出模式 : 累加器 bit 39 饱和 累加器 bit 31 饱和和累加器灾难性溢出 累加器 bit 39 饱和 : 在该模式下, 饱和逻辑将最大的正 9.31 值 (0x7FFFFFFFFF) 或最小的负 9.31 值 (0x ) 装入目标累加器 SA 或 SB 位置 1 并保持直到被用户应用程序清零 该饱和模式对于扩展累加器的动态范围非常有用 要配置该饱和模式, 需要将累加器饱和模式选择 (ACCSAT) 位 (CORCON<4>) 置 1 此外, 需要将 ACCA 饱和使能 (SATA) 位 (CORCON<7>) 和 / 或 ACCB 饱和使能 (SATB) 位 (CORCON< 6>) 置 1, 以使能累加器饱和 累加器 bit 31 饱和 : 在该模式下, 饱和逻辑将最大的正 1.31 值 (0x007FFFFFFF) 或最小的负 1.31 值 (0xFF ) 装入目标累加器 SA 或 SB 位置 1 并保持直到被用户清零 当该饱和模式生效时, 除了对于累加器值的符号扩展之外, 将不使用警戒位 bit 32 至 bit 39 因此, SR 中的 OA OB 或 OAB 位永远不会置 1 要配置该溢出和饱和模式, 必须清零 ACCSAT (CORCON<4>) 位 此外, 必须将 SATA (CORCON<7>) 和 / 或 SATB (CORCON<6>) 位置 1, 以使能累加器饱和 累加器灾难性溢出 : 如果 SATA (CORCON<7>) 和 / 或 SATB (CORCON<6>) 位未置 1, 则不会对累加器执行任何饱和操作, 并且允许累加器一直溢出到 bit 39 ( 破坏它的符号 ) 如果灾难性溢出陷阱允许 (COVTE) 位 ( 中断控制器中的 INTCON1<8>) 置 1, 则灾难性溢出会产生算术错误陷阱 只有执行通过 40 位 DSP ALU 修改两个累加器之一的 DSP 指令时, 才会发生累加器饱和和溢出检测 通过 MCU 类指令将累加器作为存储器映射寄存器访问时, 不会发生饱和和溢出检测 此外, 表 2-6 中列出的累加器状态位不会被修改 但是,MCU 状态位 (Z N C OV 和 DC) 会被修改, 具体取决于访问累加器的 MCU 指令 2 CPU 注 : 关于算术错误陷阱的更多详细信息, 请参见第 6 章 中断 (DS70184) 2009 Microchip Technology Inc. DS70204B_CN 第 2-25 页

26 dspic33f 系列参考手册 数据空间写饱和 除了加法器 / 减法器饱和, 对数据空间进行写操作也会饱和, 而不会影响源累加器的内容 通过该功能可以对数据进行限制, 同时不会损害累加器在中间计算阶段期间的动态范围 使能数据空间写饱和的方法是将 DSP 引擎的数据空间写饱和使能 (SATDW) 控制位 (CORCON<5>) 置 1 默认情况下, 在器件复位时会使能数据空间写饱和 数据空间写饱和功能通过 SAC 和 SAC.R 指令进行工作 执行这些指令时, 累加器中保存的值永远不会被修改 硬件通过执行以下步骤来获取饱和的写结果 : 1. 根据指令中指定的算术移位值对读取数据进行换算 2. 对换算数据进行舍入 ( 仅对于 SAC.R) 3. 根据警戒位的值将换算 / 舍入值饱和为 16 位结果 如果数据值大于 0x007FFF, 则写入存储器的数据达到饱和, 为最大的正 1.15 值 0x7FFF 如果输入数据小于 0xFF8000, 则写入存储器的数据达到饱和, 为最小的负 1.15 值 0x 累加器 回写 MAC 和 MSC 指令可以选择将非当前操作目标的累加器的舍入形式写入数据存储空间 通过 X 总线寻址组合的 X 和 Y 地址空间, 执行回写操作 这种累加器回写功能对于一些 FFT 和 LMS 算法非常有用 累加器回写硬件支持以下寻址模式 : W13, 寄存器直接寻址 : 非目标累加器的舍入内容以 1.15 小数结果写入 W13 [W13]+=2, 带后递增的寄存器间接寻址 : 非目标累加器的舍入内容以 1.15 小数形式写入 W13 指向的地址 然后 W13 递增 舍入逻辑 舍入逻辑在累加器写 ( 存储 ) 过程中执行常规的 ( 有偏 ) 或收敛的 ( 无偏 ) 舍入功能 舍入模式由舍入模式选择 (RND) 位 (CORCON<1>) 的状态决定 它会产生一个 16 位的 1.15 数据值, 该值被送到数据空间写饱和逻辑 如果指令不指明舍入, 则会存储一个截取的 1.15 数据值 图 2-11 中显示了两种舍入模式 常规舍入模式会获取累加器的 bit 15, 对它进行零扩展, 并将它与最高有效字 (msw) 相加 ( 不包括警戒或溢出位 (bit 16 至 bit 31)) 如果累加器的最低有效字 (lsw) 在 0x8000 和 0xFFFF 之间 ( 包括 0x8000), 则 msw 递增 1 如果累加器的 lsw 在 0x0000 和 0x7FFF 之间, 则 msw 保持不变 此算法的结果经过一系列随机舍入操作, 值会稍稍偏大 ( 正偏 ) 除非 lsw 等于 0x8000, 否则收敛的 ( 或无偏 ) 舍入操作方式与常规舍入相同 lsw 等于 0x8000 时, 要对 msw 的 LSb ( 累加器的 bit 16) 进行检测 如果它为 1, msw 递增 1 如果它为 0, msw 不变 假设 bit 16 本身是随机的, 这样的机制将消除任何可能累加的舍入偏差 通过 X 总线, SAC 和 SAC.R 指令将目标累加器内容的截取 (SAC) 或舍入 (SAC.R) 形式存储到数据存储器 ( 这受数据饱和的影响 ) 更多详细信息, 请参见第 节 数据空间写饱和 对于 MAC 类指令, 累加器回写数据路径总是会受舍入模式影响 DS70204B_CN 第 2-26 页 2009 Microchip Technology Inc.

27 第 2 章 CPU 图 2-11: 常规和收敛舍入模式 常规 ( 有偏 ) 收敛 ( 无偏 ) msw XXX XXXX XXXX XXXX msw 以下情况时, 进行上舍入 (msw 加 1): lsw >= 0x8000 msw 以下情况时, 进行上舍入 (msw 加 1): 1. lsw = 0x8000 且 bit 16 = 1 2. lsw > 0x XXX XXXX XXXX XXXX msw 以下情况时, 进行下舍入 ( 不加任何值 ): lsw < 0x8000 以下情况时, 进行下舍入 ( 不加任何值 ): 1. lsw = 0x8000 且 bit 16 = 0 2. lsw < 0x8000 CPU 桶形移位寄存器 桶形移位寄存器在单个周期内可将数据算术右移或左移最多 16 位 DSP 或 MSU 指令可以使用桶形移位寄存器进行多位移位 移位寄存器需要一个有符号二进制值, 用来确定移位操作的幅度 ( 位数 ) 和方向 : 正值将操作数右移 负值将操作数左移 值为 0 则不改变操作数桶形移位寄存器的宽度为 40 位, 以容纳累加器的宽度 对于 DSP 移位运算, 提供 40 位的输出结果 ; 对于 MCU 移位运算, 提供 16 位的结果 表 2-7 汇总了使用桶形移位寄存器的指令 表 2-7: ASR LSR SL SAC SFTAC 指令 使用 DSP 引擎桶形移位寄存器的指令说明对数据存储单元进行算术多位右移对数据存储单元进行逻辑多位右移对数据存储单元进行多位左移存储 DSP 累加器, 并可选择进行移位移位 DSP 累加器 DSP 引擎模式选择 前面几节中讨论的 DSP 引擎的这些工作特性可以通过 CPU 内核配置寄存器 (CORCON) 进行选择 : 小数或整数乘法运算 常规或收敛舍入 ACCA 自动饱和使能 / 禁止 ACCB 自动饱和使能 / 禁止 对于写数据存储器的自动饱和使能 / 禁止 累加器饱和模式选择 2009 Microchip Technology Inc. DS70204B_CN 第 2-27 页

28 dspic33f 系列参考手册 DSP 引擎陷阱事件 为了处理 DSP 引擎中的异常, 可以产生以下算术错误陷阱, 它们通过中断控制寄存器 (INTCON1) 进行选择 : ACCA 溢出陷阱允许, 使用 OVATE (INTCON1<10>) ACCB 溢出陷阱允许, 使用 OVBTE (INTCON1<9>) 灾难性 ACCA 和 / 或 ACCB 溢出陷阱允许, 使用 COVTE (INTCON1<8>) 陷阱的产生通过以下错误状态位进行指示 : OVAERR (INTCON1<14>) OVBERR (INTCON1<13>) COVAERR (INTCON1<12>) COVBERR (INTCON1<11>) 当用户应用程序尝试使用 SFTAC 指令将某个值移位为超出最大允许范围 (±16 位 ) 时, 也会产生算术错误陷阱 该陷阱源不能被禁止, 它通过移位累加器错误状态 (SFTACERR) 位 ( 中断控制器中的 INTCON1<7>) 进行指示 该指令仍将执行, 但移位的结果不会写入目标累加器 关于 INTCON1 寄存器中各位和算术错误陷阱的更多详细信息, 请参见第 6 章 中断 (DS70184) DS70204B_CN 第 2-28 页 2009 Microchip Technology Inc.

29 第 2 章 CPU 2.7 除法支持 dspic33f 支持以下类型的除法运算 : DIVF:16/16 位有符号小数除法 DIV.SD:32/16 位有符号除法 DIV.UD:32/16 位无符号除法 DIV.SW:16/16 位有符号除法 DIV.UW:16/16 位无符号除法所有除法指令的商都放在工作寄存器 W0 中, 余数放在 W1 中 16 位除数可以位于任意 W 寄存器中 16 位被除数可以位于任意 W 寄存器中, 32 位被除数必须位于一对相邻的 W 寄存器中 所有除法指令都是迭代运算, 必须在 REPEAT 循环内执行 18 次 开发人员需要负责编写 REPEAT 指令 完整的除法运算需要 19 个指令周期来执行 与任何其他 REPEAT 循环一样, 除法流程可以被中断 在循环的每次迭代之后, 所有数据存储到相应的数据寄存器中 因此, 用户应用程序需要负责在 ISR 中保存相应的 W 寄存器 虽然 W 寄存器中的中间值对于除法硬件非常重要, 但它们对于用户应用程序没有任何意义 除法指令必须在 REPEAT 循环中执行 18 次, 以产生有意义的结果 被零除错误会产生数学错误陷阱 该条件通过数学错误状态 (DIV0ERR) 位 ( 中断控制器中的 INTCON1<6>) 进行指示 关于除法指令的更多详细信息和编程示例, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 2 CPU 2009 Microchip Technology Inc. DS70204B_CN 第 2-29 页

30 dspic33f 系列参考手册 2.8 指令流类型 dspic33f 架构中的大多数指令占用程序存储器的一个字并在单个周期内执行 指令预取机制方便了单周期 (1 TCY) 执行 但是, 某些指令的执行需要 2 或 3 个指令周期 因此,dsPIC DSC 架构中有 7 种不同类型的指令流, 下面列出了这些指令流并在本节对它们进行说明 : 1 个指令字, 1 个指令周期 1 个指令字, 2 个指令周期 1 个指令字, 2 或 3 个指令周期 ( 程序流改变 ) 1 个指令字, 3 个指令周期 (RETFIE RETURN 和 RETLW) 表读 / 写指令 2 个指令字, 2 个指令周期 地址寄存器相依性 个指令字, 1 个指令周期 执行这些指令需要一个指令周期, 如图 2-12 所示 大多数指令是单字单周期指令 图 2-12: 指令流 : 单字单周期 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 1. MOV #0x55AA,W0 取指 1 执行 1 2. MOV W0,PORTA 取指 2 执行 2 3. MOV W0,PORTB 取指 3 执行 个指令字, 2 个指令周期 在这些指令中, 没有预取清除 这一类型的指令只有 MOV.D 指令 ( 装入和存储双字 ) 完成这些指令需要两个周期, 如图 2-13 所示 图 2-13: 指令流 : 单字双周期 (MOV.D 操作 ) 1. MOV #0x1234,W0 取指 1 执行 1 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 2. MOV.D [W0++],W1 取指 2 执行 2 R/W 周期 1 3. MOV #0x00AA,W1 取指 3 执行 2 R/W 周期 2 不取指 执行 3 4. MOV #0x00CC,W0 取指 4 执行 4 DS70204B_CN 第 2-30 页 2009 Microchip Technology Inc.

31 第 2 章 CPU 个指令字, 2 或 3 个指令周期 ( 程序流改变 ) 这些指令包括相对调用和跳转指令, 以及跳过指令 当指令改变 PC ( 除了递增以外 ) 时, 程序存储器预取数据必须被丢弃 这使指令执行需要两个有效周期, 如图 2-14 所示 图 2-14: 指令流 : 单字双周期 ( 程序流改变 ) 1. MOV.B #0x55,W0 取指 1 执行 1 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 2. BTSC PORTA,#3 取指 2 执行 2 执行跳过 3. ADD.B PORTA ( 作为 NOP 执行 ) 取指 3 强制 NOP 2 4. BRA SUB_1 取指 4 执行 4 5. ADD.B PORTB ( 作为 NOP 执行 ) 取指 5 强制 NOP 6. address SUB_1 取指 SUB_1 如果跳过的是双字指令, 则需要三个周期 在这种情况下, 程序存储器预取数据会被丢弃, 并取双字指令的第二个字 图 2-15 显示了指令的第二个字被作为 NOP 执行 CPU 图 2-15: 指令流 : 单字三周期 ( 跳过双字指令 ) TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 1. BTSC SR,#Z 取指 1 执行 1, 执行跳过 2. GOTO LABEL 取指 2 强制 NOP (GOTO 2nd word) 取 GOTO 的第 2 个字 第 2 个字作为 NOP 执行 3. BCLR PORTB,#3 取指 3 执行 3 4. MOV W0,W1 取指 4 执行 个指令字, 3 个指令周期 (RETFIE RETURN 和 RETLW) 图 2-16 显示了 RETFIE RETURN 和 RETLW 指令, 这些指令用于从子程序调用或 ISR 返回, 需要 3 个指令周期来执行 图 2-16: 指令流 : 单字三周期 (RETURN RETFIE 和 RETLW) TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 1. MOV #0x55AA,W0 取指 1 执行 1 2. RETURN 取指 2 执行 2 3. (instruction in old program flow) 取指 3 执行 2 4. MOV W0, W3 (instruction in new program flow) 不取指 执行 2 5. MOV W3, W5 取指 4 执行 4 取指 Microchip Technology Inc. DS70204B_CN 第 2-31 页

32 dspic33f 系列参考手册 表读 / 写指令 这些指令将暂停取指令, 向程序存储器中插入读或写周期 执行表操作时所取的指令将被保存一个周期, 在紧接该表操作的下一个周期执行, 如图 2-17 所示 图 2-17: 指令流水线流程 : 表操作 1. MOV #0x1234,W0 取指 1 执行 1 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 2. TBLRDL.w [W0++],W1 取指 2 执行 2 3. MOV #0x00AA,W1 取指 3 PM 数据读周期 总线读 执行 3 4. MOV #0x00CC,W0 取指 4 执行 个指令字, 2 个指令周期 在这些指令中, 指令后的取指包含数据 这会产生一个双周期指令, 如图 2-18 所示 如果 CPU 只取了双字指令的第 2 个字而未取第 1 个字, 则第 2 个字将被编码以作为 NOP 执行 这在双字指令被跳过指令跳过时尤其重要 ( 见图 2-15) 图 2-18: 指令流水线流程 : 双字双周期 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 1. MOV #0xAA55,W0 取指 1 执行 1 2. GOTO LABEL 取指 2L 更新 PC 取指 2H 强制 NOP 3. LABEL:MOV W0,W2 取指 3 执行 3 4. BSET PORTA, #3 取指 4 执行 地址寄存器相依性 由于 X 数据空间的读写操作之间存在数据地址的相依性, 这些指令会遭遇停顿 (stall) 为了解决这种资源冲突, 插入了一个额外的周期, 这在第 2.10 节 地址寄存器相依性 中进行了讨论 图 2-19: 指令流水线流程 : 单字单周期 ( 带指令停顿 ) 1. MOV W0,W1 取指 1 执行 1 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 2. MOV [W1],[W4] 取指 2 执行 1 停顿执行 2 3. MOV W2,W1 取指 3 执行 3 注 : 如果将 RETURN 指令置于程序存储器末端, 器件会在运行时产生非法地址错误陷阱 这是由预取操作造成的, 即试图预装入存储单元中的下两条指令, 而它们在这种情况下不存在 解决方案是将两个额外的指令字放在 RETURN 指令后, 这样编译器就可以将 NOP 和 RESET 指令置于程序存储器末端了 DS70204B_CN 第 2-32 页 2009 Microchip Technology Inc.

33 第 2 章 CPU 2.9 循环结构 dspic33f CPU 支持 REPEAT 和 DO 指令结构, 以提供无条件自动程序循环控制 REPEAT 指令用于实现单指令程序循环 DO 指令用于实现多指令程序循环 这两条指令使用 CPU 状态寄存器 (SR) 内的控制位来临时修改 CPU 操作 REPEAT 循环结构 REPEAT 指令会使紧随其后的指令重复指定次数 可以使用指令中包含的立即数值或某个 W 寄存器中的值来指定 REPEAT 计数值 W 寄存器选项可使循环计数为软件变量 REPEAT 循环中的指令至少执行一次 REPEAT 循环的迭代次数是 14 位立即数值 + 1 或 Wn + 1 两种 REPEAT 指令的语法形式如下所示 : 2 例 2-7: REPEAT 指令语法 REPEAT #lit14 ; RCOUNT <-- lit14 ( 有效目标指令 ) 或 REPEAT Wn ; RCOUNT <-- Wn ( 有效目标指令 ) CPU REPEAT 操作 REPEAT 操作的循环计数保存在 14 位 REPEAT 循环计数器 (RCOUNT) 寄存器中, 该寄存器是存储器映射的 RCOUNT 由 REPEAT 指令初始化 如果 RCOUNT 为非零值, REPEAT 指令将 REPEAT 循环活动 (RA) 状态位 (SR<4>) 设为 1 RA 是只读位, 不能用软件修改 REPEAT 循环计数值大于 0 时,PC 不会递增 PC 递增被禁止直到 RCOUNT = 0 关于 REPEAT 循环的指令流示例, 请参见图 2-20 对于等于 0 的循环计数值,REPEAT 的作用相当于 NOP, 并且 RA(SR<4>) 位不置 1 REPEAT 循环在开始前实际上是被禁止的, 这样可以在预取后续指令时 ( 即在正常的执行流程中 ) 让目标指令只执行一次 注 : 紧随 REPEAT 指令之后的指令 ( 即目标指令 ) 总是至少执行一次, 该指令的执行次数总是会比 14 位立即数或 W 寄存器操作数指定的值多一次 2009 Microchip Technology Inc. DS70204B_CN 第 2-33 页

34 dspic33f 系列参考手册 图 2-20: REPEAT 指令流水线流程 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 1.REPEAT #0x2 取指 1 执行 1 2.MAC W4*W5,A,[W8]+=2,W4 取指 2 执行 2 不取指执行 2 不取指执行 2 3.BSET PORTA,#3 取指 3 执行 3 PC ( 指令结束时 ) PC PC+2 PC+2 PC+2 PC+4 PC+6 RCOUNT ( 指令结束时 ) X RA ( 指令结束时 ) 中断 REPEAT 循环 REPEAT 指令循环可在任何时候被中断 在异常处理期间,RA 位的状态保存在堆栈中以便让用户应用程序在任何数量的嵌套中断中进一步执行更多的 REPEAT 循环 SRL 寄存器压入堆栈后,RA 状态位被清零以便从 ISR 内部恢复正常执行流程 注 1: 如果 REPEAT 循环被中断且正在处理 ISR, 则用户应用程序在 ISR 内部执行另一条 REPEAT 指令前, 必须先将 REPEAT 计数 (RCOUNT) 寄存器压入堆栈 2: 如果在 ISR 内部使用 REPEAT 指令, 则用户应用程序在执行 RETFIE 指令前必须先将 RCOUNT 寄存器的值弹出堆栈 使用 RETFIE 指令从 ISR 返回 REPEAT 循环不需要任何特殊处理 中断会在 RETFIE 指令的第 3 个周期预取要重复的指令 当 SRL 寄存器被弹出堆栈时, 压入堆栈的 RA 位将会恢复, 此时如果它置 1, 那么中断的 REPEAT 循环将会恢复 注 : 如果重复的指令 (REPEAT 循环中的目标指令 ) 要使用 PSV 访问程序空间 (PS) 中的数据, 从异常处理程序中返回后第一次执行该指令将需要两个指令周期 类似于循环中的第一次迭代, 时序限制将不允许第一条指令在单个指令周期内访问驻留在程序空间中的数据 REPEAT 循环的提前终止 通过用软件将 RCOUNT 寄存器清零, 可以在 ISR 中比正常情况提前终止中断的 REPEAT 循环 REPEAT 指令的限制 除了以下指令外, 任何其他指令均可紧随 REPEAT 之后 : 程序流控制指令 ( 任何跳转 比较和跳过 子程序调用以及返回等指令 ) 另一条 REPEAT 或 DO 指令 DISI ULNK LNK PWRSAV 或 RESET 指令 MOV.D 指令 注 : 一些指令和 / 或指令寻址模式可以在 REPEAT 循环内执行, 但并不一定要重复所有指令 DS70204B_CN 第 2-34 页 2009 Microchip Technology Inc.

35 第 2 章 CPU DO 循环结构 DO 指令可以按指定次数执行一组指令, 无需软件开销 直到结束地址并包含结束地址在内的指令集合会被重复执行 DO 指令的 DO 迭代计数值可以通过一个 14 位立即数或通过在指令中声明的 W 寄存器的内容进行指定 例 2-8 中显示了 DO 指令的 14 位立即数形式的语法 例 2-8: LOOP_END: DO 指令的 14 位立即数形式的语法 DO #lit14,loop_end ; DCOUNT <-- lit14 Instruction1 Instruction2 : : Instruction n 2 例 2-9 中显示了 DO 指令的 W 寄存器声明形式的语法 : 例 2-9: LOOP_END: DO 指令的 W 寄存器声明形式的语法 DO Wn,LOOP_END ; DCOUNT <-- Wn<13:0> Instruction1 Instruction2 : : Instruction n CPU DO 循环结构中提供了以下功能 : 可以使用 W 寄存器来指定循环计数, 从而可以在运行时定义循环计数 指令执行顺序不需要是顺序的 ( 即, 可以存在跳转和子程序调用等 ) 循环结束地址不需要大于起始地址 DO 循环寄存器和操作 DO 循环执行的迭代数为 14 位立即数值 + 1, 或者是 Wn 值 +1 如果使用 W 寄存器来指定迭代数, 则高 2 位不用于指定循环计数 DO 循环的操作类似于 C 编程语言中的 DO-WHILE 结构, 因为循环中的指令总是至少执行一次 dspic33f 包含以下三个与 DO 循环相关的寄存器 : DO 循环起始地址 (DOSTART) 寄存器是一个 22 位寄存器, 它保存 DO 循环的起始地址 DO 循环结束地址 (DOEND) 寄存器是一个 16 位寄存器, 它保存 DO 循环的结束地址 DO 循环计数器 (DCOUNT) 寄存器是一个 16 位寄存器, 它保存要由循环执行的迭代数 这些寄存器是存储器映射的, 并在执行 DO 指令时由硬件自动装入 这些寄存器的 MSb 和 LSb 设置为 0 LSb 不存储在这些寄存器中, 因为 PC<0> 总是强制为 0 DO 循环活动 (DA) 状态位 (SR<9>) 指示单个 DO 循环 ( 或嵌套的 DO 循环 ) 正处于活动状态 执行 DO 指令时,DA 位会置 1, 这将允许在每个后续指令周期将 PC 地址与 DOEND 寄存器进行比较 当 PC 与 DOEND 中的值匹配时, DCOUNT 递减 Microchip Technology Inc. DS70204B_CN 第 2-35 页

36 dspic33f 系列参考手册 如果 DCOUNT 寄存器不为零, 则 PC 中会装入 DOSTART 寄存器中包含的地址, 以启动 DO 循环的另一次迭代 当 DCOUNT 变为零时, DO 循环终止 如果没有任何其他嵌套 DO 循环正在进行, 则 DA 位也会清零 注 : DO 循环嵌套 DOSTART DOEND 和 DCOUNT 寄存器各具有关联的影子寄存器, 使 DO 循环硬件可以支持一层的自动嵌套 DOSTART DOEND 和 DCOUNT 寄存器可由用户访问 在需要时, 可以手动保存它们来支持附加的嵌套 DO 循环嵌套层级 (DL<2:0>) 状态位 (CORCON<10:8>) 指示当前正在执行的 DO 循环的嵌套层级 执行第一条 DO 指令时,DL<2:0> 会设置为 B 001, 指示正在执行一层 DO 循环 DO 循环活动 (DA) 位 (SR<9>) 也将置 1 当执行第一个 DO 循环中的另一条 DO 指令时, 在 DOSTART DOEND 和 DCOUNT 寄存器更新为新的循环值之前, 它们的值会被传输到影子寄存器中 DL<2:0> 位会设置为 B 010, 指示正在执行第二个 嵌套的 DO 循环 DA (SR<9>) 位也会保持置 1 如果应用程序中不需要多于一层的 DO 循环嵌套, 则不需要特别注意 但是, 如果用户应用程序需要多于一层的 DO 循环嵌套, 则可以通过在执行下一条 DO 指令之前保存 DOSTART DOEND 和 DCOUNT 寄存器来实现 每当 DL<2:0> 为 B 010 或更高时, 都应当保存这些寄存器 当 DO 循环终止, 且 DL<2:0> = B 010 时, 将会自动从 DOSTART DOEND 和 DCOUNT 寄存器的影子寄存器中恢复它们 注 : DO 循环结构中的指令集合总是至少执行一次 DO 循环的执行次数总是比立即数或 W 寄存器操作数中指定的值多一次 DL<2:0> (CORCON<10:8>) 位组合 ( 逻辑或运算 ) 构成 DA (SR<9>) 位 如果正在执行嵌套的 DO 循环, 则只有与最外层循环关联的循环计数结束时 DA 位才会清零 中断 DO 循环 DO 循环可以在任意时刻被中断 如果在 ISR 期间要执行另一个 DO 循环, 用户应用程序必须检查 DL<2:0> 状态位, 并根据需要保存 DOSTART DOEND 和 DCOUNT 寄存器 如果用户应用程序可以确保在以下任意两者中只会执行一层 DO 循环, 则无需任何特别处理 : 后台和任何一个 ISR 处理程序 ( 如果使能中断嵌套 ) 中, 或者 后台和任意 ISR ( 如果禁止中断嵌套 ) 中或者, 可以在后台或以下任一中最多执行两个 ( 嵌套的 ) DO 循环 : 一个 ISR 处理程序 ( 如果使能中断嵌套 ), 或者 任何 ISR ( 如果禁止中断嵌套 ) 以上假设所有陷阱处理程序中都不使用任何 DO 循环 使用 RETFIE 指令从 ISR 返回 DO 循环不需要任何特殊处理 DS70204B_CN 第 2-36 页 2009 Microchip Technology Inc.

37 第 2 章 CPU DO 循环的提前终止 有两种方式可以早于正常情况而提前终止 DO 循环 : 通过提前 DO 循环终止控制 (EDT) 位 (CORCON<11>), 用户应用程序可以在 DO 循环完成所有循环之前终止循环 向 EDT 位写入 1 可以强制循环完成正在进行的迭代, 然后终止 如果在循环的倒数第二条指令或最后一条指令期间 EDT 置 1, 则会再执行一次循环的迭代 EDT 总是读为 0 ; 将它清零没有任何作用 在 EDT 位置 1 之后, 用户可以选择跳出 DO 循环 或者, 代码可以从除最后一条指令之外 ( 最后一条指令不能是程序流控制指令 ) 的任何其他点跳出循环 虽然 DA (SR<9>) 位使能 DO 循环硬件, 但除非在指令预取期间遇到倒数第二条指令的地址, 否则它没有任何作用 建议不要使用这种方法来终止 DO 循环 注 : 建议不要在不使用 EDT 的情况下退出 DO 循环, 因为硬件将会继续检查 DOEND 地址 DO 循环的限制 使用 DO 循环存在一些限制, 例如 : 何时可以读取 DOEND 寄存器 禁止将某些指令用作循环的最后一条指令 某些小循环长度是不允许的, 如表 2-8 中所列 ( 循环长度指在循环中重复的指令块的长度 ) 2 CPU DOEND 寄存器的限制 所有 DO 循环都必须至少包含两条指令, 因为循环终止测试是在倒数第二条指令处执行 对于单指令循环, 应使用 REPEAT 在紧随 DO 指令或对 DOEND SFR 的文件寄存器写操作之后的指令中, 用户软件不能读取 SFR 和 DOEND DO 循环中倒数第二条指令之前的指令不应修改 : 由 CPU IPL 状态位 (SR<7:5>) 控制的 CPU 优先级 由中断允许控制寄存器 IEC0 IEC1 和 IEC2 控制的外设中断允许位 由中断优先级控制寄存器 IPC0 至 IPC11 控制的外设中断优先级位 如果未遵循这些限制, DO 循环可能无法正确执行 最后一条指令的限制 DO 循环的最后一条指令不应为以下任一指令 : 程序流控制指令 ( 例如, 任何跳转 比较和跳过 GOTO CALL RCALL 以及 TRAP 指令 ) 另一条 REPEAT 或 DO 指令 REPEAT 循环中的目标指令 该限制意味着最后一条指令的前一条指令也不能为 REPEAT 在程序空间中占用两个字的任何指令 DISI 指令 RETURN RETFIE 和 RETLW 可以作为 DO 循环的最后一条指令正确工作, 但用户应用程序需要负责返回循环来完成循环 2009 Microchip Technology Inc. DS70204B_CN 第 2-37 页

38 dspic33f 系列参考手册 表 2-8: 循环长度限制 循环长度定义为 DO 循环中最后一条指令相对于第一条指令的有符号偏移 循环长度与循环中第一条指令的地址相加时, 就会构成循环最后一条指令的地址 表 2-8 列出了需要避免的循环长度 需要避免的循环长度 循环长度避免原因 -2 从循环中的第一条指令处 ( 即, PC 地址处 ) 开始执行, 并继续执行, 直到预取到循环结束地址 ( 在这种情况下为 [PC 4]) 因为这是 DO 指令的第一个字, 所以它会再次执行 DO 指令, 重新初始化 DCOUNT 并预取 [PC] 只要预取到循环结束地址 [PC 4], 这会一直不断继续 n 为该值时有可能会产生一个无限循环 ( 会受看门狗定时器复位影响 ) 例如 : end_loop: DO #33, end_loop ;DO is a two-word instruction NOP ;2nd word of DO executes as a NOP ADD W2,W3,W4 ;First instruction in DO loop([pc]) -1 从循环中的第一条指令处 ( 即, 在 [PC] 处 ) 开始执行, 并继续执行, 直到预取到循环结束地址 ([PC 2]) 因为循环结束地址是 DO 指令的第二个字, 它会被作为 NOP 执行, 但仍然会预取 [PC] 然后循环将再次执行 只要预取到循环结束地址 [PC 2], 这就会一直不断继续, 循环不会终止 如果 DCOUNT 寄存器中的值变为零, 并在随后的递减中产生借位, 循环将会终止 但是, 在这种情况下, 循环外部的初始指令再次成为第一条循环指令 例如 : DO #33, end_loop ;DO is a two-word instruction end_loop: NOP ;2nd word of DO executes as a NOP ADD W2,W3,W4 ;First instruction in DO loop([pc]) 0 从循环中的第一条指令处 ( 即, 在 [PC] 处 ) 开始执行, 并继续执行, 直到预取到循环结束地址 ([PC]) 如果循环继续, 该预取操作会导致 DO 循环硬件向 PC 中装入 DOEND 地址 ([PC]), 用于下一次取指 ( 它又是 [PC]) 在循环的第一个真正迭代之后, 循环中的第一条指令会重复执行, 直到循环计数下溢和循环终止 发生这种情况时, 循环外部的初始指令是 [PC] 之后的指令 例如 : DO #33, end_loop ;DO is a two-word instruction NOP ;2nd word of DO executes as a NOP end_loop: ADD W2,W3,W4 ;First instruction in DO loop([pc]) DS70204B_CN 第 2-38 页 2009 Microchip Technology Inc.

39 第 2 章 CPU 2.10 地址寄存器相依性 dspic33f 架构支持大多数 MCU 类指令的数据空间读 ( 源寄存器 ) 和数据空间写 ( 目标寄存器 ) 操作 AGU 进行的有效地址 (EA) 计算和后续数据空间读或写, 每个操作都需要一个指令周期来完成 该时序导致每条指令的数据空间读和写操作部分重叠, 如图 2-21 所示 由于这一重叠, 先写后读 (Read-After-Write, RAW) 数据相依性可能会在指令边界处发生 RAW 数据相依性在运行时由 dspic33f CPU 检测并处理 图 2-21: 数据空间访问时序 1 个指令周期 (TCY) Add MOV W0, [W7], [W10] [W8], [W9]++ 2 TCY0 TCY1 TCY2 指令寄存器内容 X 空间 RAGU [W7] ADD [W8] MOV CPU X 空间 WAGU [W10] [W9]++ X 空间地址 W7 W10 W8 W 先写后读 (RAW) 相依性规则 如果 W 寄存器在当前指令中被用作写操作目标寄存器, 并且所预取到指令读取的也是同一个 W 寄存器, 则适用以下规则 : 如果对目标寄存器的写入 ( 当前指令 ) 不修改 Wn 的内容, 则不发生停顿 如果对源寄存器的读取 ( 预取指令 ) 不使用 Wn 计算 EA, 则不发生停顿在每个指令周期中,dsPIC33F 硬件会自动检查以确定是否将发生 RAW 数据相依性 如果不满足上述条件, CPU 会在执行预取指令前自动增加一个指令周期的延时 指令停顿使目标 W 寄存器有足够的时间先执行写入, 再让下一条 ( 预取的 ) 指令使用写入的数据 表 2-9 提供了 RAW 相依性的汇总 2009 Microchip Technology Inc. DS70204B_CN 第 2-39 页

40 dspic33f 系列参考手册 表 2-9: 使用 Wn 的目标寻址模式 先写后读相依性汇总 指令停顿周期 使用 Wn 的源寻址模式 指令停顿实际上是附加指令读阶段前的一个指令周期的等待时间, 以便让前面的写操作先完成再发生下一个读操作 为了达到中断延时的目的, 停顿周期与检测到它的指令后的那条指令是关联的 ( 即停顿周期总是在指令执行周期之前 ) 如果检测到 RAW 数据相依性, dspic33f CPU 将开始指令停顿周期 在指令停顿期间, 会发生以下事件 : 正在进行的 ( 上一条指令的 ) 写操作可以正常完成 在指令停顿周期结束前不会寻址数据空间 在指令停顿周期结束前禁止 PC 递增 在指令停顿周期结束前禁止再次取指 指令停顿周期和中断 当会造成指令停顿的两条相邻指令与中断事件同时发生时, 可能会产生以下两个结果之一 : 如果中断与第一条指令同时发生, 则允许第一条指令完成, 而第二条指令将在 ISR 完成后执行 在这种情况下, 由于异常处理为第一条指令提供了完成写阶段的时间, 停顿周期将在第二条指令中被消除 如果中断与第二条指令同时发生, 则允许第二条指令和附加的停顿周期在 ISR 前执行 在这种情况下, 与第二条指令关联的停顿周期会正常执行 但是, 停顿周期实际上会被嵌入到异常处理时序内 异常处理将会继续进行, 如同普通的单周期指令或双周期指令被中断一样 状态 示例 (Wn = W2) 直接寻址直接寻址允许 ADD.w W0, W1, W2 MOV.w W2, W3 直接寻址 间接寻址 停顿 ADD.w W0, W1, W2 MOV.w [W2], W3 直接寻址 带有修改的间接寻址 停顿 ADD.w W0, W1, W2 MOV.w [W2++], W3 间接寻址 直接寻址 允许 ADD.w W0, W1, [W2] MOV.w W2, W3 间接寻址 间接寻址 允许 ADD.w W0, W1, [W2] MOV.w [W2], W3 间接寻址 带有修改的间接寻址 允许 ADD.w W0, W1, [W2] MOV.w [W2++], W3 带有修改的间接寻址 直接寻址 允许 ADD.w W0, W1, [W2++] MOV.w W2, W3 间接寻址 间接寻址 停顿 ADD.w W0, W1, [W2] MOV.w [W2], W3 ; W2=0x0004 (mapped W2) 间接寻址 带有修改的间接寻址 停顿 ADD.w W0, W1, [W2] MOV.w [W2++], W3 ; W2=0x0004 (mapped W2) 带有修改的间接寻址 间接寻址 停顿 ADD.w W0, W1, [W2++] MOV.w [W2], W3 带有修改的间接寻址 带有修改的间接寻址 停顿 ADD.w W0, W1, [W2++] MOV.w [W2++], W3 DS70204B_CN 第 2-40 页 2009 Microchip Technology Inc.

41 第 2 章 CPU 指令停顿周期和流改变指令 CALL 和 RCALL 指令使用工作寄存器 W15 写入堆栈, 并且如果下一条指令的源读取使用 W15, 可能会因此在下一条指令前强制执行指令停顿 RETFIE 和 RETURN 指令永远不能在下一条指令前强制执行指令停顿, 因为这些指令只能执行读操作 但是, RETLW 指令能强制执行停顿, 因为它会在最后一个周期写入 W 寄存器 由于 GOTO 和跳转指令不执行写操作, 因此永远不能强制执行指令停顿 指令停顿以及 DO 和 REPEAT 循环 除了增加指令停顿周期外, RAW 数据相依性不会影响 DO 或 REPEAT 循环的操作 REPEAT 循环中预取的指令在循环完成或发生异常前不会改变 虽然寄存器相依性检查会跨指令边界进行, 在 REPEAT 循环中 dspic33f CPU 实际上会比较同一条指令的源和目标地址 DO 循环的最后一条指令将预取循环起始地址处的指令或下一条指令 ( 循环外部 ) 指令停顿决定将基于循环中的最后一条指令和预取指令的内容 指令停顿和程序空间可视性 (PSV) 通过使能 PSV (CORCON<2>) 位将程序空间 (PS) 映射到数据空间, 并且 X 空间 EA 处于可视的程序空间窗口中时, 读周期会被重定向到程序空间中的地址 从程序空间访问数据最多需要 3 个指令周期 PSV 地址空间中的指令操作与任何其他指令一样, 会受到 RAW 数据相依性和所造成指令停顿的影响 考虑如例 2-10 中所示的代码段 CPU 例 2-10: 在 PSV 中操作的代码示例 ADD W0, [W1], [W2++] ; PSV = 1, W1=0x8000, PSVPAG=0xAA MOV [W2], [W3] 该指令序列将需要 5 个指令周期来执行 增加的两个指令周期用于通过 W1 执行 PSV 访问 为了解决 W2 造成的 RAW 数据相依性, 插入了一个指令停顿周期 2009 Microchip Technology Inc. DS70204B_CN 第 2-41 页

42 DS70204B_CN 第 2-42 页 2009 Microchip Technology Inc 寄存器映射 表 2-3 中提供了与 dspic33f CPU 相关的寄存器汇总 表 2-10: CPU 寄存器映射 名称 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 所有复位时的状态 W0 W0 (WREG) W1 W W2 W W3 W W4 W W5 W W6 W W7 W W8 W W9 W W10 W W11 W W12 W W13 W W14 W W15 W SPLIM SPLIM ACCAL ACCAL ACCAH ACCAH ACCAU ACCA<39> 的符号扩展 ACCAU ACCBL ACCBL ACCBH ACCBH ACCBU ACCB<39> 的符号扩展 ACCBU PCL PCL PCH PCH TBLPAG TBLPAG PSVPAG PSVPAG RCOUNT RCOUNT xxxx xxxx xxxx xxxx DCOUNT DCOUNT xxxx xxxx xxxx xxxx DOSTARTL DOSTARTL 0 xxxx xxxx xxxx xxx0 DOSTARTH DOSTARTH xx xxxx DOENDL DOENDL 0 xxxx xxxx xxxx xxx0 图注 : x = 复位时的未知值, = 未实现, 读为 0 复位值以十六进制显示 注 : 关于特定内核寄存器映射的更多详细信息, 请参见器件数据手册 dspic33f 系列参考手册

43 2009 Microchip Technology Inc. DS70204B_CN 第 2-43 页 表 2-10: CPU 寄存器映射 ( 续 ) 名称 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 所有复位时的状态 DOENDH DOENDH xx xxxx SR OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C CORCON US EDT DL<2:0> SATA SATB SATDW ACCSAT IPL3 PSV RND IF MODCON XMODEN YMODEN BWM<3:0> YWM<3:0> XWM<3:0> XMODSRT XMODSRT<15:0> 0 xxxx xxxx xxxx xxx0 XMODEND XMODEND<15:0> 1 xxxx xxxx xxxx xxx1 YMODSRT YMODSRT<15:0> 0 xxxx xxxx xxxx xxx0 YMODEND YMODEND<15:0> 1 xxxx xxxx xxxx xxx1 XBREV BREN XBREV<14:0> xxxx xxxx xxxx xxxx DISICNT DISICNT<13:0> 图注 : x = 复位时的未知值, = 未实现, 读为 0 复位值以十六进制显示 注 : 关于特定内核寄存器映射的更多详细信息, 请参见器件数据手册 第 2 章 CPU CPU 2

44 dspic33f 系列参考手册 2.12 相关应用笔记 本节列出了与手册本章内容相关的应用笔记 这些应用笔记可能并不是专为 dspic33f 产品系列而编写的, 但其概念是相近的, 通过适当修改并受到一定限制即可使用 当前与 CPU 模块相关的应用笔记包括 : 标题目前没有相关的应用笔记 应用笔记编号 N/A 注 : 如需获取更多 dspic33f 系列器件的应用笔记和代码示例, 请访问 Microchip 网站 ( DS70204B_CN 第 2-44 页 2009 Microchip Technology Inc.

45 第 2 章 CPU 2.13 版本历史版本 A (2007 年 4 月 ) 这是本文档的初始版本 版本 B (2009 年 9 月 ) 该版本包括以下更新 : 注 : - 在第 节 地址寄存器相依性 中增加了一条关于程序存储器错误的 注 寄存器 : - 删除了第 2.11 节 寄存器映射 中表 2-10 的 地址 列 章节 : - 使用以下数据更新了第 2.1 节 简介 : 除了改变程序流的指令 双字传送 (MOV.D) 指令 表指令, 还有访问程序空间可视性 (PSV) 的指令执行需要多于一个周期外, 所有指令都在单个周期内执行 - 将第 节 DO 循环结构 中的 REPEAT 计数值更新为 DO 迭代计数值 - 将第 节 指令停顿周期和中断 中的异常处理更新如下 : 异常处理将会继续进行, 如同普通的单周期指令或双周期指令被中断一样 - 将第 节 指令停顿和程序空间可视性 (PSV) 中的 读或写周期 更新为 读周期 表格 : - 在第 节 MCU 乘法指令 中增加了关于 乘法选项 的表 ( 见表 2-5) 更新了本文档中对外部文档的错误引用 对整篇文档进行了其他少量修正, 如语言和格式的更新 2 CPU 2009 Microchip Technology Inc. DS70204B_CN 第 2-45 页

46 dspic33f 系列参考手册 注 : DS70204B_CN 第 2-46 页 2009 Microchip Technology Inc.

Section1_16bit Arc.ppt

Section1_16bit Arc.ppt 16-bit Elite Program 2009 Summer Section-1 Microchip 16-bit 2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1 MCU CPU (NOP),, (Data Memory), I/O CPU w. ALU/Working Reg. Data Mem. Data

More information

dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件

dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件 第 2 章 CPU 目录 本章包括下列主题 : 2 2.1 简介...2-2 2.2 编程模型... 2-5 2.3 软件堆栈指针... 2-9 2.4 CPU 寄存器说明... 2-13 2.5 算术逻辑单元 (ALU)... 2-19 2.6 DSP 引擎... 2-20 2.7 除法支持... 2-30 2.8 指令流类型... 2-31 2.9 循环结构... 2-34 2.10 地址寄存器相依性...

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 M8Rxxx 指令集说明 Version 1.04 2014 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 修正记录 版本 日期 描述 Ver1.02 2014-5-15 补全指令说明 Ver1.03 2014-10-8 勘误 Ver1.04

More information

dsPIC Architecture Overview

dsPIC Architecture Overview Digital Signal Control 2004 Microchip Technology dspic30f 16-bit Architecture Workshop 1 dspic30f MCU P P MCU 2004 Microchip Technology dspic30f 16-bit Architecture Workshop 2 dspic30f dspic 1. 2. 3. dspic30f:

More information

dsPIC30F Programmer’s Reference Manual

dsPIC30F Programmer’s Reference Manual dspic30f/33f 程序员 参考手册 高性能数字信号控制器 2006 Microchip Technology Inc. 初稿 DS70157B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

More information

33023A.book(31005A_cn.fm)

33023A.book(31005A_cn.fm) 第 5 章 CPU 和 ALU 目录 本章包括下面一些主要内容 : 5. 简介...5-2 5.2 指令的一般格式... 5-4 5.3 中央处理单元 (CPU)... 5-4 5.4 指令时钟... 5-4 5.5 算术逻辑单元 (ALU)... 5-5 5.6 状态寄存器... 5-6 5.7 OPTION_REG 寄存器... 5-8 5.8 电源控制寄存器... 5-9 5.9 设计技巧...

More information

39733a_cn.book

39733a_cn.book 第 45 章具有扩展数据空间 (EDS) 的数据存储器 目录 本章包括下列主题 : 45.1 简介... 45-2 45.2 数据存储器构成... 45-3 45.3 扩展数据空间... 45-7 45.4 数据对齐... 45-14 45.5 软件堆栈... 45-15 45.6 程序存储空间与数据存储空间的连接... 45-15 45.7 相关应用笔记... 45-16 45.8 版本历史...

More information

70135e_cn.book

70135e_cn.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70135E_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

Microsoft Word - Ö¸Á.doc

Microsoft Word - Ö¸Á.doc 指令集说明 注 由于资源大小问题 其中以下几款 MCU 只有 62 条指令 其余均为 63 条指令 HT48CA0/HT48RA0A 无 RETI 指令 HT48R05A-1 无 TABRDL 指令 指令寻址方式有下面 5 种 立即寻址 此一寻址法是将立即的常数值紧跟在运算码 (opcode) 后 例如 MOV A, 33H ADD A, 33H 直接寻址 直接寻址的情況只允许在存储器之间作数据传送

More information

70149B.book

70149B.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70149B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

70178C.book

70178C.book 数 据 手 册 28/44 引 脚 高 性 能 开 关 电 源 数 字 信 号 控 制 器 2007 Microchip Technology Inc. 初 稿 DS70178C_CN 请 注 意 以 下 有 关 Microchip 器 件 代 码 保 护 功 能 的 要 点 : Microchip 的 产 品 均 达 到 Microchip 数 据 手 册 中 所 述 的 技 术 指 标 Microchip

More information

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378>

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378> 第一章第二章 Q2 1: 高序 : 最低位字节存储在字的最低位 ; 低序 : 最低位字节存储在字的最高位 ; Q2 2: 冯. 诺依曼结构 : 数据和指令都存储在同一存储器中 ; 哈佛结构 : 数据和程序存储在各自独立的存储器中 Q2 3: a) ARM 有 16 个通用寄存器,r0 r15, 其中 r15 还被用作程序计数器 b) CPSR 是程序状态寄存器, 包含了条件码标识 中断禁止位 当前处理器模式和其他状态

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

70116g_cn.book

70116g_cn.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70116G_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic30f6010a/6015 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN

查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic30f6010a/6015 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN 查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

33023A.book(31006A_cn.fm)

33023A.book(31006A_cn.fm) 6 第 6 章存储器构成 存储器构成 目录 本章包括下面一些主要内容 : 6.1 简介...6-2 6.2 程序存储器构成... 6-2 6.3 数据存储器构成... 6-8 6.4 初始化... 6-14 6.5 设计技巧... 6-16 6.6 相关应用笔记... 6-17 6.7 版本历史... 6-18 2004 Microchip Technology Inc. DS31006A_CN 第

More information

dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 产品系列 表 1 中列出了每款器件的器件名称 引脚数 存储容量和可用的外设, 表后还附有它们的引脚图 表 1: dspic33fj16(gp/mc)101/102 器件特性 器件 引脚

dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 产品系列 表 1 中列出了每款器件的器件名称 引脚数 存储容量和可用的外设, 表后还附有它们的引脚图 表 1: dspic33fj16(gp/mc)101/102 器件特性 器件 引脚 dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 16 位数字信号控制器 ( 最多 32 KB 闪存和 2 KB SRAM) 工作条件 3.0V 至 3.6V, -40 C 至 +125 C, DC 至 16 MIPS 内核 :16 位 dspic33f CPU 高效代码 (C 和汇编 ) 架构 两个 40 位宽累加器 带双数据取操作的单周期

More information

PIC24 intro.fm

PIC24 intro.fm 1 第 1 章简介 简介 目录 本章包括下列主题 : 1.1 简介... 1-2 1.2 手册目标... 1-2 1.3 器件结构... 1-2 1.4 开发支持... 1-4 1.5 样式和符号约定... 1-4 1.6 相关文档... 1-6 1.7 版本历史... 1-7 2008 Microchip Technology Inc. 超前信息 DS39718A_CN 第 1-1 页 PIC24F

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 1. 介绍 Application Notes EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 * 周期, 其余为单指令周期 ( 部分第一代芯片 JMP CALL RET RETL RETI JBS JBC JZ JZA DJZ DJZA 指令为 2

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

dsPIC33FJ32MC202/2024 and dsPIC33FJ16MC304 Data Sheet

dsPIC33FJ32MC202/2024 and dsPIC33FJ16MC304 Data Sheet dspic33fj32mc202/204 和 dspic33fj16mc304 数据手册高性能 16 位数字信号控制器 2007 Microchip Technology Inc. 初稿 DS70283B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下,

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

条 件 的 限 制, 可 在 广 西 参 加 普 通 高 考, 特 指 不 受 学 籍 户 籍 迁 入 的 年 限 限 制, 但 在 高 考 报 名 时 考 生 的 学 籍 户 籍 必 须 已 迁 入 广 西 二 外 来 人 员 需 要 提 供 的 审 查 材 料 ( 一 ) 按 照 自 治 区 招

条 件 的 限 制, 可 在 广 西 参 加 普 通 高 考, 特 指 不 受 学 籍 户 籍 迁 入 的 年 限 限 制, 但 在 高 考 报 名 时 考 生 的 学 籍 户 籍 必 须 已 迁 入 广 西 二 外 来 人 员 需 要 提 供 的 审 查 材 料 ( 一 ) 按 照 自 治 区 招 广 西 壮 族 自 治 区 南 宁 市 招 生 考 试 院 南 招 考 院 2015 25 号 关 于 做 好 外 来 务 工 人 员 随 迁 子 女 和 外 省 户 籍 学 籍 迁 入 人 员 在 南 宁 市 参 加 2016 年 普 通 高 考 全 国 统 考 报 名 资 格 审 查 工 作 的 通 知 各 县 招 生 办, 市 区 各 普 通 高 中 中 职 学 校 : 按 照 自 治 区 招

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 数据手册 高性能 16 位数字信号控制器 2010 Microchip Technology Inc. 初稿 DS70593B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前,

More information

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150 DSP 原理与应用教程 ( 张卫宁著 ) 课后习题答案第 3 章 (2014 年 10 月整理 刘忠国 ) 第三章习题答案 : 作业 :3.2, 3.6, 3.7,3.8, 3.11, 3.17, 3.19,3.21 3.1. TMS320C54x 的数据空间寻址方式各有什么特点? 应该应用在什么场合? ( 教材涉及特点较少 ) 答 :TMS320C54x 有 7 种基本的数据寻址方式 : 立即寻址,

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

DSP2000.ppt

DSP2000.ppt The success's road TI 2000 系列 DSP 开发应用 www.farsight.com.cn TI 2000 系列 DSP 开发应用 v1.tms320c2000 系列 DSP 介绍 v2.tms320c2000 系列 DSP 体系结构 v3.tms320c2000 系列 DSP 开发环境 v4.tms320c2000 系列 DSP 开发案例 1. TMS320C2000 系列

More information

上海盛瑞电子有限公司

上海盛瑞电子有限公司 2015/5/22 1 / 9 一运动指令 MoveJ MoveJ[\Conc,]ToPoint,Speed[\V] [\T],Zone[\Z][\Inpos],Tool[\WObj]; 1 [\Conc,]: 协作运动开关 (switch) 2 ToPoint: 目标点, 默认为 * (robotarget) 3 Speed: 运行速度数据 (speeddata) 4 [\V]: 特殊运行速度 mm/s

More information

数据库系统概论

数据库系统概论 指令系统 是指 CPU 能完成的所有 指令的集合, 它是在 CPU 设计时就确定了的 所以, 对不同的 CPU, 其指令系统中所包含的具体指令将是各不相同的 但 8088/8086 CPU 的指令系统是完全一样的 8088/8086 CPU 的指令系统可分成下面 9 类 : (1) 数据传送指令 ; (2) 算术运算指令 ; (3) 逻辑运算指令 ; (4) 移位指令 ; (5) 标志处理指令和 CPU

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 数据手册 高性能 16 位数字信号控制器 2010 Microchip Technology Inc. 初稿 DS70594B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前,

More information

Microsoft PowerPoint - 第01章 基础知识.pptx

Microsoft PowerPoint - 第01章 基础知识.pptx 微处理器与微计算机系统 教材 : 单片机原理与应用及 C51 程序设计 ( 第 3 版 ) 清华大学出版社 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@mail.xhu.edu.cn 西华大学电气与电子信息学院 第 1 章计算机基础知识 主要内容 : 1 有符号数的表示 2 微型计算机工作原理 3 单片机的概念及特点 A Historical Background

More information

微机第02章1(指令寻址)

微机第02章1(指令寻址) 微机原理及应用 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 西华大学电气信息学院 1 2 第 2 章微机的组成及微处理器的功能结构 2.1 微型计算机的组成 2.2 80X86 系列微处理器的功能结构 3 教学重点 80X86 系列微处理器的功能结构 80X86 的存储器分段管理方式 4 2.1 微型计算机的组成 AB 运算器

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 第 3 章 8086 的寻址方式和指令系统 (1) 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 1 主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 3.1 8086 的寻址方式 两种不同的类型 : 一类是程序地址 ( 在代码段中 ) 的寻址方式 ; 另一类是操作数地址的寻址方式

More information

MDT90P01 4-Bit RISC MCU 使用及注意事项 1. MDT90P01 4-bit RISC MCU PIN MAP: SOT-26 PB0 1 6 PB3 VSS 2 5 VDD PB1 3 4 PB2/RTCC 2. IC 烧入注意事项 : A. 需制作转接座 : Writer

MDT90P01 4-Bit RISC MCU 使用及注意事项 1. MDT90P01 4-bit RISC MCU PIN MAP: SOT-26 PB0 1 6 PB3 VSS 2 5 VDD PB1 3 4 PB2/RTCC 2. IC 烧入注意事项 : A. 需制作转接座 : Writer MT90P0 4-Bit RISC MCU 使用及注意事项 MT90P0 4-bit RISC MCU PIN MAP: SOT-26 PB0 6 PB3 VSS 2 5 V PB 3 4 PB2/RTCC 2 IC 烧入注意事项 : A 需制作转接座 : Writer PIN MAP: V NC PB3 PB2 VSS PB PB0 NC ( 底 ) B 需更改 Writer Firmware WM0

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information

* r p . 4 6 12 3 5 7 8 9bk bm btbsbrbqbp bo bn bl [ ] [ ] [ ] [ ] [SET] 1 2 3 4 5 6 7. cmcl ck 8 9 0 bk bl bm bn bo 1 2 1 2+ - bp bq 8 2 4 6 br r bs p bt ck cl cm 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

L15 MIPS Assembly

L15 MIPS Assembly Lecture 19: MIPS Assembly Language 程序的机器级表示主要内容 MIPS 指令格式 R- 类型 / I- 类型 / J- 类型 MIPS 寄存器 长度 / 个数 / 功能分配 MIPS 操作数 寄存器操作数 / 存储器操作数 / 立即数 / 文本 / 位 MIPS 指令寻址方式 立即数寻址 / 寄存器寻址 / 相对寻址 / 伪直接寻址 / 偏移寻址 MIPS 指令类型

More information

第七章 中断

第七章 中断 计算机组成原理 总结 图说 COD llxx@ustc.edu.cn 计算科学 (Computing) 计算机组成 :how computers work 硬盘 电源导线和电缆 软驱 内存 扩展槽 扩展卡 主板 微处理器 (CPU) 各种外设接口, 包括 : 键盘 鼠标 显示器 USB 声卡 网卡 并行口等 CPU 风扇支架 PCI 扩展槽 IDE 内存 CPU 硬条插盘接插槽槽口 华硕 P4S533-MX

More information

lecture21

lecture21 Lecture 21: CPU - Datapath and Control 中央处理器 : 数据通路和控制器 singlepath2 单周期数据通路的设计 主要内容 CPU 的功能及其与计算机性能的关系 数据通路的位置 单周期数据通路的设计 数据通路的功能和实现 - 操作元件 ( 组合逻辑部件 ) - 状态 / 存储元件 ( 时序逻辑部件 ) 数据通路的定时 选择 MIPS 指令集的一个子集作为

More information

101

101 Lecture 04 Modeling, Anlysis nd Simultion in Logic Design 逻辑设计中的建模 分析与仿真 Dr. Engineering Design Process 工程设计过程 定义问题研究勾画可能的解答 Identify nd define prolem reserch sketch possile solutions 建模 Modeling 分析 Anlysis

More information

untitled

untitled CPU!! 00-11-8 Liping zhang, Tsinghua 1 : ADD(r1, r, r) CMPLEC(r, 5, r0) MUL(r1, r, r) SUB(r1, r, r5) ADD r, ( ) r CMP. CMP r.. t t + 1 t + t + t + t + 5 t + 6 IF( ) ADD CMP MUL SUB RF NOP ADD CMP MUL SUB

More information

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模 新一代超低功耗 16 位单片机 TI MSP430 系列 美国 TI 公司的 MSP430 系列单片机可以分为以下几个系列 X1XX X3XX X4XX 等等 而且 在不断发展 从存储器角度 又可分为 ROM C 型 OTP P 型 EPROM E 型 Flash Memory F 型 系列的全部成员均为软件兼容 可以方便地在系列各型号间移植 MSP430 系列单片机 的 MCU 设计成适合各种应用的

More information

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

More information

Microsoft Word - LMB402CBC-AppNote-V0.1.doc

Microsoft Word - LMB402CBC-AppNote-V0.1.doc LMB402CBC 液晶显示模块应用参考 深圳市拓普微科技开发有限公司 版本描述日期编者 0.1 新版本 2006-02-09 杨军 http://www.topwaysz.com 1 / 1 目录 1 概述 3 2 硬件接口 3 3 软件特性 3 3.1 控制器接口信号说明 3 3.2 模块指令系统 4 4 显示数据存储器的地址 4 5 字符发生器 CGRAM 的地址 5 6 应用举例 5 6.1

More information

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode]

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode] 的架构 ADS 的通讯机制 ADS-Client Request -> Confirmation Indication

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 查询 DSPIC33FJ64GP706( 汉 ) 供应商捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxgpx06/x08/x10 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70286A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

文件名

文件名 MICROCHIP PIC10F200/202/204/206 6 8 FLASH PIC10F200 PIC10F202 PIC10F204 PIC10F206 RISC CPU 33 12 8 8 4MHz 1 s 4MHz 1% TM ICSP TM ICD POR DRT WDT RC MCLR I/O /CMOS < 350 A @ 2V 4 MHz 100 na @ 2V FLASH 10000

More information

AT89C2051中文资料.doc

AT89C2051中文资料.doc 图形点阵液晶显示模块使用手册 TG12864C(L) 广州捷胜吉电子科技 地址 : 广州市天河区天河路 561# 新赛格电子城 B2226 电话 :(020)33550997 13829772038 网址 :WWW.GZJSJDZ.COM E-mail:CJKD@21CN.COM 目 录 ( 一 ) 概述 (1) ( 二 ) 外形尺寸图 (1) ( 三 ) 模块主要硬件构成说明 (2) ( 四 )

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-12 9.4 DMT 工作原理... 9-16 9.5 中断和复位产生... 9-18 9.6 I/O 引脚... 9-21 9.7 调试和节能模式下的操作... 9-21

More information

数据库系统概论

数据库系统概论 所谓寻址方式, 就是指令中用于说明操 作数所在地或者所在地地址的方法 8088/8086 的寻址方式分为两类 : 关于寻找数据的寻址方式 关于寻找转移地址的寻址方式 下面讲关于数据的寻址方式时, 均以数 据传送指令 MOV 为例讲解 MOV 指令格式如下 : MOV DST, SRC 助记符 目的操作数 指令完成的功能 : (DST) 源操作数 (SRC) 一. 关于寻找数据的寻址方式 ( 共 8

More information

33023A.book(31026A_cn.fm)

33023A.book(31026A_cn.fm) 26 第 26 章看门狗定时器与休眠模式 目录 看门狗定时器与休眠模式 本章包括下面一些主要内容 : 26.1 简介... 26-2 26.2 控制寄存器... 26-3 26.3 看门狗定时器 (WDT) 的操作... 26-4 26.4 休眠省电模式... 26-7 26.5 初始化... 26-9 26.6 设计技巧... 26-10 26.7 相关应用笔记... 26-11 26.8 版本历史...

More information

<4D F736F F D20B5DAC1F9D5C2CFB0CCE2B4F0B0B8A3A8CDF8D5BEA3A92E646F63>

<4D F736F F D20B5DAC1F9D5C2CFB0CCE2B4F0B0B8A3A8CDF8D5BEA3A92E646F63> 第六章中央处理器 2. 简单回答下列问题 ( 参考答案略 ) ( 1) CPU 的基本组成和基本功能各是什么? ( 2) 取指令部件的功能是什么? ( 3) 控制器的功能是什么? ( 4) 为什么对存储器按异步方式进行读写时需要 WMFC 信号? 按同步方式访问存储器时, CPU 如何实现存储器读写? ( 5) 单周期处理器的 CPI 是多少? 时钟周期如何确定? 为什么单周期处理器的性能差? 元件在一个指令周期内能否被重复使用?

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 第 3 章 8086 的寻址方式和指令系统 (2) 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 1 3.3 8086 指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 3.3.1 数据传送指令 可实现 存储器 立即数 段寄存器 CS DS

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 查询 DSPIC33FJ32GP302 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fj32gp302/304 dspic33fj64gpx02/x04 和 dspic33fj128gpx02/x04 数据手册 高性能 16 位数字信号控制器 2008 Microchip Technology Inc. 超前信息 DS70292A_CN 请注意以下有关 Microchip

More information

Section 9. Watchdog, Deadman, and Power-up Timers

Section 9. Watchdog, Deadman, and Power-up Timers 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-13 9.4 DMT 工作原理... 9-17 9.5 中断和复位产生... 9-19 9.6 I/O 引脚... 9-22 9.7 调试和节能模式下的操作... 9-22

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

LETD型LED灯炮规格的更改

LETD型LED灯炮规格的更改 2018 十二月 1/10 页 软件错误问题软件错误 1 Automation Organizer(WindLDR) 软件之修复 针对版本 : WindLDR 版本 8.2.0 至版本 8.9.1 (Automation Organizer 版本 3.20 至 版本 3.12.1) 注 : 包括由官网下载的版本 当使用以上版本软件, 软件错误 1 将会出现在以下型号 : FC6A CPU 模块 -

More information

Section 5. Flash Programming

Section 5. Flash  Programming 第 5 章闪存编程 目录 本章包括下列主题 : 5.1 简介...5-2 5.2 表指令操作... 5-2 5.3 控制寄存器... 5-5 5.4 运行时自编程 (RTSP)... 5-8 5.5 寄存器映射... 5-16 5.6 相关应用笔记... 5-17 5.7 版本历史... 5-18 5 闪存编程 2011 Microchip Technology Inc. DS70609C_CN 第

More information

PIC16F F MPLAB 08 16F LED 15 LED

PIC16F F MPLAB 08 16F LED 15 LED PIC16F877 PIC16F877 03 16F877 05 06 MPLAB 08 16F877 13 LED 15 LED 17 20 24 2 PIC16F877 PIC16F877 DIP VDD VSS CLOCK CPU :,AND,OR,XOR ROM: CPU ROM RAM: CPU,CPU I/O:CPU, CPU,, 16F877 RAM 512 128 Bank Bank

More information

第 40 章包括可编程欠压复位在内的复位机制 目录 本章包括下列主题 : 40.1 简介 复位时的时钟源选择 上电复位 (POR) MCLR 复位 软件 RESET 指令 (SWR)

第 40 章包括可编程欠压复位在内的复位机制 目录 本章包括下列主题 : 40.1 简介 复位时的时钟源选择 上电复位 (POR) MCLR 复位 软件 RESET 指令 (SWR) 第 40 章包括可编程欠压复位在内的复位机制 目录 本章包括下列主题 : 40.1 简介... 40-2 40.2 复位时的时钟源选择... 40-5 40.3 上电复位 (POR)... 40-5 40.4 MCLR 复位... 40-7 40.5 软件 RESET 指令 (SWR)... 40-7 40.6 看门狗定时器复位 (WDTR)... 40-7 40.7 欠压复位 (BOR)... 40-8

More information

Microsoft Word - Delta Controller ASCII_RTU_SC

Microsoft Word - Delta Controller ASCII_RTU_SC Delta Controller ASCII/RTU ( 适用台达变频器 伺服驱动器 PLC 温度控制器 ) 人机默认值通讯速率 :9600, 7, None, 2 (ASCII); 9600, 8, None, 2 (RTU) 控制器站号 :1 控制区 / 状态区 :None/None 控制器接线的说明 Delta Servo a. RS-232(DOP-A/AE/AS, DOP-B 系列适用 )

More information

查询 DSPIC33FJ256MC710 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxmcx06/x08/x10 电机控制系列数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70287A_CN

查询 DSPIC33FJ256MC710 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxmcx06/x08/x10 电机控制系列数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70287A_CN 查询 DSPIC33FJ256MC710 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxmcx06/x08/x10 电机控制系列数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70287A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip

More information

JTAG ICE PC JTAG ICE JTAG ISP... 5 IDE AVR STUDIO JTAGICE JTAGICE... 12

JTAG ICE PC JTAG ICE JTAG ISP... 5 IDE AVR STUDIO JTAGICE JTAGICE... 12 ... 3... 3... 3... 3... 4 1JTAG ICE PC... 4 2JTAG ICE... 4 3... 4 4... 4 5JTAG... 5 6ISP... 5 IDE... 6 1 AVR STUDIO... 6 2 JTAGICE... 6 3JTAGICE... 12 4.... 16 5.... 17 6. JTAG ICE... 19 ISP... 20 1PonyProg2000...

More information

Microsoft PowerPoint - chx03_org08_Mul&shift

Microsoft PowerPoint - chx03_org08_Mul&shift 计算机组织与系统结构 ALU 设计 乘法与移位 ( 第八讲 ) 位 ALU 完成 AND OR 和 ADD 功能的一位 ALU 输入进位 (CarryIn) A 程旭 3..3 B -bit 全加器 多路选择器 输出进位 (CarryOut) 结果 (Result) 更加细化的框图 LSB 和 MSB 需要进行特殊处理 signed-arith and cin xor co Ovflw A a3 b3

More information

发展党员材料填写参考(上网).doc

发展党员材料填写参考(上网).doc 华 中 科 技 大 学 党 员 发 展 材 料 填 写 参 考 中 共 华 中 科 技 大 学 委 员 会 组 织 部 2010 年 3 月 31 日 目 录 1 党 员 发 展 材 料 一 览 表... 1 2 入 党 志 愿 书 填 写 参 考... 2 3 申 请 入 党 积 极 分 子 培 养 考 察 登 记 表 填 写 参 考... 13 4 华 中 科 技 大 学 发 展 党 员 综 合

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

要 及 时 为 入 党 积 极 分 子 确 定 两 名 培 养 联 系 人, 进 行 联 络 帮 助 要 定 期 ( 每 季 度 至 少 一 次 ) 听 取 培 养 联 系 人 的 思 想 和 工 作 情 况 汇 报, 及 时 完 成 入 党 积 极 分 子 登 记 表 ( 见 附 件 2) 的 填

要 及 时 为 入 党 积 极 分 子 确 定 两 名 培 养 联 系 人, 进 行 联 络 帮 助 要 定 期 ( 每 季 度 至 少 一 次 ) 听 取 培 养 联 系 人 的 思 想 和 工 作 情 况 汇 报, 及 时 完 成 入 党 积 极 分 子 登 记 表 ( 见 附 件 2) 的 填 中 共 兰 州 资 源 环 境 职 业 技 术 学 院 委 员 会 文 件 兰 资 环 院 党 发 2016 40 号 关 于 进 一 步 规 范 党 员 发 展 工 作 和 从 严 管 理 党 员 的 通 知 各 系 党 总 支 支 部 : 为 进 一 步 规 范 和 加 强 发 展 党 员 工 作, 从 严 管 理 党 员, 确 保 发 展 党 员 质 量, 提 高 各 基 层 党 组 织 的

More information

PowerPoint Presentation

PowerPoint Presentation 基于 C6000 的应用开发 DSP 历史 : 特点 DSP 学习 : 基础知识 数据链路的层次 中断 DMA 和时钟 C6000 的开发环境 :CCS C6000 的软件开发 : CPU 结构 汇编 C 线性汇编 C 开发环境 优化传统的 DSP 软件开发模式 : 中断驱动 C6000 的实时操作系统 :DSP/BIOS DSP 的历史 DSP 历史 : 实时系统对数据处理的要求促进 DSP 的出现和发展

More information

gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳,

gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳, gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳,http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html ) 32 位单精度 :Bit

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

70046d_cn.book(70055c_cn.fm)

70046d_cn.book(70055c_cn.fm) 第 8 章复位 目录 本章包括下列主题 : 8.1 简介...8-2 8.2 复位时的时钟源选择... 8-5 8.3 POR: 上电复位... 8-5 8.4 外部复位 (EXTR)... 8-7 8.5 软件复位指令 (SWR)... 8-7 8.6 看门狗超时复位 (WDTR)... 8-7 8.7 欠压复位 (BOR)... 8-8 8.8 使用 RCON 状态位... 8-10 8.9 器件复位时间...

More information

Static Enforcement of Security with Types

Static Enforcement of Security with Types 例题 1 一个 C 语言程序及其在 X86/Linux 操作系统上的编译结 果如下 根据所生成的汇编程序来解释程序中四个变 量的存储分配 生存期 作用域和置初值方式等方面 的区别 static long aa = 10; short bb = 20; func( ) { } static long cc = 30; short dd = 40; static long aa = 10; func(

More information

3 程序的机器级表示 2017 年 3 月 11 日 11: 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有

3 程序的机器级表示 2017 年 3 月 11 日 11: 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有 3 程序的机器级表示 2017 年 3 月 11 日 11:29 2. 3. 4. 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有效 用高级语言编写的程序可以在很多不同的机器上编译和执行, 而汇编代码则是与特定机器密切相关的 学习机器代码的意义在于,

More information

Introduction to Computer Systems /18-243, spring st Lecture, Jan. 12th

Introduction to Computer Systems /18-243, spring st Lecture, Jan. 12th 计算机组成原理习题课 1 授课老师 : 王浩宇 haoyuwang@bupt.edu.cn 1 练习 : 机器数的表示和相互转化 练习 1: 当十六进制数 9B 和 FF 分别表示为原码 补码 反码 移码和无符号数时, 所对应的十进制数各为多少 ( 设机器数采用一位符号位 )? 16 进制 真值 无符号数 原码 ( 真值 ) 反码 ( 真值 ) 补码 ( 真值 ) 移码 ( 真值 ) 9BH 二进制十进制

More information

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA 1K 4 SH6610C 4 OTP ROM 1K X 16 RAM 88 X 4-24 - 64 2.4V-5.5V - fosc = 30kHz - 4MHz, = 2.4V - 5.5V - fosc = 4MHz - 8MHz, = 4.5V - 5.5V 11 CMOS I/O 4 ( ) 8 / - 0 PORTA.0 ( / / ) - 0 - PORTB ( ) ( ) - 32.768kHz,

More information

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3 第 3 章 8086 的寻址方式和指令系统 (3) 2015 年 3 月 26 日星期四 11 时 3 分 17 秒 1 3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

Microsoft Word - 第2章 ARM体系结构.doc

Microsoft Word - 第2章 ARM体系结构.doc ARM 系列处理器应用技术完全手册 作者 : 华清远见 第 2 章 ARM 体系结构 2.1 ARM 体系结构的特点 ARM 内核采用精简指令集结构 (RISC,Reduced Instruction Set Computer) 体系结构 RISC 技术产生于上世纪 70 年代 其目标是设计出一套能在高时钟频率下单周期执行 简单而有效的指令集,RISC 的设计重点在于降低硬件执行指令的复杂度, 这是因为软件比硬件容易提供更大的灵活性和更高的智能

More information

SM2965

SM2965 产品清单 SM2965C40, 主频 40MHz, 内带 64KB 闪存的 MCU 总体描述 SM2965 系列产品是一种内嵌 64KB 闪存和 1K 字节 RAM 的 8 位单片微控制器它是 80C52 微控制器家族的派生产品具有在系统可编程 (ISP) 功能其 PDIP 封装具有 32 个 I/O 口而 PLCC/QFP 封装则具有多达 36 个 I/O 口 64K 字节的闪存既可以当作程序空间又可以当作数据空间或者数据和程序混合空间其硬件特征和强大的指令系统使它成为一种性能价格比高的控制器片上闪存的编程可以使用商用编程器进行并行编程也可以根据其

More information