µÚ3ÕÂ CPU.doc

Size: px
Start display at page:

Download "µÚ3ÕÂ CPU.doc"

Transcription

1 中国 MSP430 单片机专业网站 MSP430F2 系列 16 位超低功耗单片机模块原理第 3 章 MSP430 CPU 版本 : 1.2 日期 : 原文 : TI MSP430x2xxfamily.pdf 翻译 : 袁德纯编辑 : DC 微控技术论坛总版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误 ; 所以以下内容只供参考. 一切以原文为准 详情请密切留意微控技术论坛 Page 1 of 53

2 第三章 16 位精简指令集计算机系统本章节将介绍 430 的 16CPU 系统 寻址模式和指令系统目录 : 绪论 CPU 的寄存器指令系统 3.1 绪论 16 位 CPU 的一体化系统明确的面向模块化的程序设计技术, 如适当的程序分支 表格处理和可应用高级语言, 如 C 语言 CPU 能在不用进行页面调整的时候寻址整个地址空间 CPU 的主要性质 : 带有 27 条指令和 7 种寻址模式的精简指令集架构 每条指令能够采用任何一种寻址模式的交互式系统结构 完整的寄存器系统包括 : 程序计数器 状态寄存器 和堆栈的指针 ; 单周期的寄存器操作 16 位寄存器操作简化了存储器的存取 16 位的地址总线允许直接存取和在整个寄存器范围内的任意分支 16 为的数据总线允许直接的更大范围的数据的处理 常数发生器能够产生多达 6 种常数 不需要寄存器的情况下便可进行存储器间的传输 字节和双字节的寻址和指令格式 MDB( 存储器的数据总线 ) MAB( 存储器的地址总线 ) Page 2 of 53

3 注 :R0/PC Program Counter:R0/PC 程序计数器 R1/SP Stack Pointer:R1/SP 堆栈指针 CPU 的方框图如图 3-1 所示 Page 3 of 53

4 R2/SR/CG1 Status:R2/SR/CG1 状态 R3/CG2 Constant Generator:R3/CG2 常数发生器 General Purpose: 普通用法 3.2 CPU 的寄存器 16 位的 CPU 整合了 16 位的寄存器 R0 到 R3 用于特定用法,R4 到 R15 用于普通用法 程序计数器程序计数器指向下一条将要被执行的指令 每条指令用偶 (2,4,6,8) 字节指令方式执行程序计数器增加 指令在 64KB 的地址空间中存取数据扮演着偶地址分界线的角色, 程序计数器以偶地址方式排列 如图 3-2: 程序计数器能够在任意的一种寻址模式种被任一条指令所寻址例 : MOV #LABEL,PC ; MOV LABEL,PC ; ; 堆栈指针堆栈指针用于存放子程序的调用和中断子程序的返回地址 堆栈指针以先进后出的方式执行堆栈指针能够在任意的一种寻址模式种被任一条指令所寻址, 如图 3-2 所示 程序计数器以偶地址方式排列, 用户能够使用堆栈指针初始化 RAM 堆栈的用法如图 3-4 所示例程 : MOV 2(SP),R6 ; I2 > R6 MOV R7,0(SP) ; Overwrite TOS with R7 PUSH #0123h ; Put 0123h onto TOS POP R8 ; R8 = 0123h 图 3-3 图 3-4 图 3-5 描述了堆栈指针的程序进栈和出栈的顺序 Page 4 of 53

5 图 a 图 b 图 a 图 b 图 3-5 在执行 PUSH SP 指令后, 堆栈指针将改变执行指令 POP SP 后, 堆栈指针不改变, 指令 POP SP 将 SP1 压入指针位置 (SP2=SP1) 状态寄存器状态寄存器可作为原始寄存器和目的寄存器, 只能在寄存器的模式下以双字节的方式进行存取 剩下的存取模式用于支持常数发生器, 状态寄存器的各个位如图 3-6 所示 : 图 3-6 表 3-1 描述了状态寄存器的各个位位描述溢出标志位 程序运行过程中, 结果超出规定范围的时候, 此位将会被置位 V ADD(.B),ADDC(.B) SUB(.B),SUBC(.B),CMP(.B) SCG1 系统时钟发生器 1 当此位置 1 时,SMCLK 将会被关闭系统时钟发生器 0 如果 DCOCL 没有用于 MCLK 或者 SMCLK, 当此位被置位时, 将关闭 SCG0 DCO 的直流发生器晶振关闭位 此位被置 1 时, 当 LFXT1CLK 没有被用于 MCLK 或者 SMCLK,LFXT1 将会被 OSCOFF 关闭 CPUOFF CPU 关闭位 当此位被置 1 时, 将会关闭 CPU 中断使能位 此位被置 1 时, 所有的中断将会被打开 复位时, 所有的中断均不可 GIE 用负数位 当指令的操作结果是负数时, 此位被设置时 ; 当结果不为负数时, 此位被 N 清除 Z 零标志位 结果为 0 时, 此位被设置 ; 结果不为 0 时, 此位被清除 C 进位标志位 常数发生器 CG1 和 CG2 六个普通用途的常数可由常数发生器的寄存器 R2 和 R3 产生, 而不需要一个额外的双字节程序指令 常数由源寄存器的寻址模式所选择 如表 3-2 所示 Page 5 of 53

6 常数发生器的优点在于 : 没有特殊的指令需求六个常数不需要额外的代码指令 No code memory access required to retrieve the constant 如果六个常数中的一个被用于立即源操作数, 汇编程序将会自动使用常数发生器 R2 和 R3 在用于常数模式的时候,R2 和 R3 将不能够被明确的被寻址 它们仅作为源寄存器 常数发生器的扩展指令设置 : 精简指令集的 M430 单片机仅有 27 条系统指令 但是常数发生器允许 MSP430 的汇编程序使用附加的 24 条仿真指令 例如单操作数指令 CLR dst 被双操作数指令 MOV R3,dst 所仿效, 它们具有相同的深度 当 #0 被汇编程序所替代时,R3 被用作 AS=00 指令 ADD 0(R3),dst 取代指令 INC dst 普通寄存器 R4-R15 R4-R15 的 12 个寄存器都是普通用法的寄存器 这些所有的寄存器均可被作为数据寄存器 地址指针 或者索引值都可以被字节指令或者字指令所寻址 如图 3-7 所示 图 3-7 Page 6 of 53

7 3.3 寻址方式 七种源操作数寻址模式和四种目的操作数寻址模式能够访问所有的地址空间 表 3-3 描述了 AS 和 AD 模式中的各个位 As/Ad 寻址模式 语法结构 描述 00/0 寄存器模式 Rn 寄存器内容是操作数 01/1 索引模式 X(Rn) (Rn + X) points to the operand. X is stored in the next word. 01/1 符号 ADDR (PC + X) points to the operand. X is stored in the next word. Indexed mode X(PC) is used. 01/1 绝对模式 &ADDR The word following the instruction contains the absolute address. X is stored in the next word. Indexed mode X(SR) is used. 10/ Rn is used as a pointer to the operand. 11/ Rn is used as a pointer to the Page 7 of 53

8 operand. Rn is incremented afterwards by 1 for.b instructions and by 2 for.w instructions. 11/ 立即模式 #N The word following the instruction contains the immediate constant N. Indirect autoincrement is used. 在下面的内容中将为大家具体介绍七种寻址模式 注 : 标签 EDE, TONI, TOM, 和 LEO 的用法 在整篇文档中 EDE, TONI, TOM, 和 LEO 仅仅作为普通的标签而没有特殊的含义 寄存器寻址模式寄存器寻址模式如表 3-4 种所示 汇编代码 MOV R10 R11 长度 操作 内容 例子 ROM 中的内容 MOV R10 R11 一个或者两个字节 将 R10 中的内容移动到 R11 中,R10 和 R11 不会被影响 源数据和目的数据均为有效数据 MOV R10 R11 表 3-4 注 : 寄存器中的数据寄存器中的数据能够被字节或者字指令访问, 如果一个字节指令被使用, 那么高字节位总是为零 状态位将依据字节指令的结果去操作 被变址寻址模式寄存器的变址寻址模式如表 3-5 中所示 Page 8 of 53

9 汇编代码 MOV 2(R5) 6(R6) 长度操作内容例子 ROM 中的内容 MOV X(R5) Y(R6) X=2,Y=6 两个或者三个字节 将源地址中的内容移动到目的地址中去, 源地址和目的地址均不会被影响 在变址寻址模式, 程序计数器将会自动地增加, 所以程序能够继续运行下一条指令源数据和目的数据均为有效数据 MOV 2(R5) 6(R6) 偏移量可变址寻址模式可变址寻址模式如表格 3-6 中所示 汇编代码 MOV EDE,TONI 长度 ROM 中的内容 MOV X(PC),Y(PC) X = EDE PC Y = TONI PC 两个或者三个双字节 将源地址 EDE(PC + X) 中的内容移动到目的操作地址 TONI(PC + Y) 中去 在指令执行后 PC Page 9 of 53

10 内容 例子 中的源地址和目的地址中的内容均发生了改变 在汇编的过程中自动插入了偏移量 X Y. 在偏移量可变址寻址模式, 程序计数器将会自动地增加, 所以程序能够继续运行下一条指令源数据和目的数据均为有效数据 MOV EDE,TONI 源地址 :EDE = 0F016h 目的地址 :TONI=01114h 表 绝对寻址模式汇编代码 MOV &EDE,&TONI 长度操作内容 ROM 中的内容 MOV X(0),Y(0) X = EDE Y = TONI 两个或者三个双字节 将源地址 EDE 中的内容移动到目的地址 TONI 中去 在指令执行后命令中包含了源地址和目的地址中的绝对地址 绝对寻址模式中, 程序计数器将会自动地增加, 所以程序能够继续运行下一条指令源数据和目的数据均为有效数据 Page 10 of 53

11 例子 MOV &EDE,&TONI 源地址 :EDE = 0F016h 目的地址 :TONI=01114h 这种地址模式主要是针对那些位于固定 绝对的地址的外围设备 这些外围模块用绝对寻址模式去寻址从而保证了程序运行的流畅性 寄存器间接寻址模式寄存器间接寻址模式的具体描述如表 3-8 汇编代码 长度 操作 内容 例子 ROM 中的内容 两个或者三个双字节将源地址中的内容移动到目的地址中去 寄存器没有被改变源数据为有效数据 目的操作数被 0(Rd) 所取代 Page 11 of 53

12 3.3.5 间接自动增量寻址模式间接自动增量寻址模式如表 3-9 所示 汇编代码 长度 操作 内容 例子 ROM 中的内容 两个或三个双字节 将源地址中的内容移动到目的地址中去 寄存器没有被改变 在字节指令执行取数后, 寄存器 R10 将自动加 1; 在双字节指令执行取数后, 将自动加 2; 在地址没有溢出的情况下, 将会自动指向下一个地址单元 这对于表格的处理非常方便源数据为有效数据 目的操作数被 0(Rd) 和下一个操作指令 INCD Rd 所取代 Page 12 of 53

13 3.3.7 立即数寻址模式立即数寻址模式如表 3-9 所示 汇编代码 MOV #45h,TONI 长度 操作 内容 例子 ROM 中的内容 45 X = TONI PC 两个或者三个双字节 将常量立即数 45 移动到目的地址 TONI 中去 当取完数据时, 程序计数器将自动指向下一条指令, 并且将其中的内容移动到目的寄存器中源数据为有效数据 MOV #45h,TONI Page 13 of 53

14 3.4 指令系统 430 的指令系统包括 27 条核心指令和 24 条仿真指令 核心指令由 CPU 完成相应的编码和解码工作 而仿真指令能够使得代码容易的进行读写, 他们自己不能进行编码, 但是他们能够自动的被相应的核心指令所代替从而进行汇编 核心指令有三种方式 : 双操作数指令单操作数指令跳转指令所有的单操作数指令和双操作数指令能够被字节指令或者双字节指令以.B 或者.W 的方式进行扩展. 字节指令可以访问数据的字节单位或者外围设备的字节地址 双字节指令可以访问双字节的数据单位的或者双字节地址的外围设备. 如果指令没有被扩展, 那么指令就是一个双字节指令 源指令和目的指令在以下范围所定义 : SRC 源操作数被 As 和 S-reg 所定义 DST 目的操作数被 Ad 和 D-reg 所定义 AS 寻址位 ( 依赖于所使用的寻址模式 ) S-REG 用于源操作指令的工作寄存器 AD 寻址位 ( 依赖于所使用的寻址模式 ) D-REG 用于目的操作指令的寄存器 B/W 字节或者双字节操作位 0: 双字节模式 1: 字节模式注意 : 目的地址在任何的内存映射中, 目的地址都是有效的. 但是在用一条指令去修改目的寄存器的内容时, 用户必须确保目的地址是可写的 例如 : 一个被屏蔽的 ROM 单位是一个有效的目的地址, 但是里面存储的内容是不可修改的, 所以指令的操作结果将会丢失 双操作数指令图 3-9 阐述了双操作数指令的方式 Page 14 of 53

15 图 3-9 表 3-11 列举和描述了一些双操作数指令 Mnemonic SReg DReg Operation Status Bits V N Z C MOV(.B) src,dst src dst ADD(.B) src,dst src + dst dst * * * * ADDC(.B) src,dst src + dst + C dst * * * * SUB(.B) src,dst dst +.not.src + 1 dst * * * * SUBC(.B) src,dst dst +.not.src + C dst * * * * CMP(.B) src,dst dst src * * * * DADD(.B) src + dst + C dst * * * * src,dst (decimally) BIT(.B) src,dst src.and. dst 0 * * * BIC(.B) src,dst.not.src.and. dst dst BIS(.B) src,dst src.or. dst dst XOR(.B) src,dst src.xor. dst dst * * * * AND(.B) src,dst src.and. dst dst 0 * * * * 被影响的状态位 没有被影响的状态位 0 被清除的状态位 1 被置 1 的状态位 表 3-11 注意 : 指令 CMP 和 SUB 指令 CMP 和 SUB 不保存结果, 指令 BIT 和 AND 也是同样如此 单操作数指令图 3-10 阐述了单操作数指令的格式 : 图 3-10 表 3-12 描述和列举了一些单操作数指令 Mnemonic SReg DReg Operation Status Bits V N Z C RRC(.B) dst C MSB.LSB C * * * * RRA(.B) dst C MSB.LSB C 0 * * * PUSH(.B) src SP 2 SP, SWPB dst Swap bytes CALL dst SP 2 SP, dst PC RETI TOS SR, SP + 2 SP * * * * Page 15 of 53

16 TOS PC,SP + 2 SP SXT dst Bit 7 Bit 8..Bit 15 0 * * * * 被影响的状态位 没有被影响的状态位 0 被清除的状态位 1 被置 1 的状态位 表 3-12 所有的寻址模式都有可能适合于 CALL 指令 如果 Symbolic 模式 (ADDRESS), 立即数寻址模式, 完全寻址模式或者变址寻址模式被使用, 那么接下来的字中含有地址的相关信息 跳转指令图 3-11 阐述了条件跳转指令的格式 : 表 3-13 描述和列举了一些跳转指令 图 3-11 Mnemonic SReg, DReg Operation JEQ/JZ Label 零标志位被设置则跳转 JNE/JNZ Label 零标志位被复位则跳转 JC Label 进位标志位为 1 则跳转 JNC Label 进位标志位为 0 则跳转 JN Label 负数标志位为 1 则跳转 JGE Label (N.XOR. V) = 0 则跳转 JL Label (N.XOR. V) = 0 则跳转 JMP Label 无条件跳转指令 条件转移指令支持分支程序的设计而不影响状态位 在转移指令中跳转的范围在相对于 PC 的 之间 一个 10 位的程序计数器偏移量作为一个单的 10 位的数乘 2 后被加到程序计数器中 PCnew = PCold PCoffset x 2 * ADC[.W] 把进位标志位的加到目的操作数中 * ADC.B 把进位标志位加到目的操作数中语法格式 ADC dst or ADC.W dst ADC.B dst 操作 dst + C > dst 仿真指令 ADDC #0,dst ADDC.B #0,dst Page 16 of 53

17 描述把进位标志位加到目的操作数中 目的操作数中先前的内容将会丢失. 状态位 N: 如果结果是负数将被置 1, 真数则置 0 Z: 结果为 0 则置 1, 否则将置 0 C: 目的操作数进位则置 1, 否则为 0 V: 算术溢出则置位, 否则置 0 模式选择位 OSCOFF, CPUOFF, 和 GIE 不会被影响. 例子指向 R13 的 16 位的计数器指针加到指向 R12 的 32 位计数器指针中去. ; 低位相加 ADC 2(R12) ; 进位标志位加到 R12 的高位例子指向 R13 的 8 位的计数器指针加到指向 R12 的 16 位计数器指针中去. 低位相加 ADC.B 1(R12) ; 进位标志位加到 R12 的高位 ADD[.W] 将源操作数加到目的操作数中 ADD.B 将源操作数加到目的操作数中语法格式 ADD src,dst 或者 ADD.W src,dst ADD.B src,dst 操作 src + dst > dst 描述源操数被加到目的操作数中, 源操作数不受影响, 先前目的操作数中的内容将会被覆盖状态标志位 N: 如果结果是负数将被置 1, 真数则置 0 Z: 结果为 0 则置 1, 否则将置 0 C: 目的操作数进位则置 1, 否则为 0 V: 算术溢出则置位, 否则置 0 模式选择位 OSCOFF, CPUOFF, 和 GIE 不会被影响. 例子 R5 增加 10. 如果进位标志位被置位则跳转到 TONI. ADD #10,R5 JC TONI ; 发生了进位 ; 没有发生进位例子 R5 增加 10. 进位则跳转到 TONI. ADD.B #10,R5 ; R5 的底字节加 10 JC TONI ; 发生进位, 如果 (R5) 246 [0Ah+0F6h] ; 未发生进位 Page 17 of 53

18 ADDC[.W] 将源操作数和进位标志位加到目的操作数中 ADDC.B 将源操作数和进位标志位加到目的操作数中语法格式 ADDC src,dst 或者 ADDC.W src,dst ADDC.B src,dst 操作 src + dst + C > dst 描述将源操作数和进位标志位加到目的操作数中 将源操作数和进位标志位加到目的操作数中 状态标志位 N: 如果结果是负数将被置 1, 真数则置 0 Z: 结果为 0 则置 1, 否则将置 0 C: 目的操作数进位则置 1, 否则为 0 V: 算术溢出则置位, 否则置 0 模式选择位 OSCOFF, CPUOFF, 和 GIE 不会被影响. 例子 32 位指向 R13 的计数器加到一个 32 位的计数器上, 十一个字位于寄存器 R13 的高位 ; 加 LSD 不带进位 ; 加 MSD 带进位... ; 例如一个 24 位的寄存器 R13 加到一 24 位的计数器, 十一个字加到 R13 的高位. ; 将 LSD 相加不带进位 ; 带进位的中间数相加 ; 带进位的高字节相加 AND[.W] 源操作 AND 目的操作数 AND.B 源操作 AND 目的操作数语法 AND src,dst 或者 AND.W src,dst AND.B src,dst 操作 src.and. dst > dst 描述源操作数和目的操作数逻辑与 结果存放在目的操作数中状态标志位 N: 如果结果 MSB 被设置则置位, 否则不设置 Z: 结果为 0 置位, 否则不设置 C: 结果不为 0 置位, 否则不设置 Page 18 of 53

19 V: 复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不会被影响. 例如位设置在 R5 中被作为一个屏蔽位供 TOM 作字节寻址使用 如果结果是 0, 则跳转到 TONI. MOV #0AA55h,R5 ; 载入屏蔽位到寄存器 R5 AND R5,TOM ; 通过 TOM 和 R5 屏蔽字节地址 JZ TONI ; ; 结果不为 0 ; ; ; 或者 ; ; AND #0AA55h,TOM JZ TONI 例如屏蔽位 #0A5h 和 TOM 的低字节逻辑与 如果结果是 0, 程序将跳转到 TONI. AND.B #0A5h,TOM ; 用 0A5h 评比 TOM 的低字节 JZ TONI ; ; 结果不为 0 BIC[.W] 清除目的操作数中的相应位 BIC.B 清除目的操作数中的相应位语法格式 BIC src,dst 或者 BIC.W src,dst BIC.B src,dst 操作 NOT.src.AND. dst > dst 描述反转的源操作数和目的操作数在逻辑上是相与的. 结果保存在目的操作数中, 源操作数不受影响. 状态标志位状态标志位不受影响. 模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例如 RAM 的 MSB 的第六位被清除. BIC #0FC00h,LEO ; 清除 MEM 的 MSB 的第六位 (LEO) 例如 RAM 的 MSB 的第五位被清除 BIC.B #0F8h,LEO ; Clear 5 MSBs in Ram location 清除位于 RAM 中 LEO 的高五位 Page 19 of 53

20 BIS[.W] 目的操作数中相应的位置位 BIS.B 目的操作数中相应的位置位语法格式 BIS src,dst 或者 BIS.W src,dst BIS.B src,dst 操作 src.or. dst > dst 描述源操作数和目的操作数逻辑或 结果保存在目的操作数中. 源操作数不受影响. 状态标志位状态标志位不受影响. 模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例如用字 TOM 给 RAM 中的低的六位置位. BIS #003Fh,TOM; 设置位于 RAM 中 TOM 的低 6 位 set the six LSBs in RAM location TOM 例如设置 RAM 中 TOM 的高三位. BIS.B #0E0h,TOM ; 设置位于 RAM 中 TOM 的高三位 BIT[.W] 测试目的操作数中的某一位 BIT.B 测试目的操作数中的某一位语法格式 BIT src,dst 或者 BIT.W src,dst 操作 src.and. dst 描述源操作数和目的操作数逻辑与. 结果仅仅影响状态位. 源操作数和目的操作数均不受影响. 状态标志位 N: 如果结果的高字被设置则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 结果不为 0 则置位, 否则复位 V: 复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例如如果 R8 中的第九位为 1, 则跳转到 TOM. BIT #0200h,R8 ; R8 是否被置位? JNZ TOM ; 是则跳转到 TOM... ; 不是, 则继续程序例如 Page 20 of 53

21 如果 R8 的第三位被设置, 程序跳转到 TOM. BIT.B #8,R8 JC TOM 例如一个连续的通讯接受位被测试 因为在用 BIT 指令测试一个单一的位时进位标志位等同于状态的测试位, 进位标志位用于连续的指令, 读信息转移到 RECBUF 寄存器中 一连串的通讯位低字节位移动 : ; xxxx xxxx xxxx xxxx BIT.B #RCV,RCCTL ; 位信息进入进位标志位 RRC RECBUF ; Carry > MSB of RECBUF ; cxxx xxxx ; 重复前两条指令 ; 8 times ; cccc cccc ; ^ ^ ; MSB LSB ; 连续通讯高字节位先移动 : BIT.B #RCV,RCCTL ; 位信息载入进位标志位 RLC.B RECBUF ; 将 LSB 载入 RECBUF ; xxxx xxxc ; 重复前两条指令 ; 8 times ; cccc cccc ; LSB ; MSB * BR, BRANCH 跳转到目的操作数地址语法 BR dst 操作 dst > PC 仿真设置 MOV dst,pc 描述一个无条件的跳转指令能够跳转到 64K 地址空间内的任意地址. 所以的源地址寻址模式将会被使用. 跳转指令是个双字节指令. 状态标志位状态标志位不受影响例如所有寻址模式的举例. BR #EXEC ; 跳转到 EXEC 或者直接跳转 (e.g. #0A4h) ; 核心指令 BR EXEC ; 跳转 EXEC 中的地址中 ; 核心指令 MOV X(PC),PC Page 21 of 53

22 ; 间接寻址模式 BR &EXEC ; 跳转到绝对地址 EXEC 中包含的地址 ; 核心指令 MOV X(0),PC ; 间接寻址 BR R5 ; 跳转到 R5 中包含的地址中去 ; 核心指令 MOV R5,PC ; R5 间接寻址 ; 跳转到字中所包含的地址中去 ; 指向 R5. ; 核心指令 ; R5 的间接, 间接 ; 跳转到字所包含的地址中去 ; 指向后地址增加. ; 下一个时间里 S/W 覆盖掉用户的 R5 指针所指向的地址 它能够改变程序的执行由于访问了 R5 ; 所指向表格中的下一个地址 ; 核心指令 ; 间接寻址方式, 用 R5 的自动增量寻址方式 BR X(R5) ; 使程序分支跳转到所含的地址中去 ; 用 R5 + X ( 例如 : 表格中的地址起始于 X ). ; X 可能是一个地址或者是程序的标签 ; 核心指令 MOV X(R5),PC ; 间接寻址方式, R5 + X 方式的间接寻址方式 CALL Subroutine 语法 CALL dst 操作 : dst > tmp dst 是一个估计和存储的值 SP 2 > SP PC PC 更新为 TOS tmp > PC dst 保存在 PC 描述 : 一个子程序命令是作为一个在 64K 寻址空间里的任意的一个地址. 可使用所有的寻址模式. 返回地址 ( 下一条指令的地址 ) 是存储在堆栈的地址 调用指令是个双字节指令. 状态标志位状态标志位不受影响例子 : 以下给出了所有寻址模式的例子. CALL #EXEC ; 访问标签 EXEC 或者立即数地址 (e.g. #0A4h) ; SP 2 PC CALL EXEC ; 访问 EXEC 中所包含的地址 ; SP 2 SP, X(PC) PC ; 间接寻址 CALL &EXEC ; 访问绝对地址 EXEC 所包含的地址 ; SP 2 SP, X(0) PC ; 间接寻址 Page 22 of 53

23 CALL R5 ; 访问 R5 中所含有的地址 ; SP 2 SP, R5 PC ; R5 的间接寻址 ; 调用 R5 所指向的地址中所包含的字 ; SP 2 PC ; R5 的间接寻址 ; 调用 R5 所指向的地址中所包含的字 R5 所指向的指针增加 下一个时间里, S/W 覆盖掉用户的 R5 指针所指向的地址 它能够改变程序的执行 -- 由于访问了 R5 所指向表格中的下一个地址 ; SP 2 PC ; 间接寻址方式, 用 R5 的自动增量寻址方式 CALL X(R5) ; 访问 R5 + X ( 例如 : 表格中的地址起始于 X) 所指向的指针中所包含的地址 X 可以是 ; 个标签或地址 ; SP 2 SP, X(R5) PC ; R5 + X 的间接寻址 * CLR[.W] 清除目的操作数中的内容 * CLR.B 清除目的操作数中的内容语法 : CLR dst or CLR.W dst CLR.B dst 操作 :0 > dst 仿真设置 : MOV #0,dst MOV.B #0,dst 描述 : 目的操作数中的内容被清除. 状态标志位状态标志位不受影响例如 :RAM 中的字 TONI 被清除. CLR TONI ; 0 > TONI 例如 : 寄存器 R5 被清除. CLR R5 例如 :RAM 中的字节 TONI 被清除. CLR.B TONI ; 0 > TONI * CLRC 清除进位标志位语法 : CLRC 操作 : 0 > C 仿真设置 :BIC #1,SR 描述 : 进位标志位 (C) 被清除. 清除进位标志位的指令是个双字节指令状态标志位 : Page 23 of 53

24 N: 不受影响 Z: 不受影响 C: 被清除 V: 不受影响模式选择位 :OSCOFF, CPUOFF, 和 GIE 均不受影响. 例如 :R13 所指向的 16 位小数计数器被加到 R12 所指向的一个 32 位的计数器上. CLRC ; C=0: 定义开始 ; 将 16 位计数器加到 32 位计数器的低字节 DADC 2(R12) ; 将进位位加到 32 位计数器的高字节 * CLRN 清除负数标志位语法格式 : CLRN 操作 : 0 N 或者 (.NOT.src.AND. dst > dst) 仿真设置 : BIC #4,SR 描述 : 常量 04h 被反转 (0FFFBh) 和目的操作数逻辑与. 结果放在目的操作数中. 清除负数标志位的指令是双字节指令. Status Bits N: 复位为 0 Z: 不受影响 C: 不受影响 V: 不受影响模式选择位 : OSCOFF, CPUOFF, and GIE 不受影响. 例如 : 在状态寄存器中负数标志位被清除. 这将避免子程序中的负数被访问. CLRN CALL SUBR SUBR JN SUBRET ; 如果输入是负数 : 不做任何处理, 程序返回 SUBRET RET * CLRZ 清除零标志位语法 : CLRZ 操作 : 0 Z 或 (.NOT.src.AND. dst > dst) 仿真设置 : BIC #2,SR 描述 : 常数 02h 被反转 (0FFFDh) 和目的操作数相与. 结果放在目的操作数中. 清除零标志位的指令是双字节指令. 状态标志位 : N: 不受影响 Page 24 of 53

25 Z: 被清除 C: 不受影响 V: 不受影响模式选择位 :OSCOFF, CPUOFF, 和 GIE 均不受影响. 例如 : 零标志位在状态寄存器中被清除. CLRZ CMP[.W] 比较源操作数和目的操作数 CMP.B 比较源操作数和目的操作数语法 : CMP src,dst or CMP.W src,dst CMP.B src,dst 操作 dst +.NOT.src + 1 或 (dst src) 描述 : 源操作数和目的操作数相减. 源操作数和目的操作数均不受影响, 结果不保存, 但是只有状态位受到影响. 状态标志位 : N: 如果结果为负数, 则置位 否则置 0(src >= dst) Z: 如果结果为 0, 则置位 否则置 0 (src = dst) C: 如果结果产生进位, 则置位 否则置 0 V: 如果结果产生溢出, 则置位 否则置 0 模式选择位 :OSCOFF, CPUOFF, 和 GIE 均不受影响. 例子 :R5 和 R6 相比较. 如果相等则程序跳转到 EQUAL 处执行 CMP R5,R6 ; R5 = R6? JEQ EQUAL ; YES, JUMP 例子 : 两个 RAM 块比较. 如果他们不相等, 程序跳转到分支 ERROR 处. MOV #NUM,R5 ; 字的数目比较 MOV #BLOCK1,R6 ; BLOCK1 开始地址在 R6 中 MOV #BLOCK2,R7 ; BLOCK2 开始地址在 R7 中 L$1 ; 所有的字相等吗?R6 增加 JNZ ERROR ; 不相等, 跳转到 ERROR INCD R7 ; 增加 R7 指针 DEC R5 ; 所有的都比较完了吗? JNZ L$1 ; 没有, 继续比较例子 :RAM 中的字节地址有 EDE 和 TONI 相比较. 如果他们相等, 程序跳转到 EQUAL 处继续运行. CMP.B EDE,TONI ; MEM(EDE) = MEM(TONI)? JEQ EQUAL ; YES, JUMP * DADC[.W] 以十进制方式进位标志位 (C) 加到目的操作数上. * DADC.B 十进制方式进位标志位 (C) 以加到目的操作数上. 语法 : DADC dst 或 DADC.W src,dst Page 25 of 53

26 DADC.B dst 操作 : dst + C > dst (decimally) 仿真设置 DADD #0,dst DADD.B #0,dst 描述 : 进位标志位 (C) 以十进制方式加到目的操作数上. 状态标志位 N: 如果 MSB 为 1 则设置 Z: 如果 dst 是 0 则设置, 否则复位 C: 如果从 9999 变为 0000, 则置位 ; 否则复位如果从 9999 变为 0000, 则置位 ; 否则复位 V: 未被定义模式选择位 :OSCOFF, CPUOFF, 和 GIE 均不受影响. 例子 :R5 中的四位十进制数加到 R8 所指向 R8 所指向的 8 位十进制数. CLRC ; 复位 carry 位 ; 下一条指令的起始条件是被定义的 DADD R5,0(R8) ; Add LSDs + C DADC 2(R8) ; Add carry to MSD 例子 :R5 中的二位十进制数加到 R8 所指向 R8 所指向的 8 位十进制数. CLRC ; 复位 carry 位 ; 下一条指令的起始条件是被定义的 DADD.B R5,0(R8) ; Add LSDs + C DADC 1(R8) ; 将进位加到 MSDs DADD[.W] 源操作数和目的操作数的十进制相加 DADD.B 源操作数和目的操作数的十进制相加语法 : DADD src,dst or DADD.W src,dst DADD.B src,dst 操作 : src + dst + C > dst (decimally) 描述 : 源操作数和目的操作数被作为带符号位的四位二进制 BCD 码来处理的. 源操作数和进位标志位以十进制方式加到了目的操作数中去 源操作数不受影响. 目的操作数的先前值丢失 结果将不以非 BCD 码格式定义. Status Bits N: 如果 MSB 为 1 则置位, 否则复位 Z: 结果为 0 置位, 否则复位 C: 结果大于 9999 或者结果大于 99 置位, 否则复位 V: 未定义模式选择位 :OSCOFF, CPUOFF, 和 GIE 均不受影响. 例子 : 一个 8 位的 BCD 码包含在 R5 和 R6 中以十进制的方式加到包含在 R3 和 R4 中的 8 位 BCD 数中 d R4 Page 26 of 53

27 (R6 和 R4 存储的是高位 ). CLRC ; 清除进位标志 DADD R5,R3 ; 加低位 DADD R6,R4 ; 带进位加高位 JC OVERFLOW ; 如果进位发生则跳转到错误处理子程序例子 : 两个十进制数的计数器在 RAM 字节 CNT 依次增 1. CLRC ; 清除进位 DADD.B #1,CNT ; 十进制计数器增加或 SETC DADD.B #0,CNT ; DADC.B CNT * DEC[.W] 目的操作数递减 * DEC.B 目的操作数递减语法格式 : DEC dst or DEC.W dst DEC.B dst 操作 :dst 1 > dst 仿真设置 :SUB #1,dst 仿真设置 :SUB.B #1,dst 描述 : 目的操作数递减 1. 原先的计数值丢失. 状态寄存器 : N: 如果为负数则置位, 否则复位 Z: 如果 dst 包含 1 则置位, 否则复位 C: 如果 dst 包含 0 则复位, 否则置位 V: 如果有溢出发生则置位, 否则复位 如果初始值是 08000h 则置位, 否则复位. 如果初始值是 080h 则置位, 否则复位. 模式选择位 : OSCOFF, CPUOFF, 和 GIE 不受影响. 例如 : R10 递减 1 DEC R10 ; 递减 R10 ; 从存储器中的起始地址 EDE 到 TONI 范围里移动 255 字节. 表格不能够交错 : TONI 的起始地址不能在 EDE 到 EDE+0FEh 的范围中 MOV #EDE,R6 MOV #255,R10 L$1 EDE 1(R6) DEC R10 JNZ L$1 ; 不要用交错的子程序去传送表格, 如图 Page 27 of 53

28 EDE EDE+254 TONI TONI+254 图 3 12 * DECD[.W] 目的操作数的双精度递减 * DECD.B 目的操作数的双精度递减语法 : DECD dst 或 DECD.W dst DECD.B dst 操作 : dst 2 > dst 仿真设置 :SUB #2,dst 仿真设置 :SUB.B #2,dst 描述 : 目的操作数每次减 2, 原始的数据丢失. 状态寄存器 : N: 如果结果是负数则置位, 否则复位 Z: 如果 dst 包含 2 则置位, 否则复位 C: 如果 dst 包含 0 或者 1 则复位, 否则置位 V: 如果发生溢出则置位, 否复位 目的操作数的初始值 或 08000h 则置位, 否则复位 目的操作数的初始值为 081 或者 080h 时则置位, 否则复位 模式选择位 :OSCOFF, CPUOFF, 和 GIE 不受影响 例 : R10 递减 2. DECD R10 ; R10 递减 2 ; 从存储器的起始地址 EDE 到 TONI 移动一个 255 字节的块, 表格不能交错, 目的地址的起始地址不能在 EDE 到 EDE+0FEh 范围里 ; MOV #EDE,R6 Page 28 of 53

29 MOV #510,R10 L$1 EDE 2(R6) DECD R10 JNZ L$1 例 : 存储器中位于 LEO 处递减 2 DECD.B LEO ; 递减存储器 MEM(LEO) 状态字节递减 2 DECD.B STATUS * DINT 屏蔽一般的中断语法 : DINT 操作 : 0 GIE 或者 (0FFF7h.AND. SR SR /.NOT.src.AND. dst > dst) 仿真设置 : BIC #8,SR 描述 : 所有中断功能被屏蔽 常量 08h 反转后与状态寄存器相与, 结果保存在状态寄存器中. 状态寄存器 : 状态位不受影响. 模式选择位 :GIE 被复位. OSCOFF 和 CPUOFF 不受影响. 例 : 普通的中断使能位 (GIE) 在状态寄存器中被清除允许无中断移入到 32 位的计数器中 这个确保了在任何中断运行的时候计数器没有被修改 DINT ; 所以的中断事件用 GIE 位来屏蔽 NOP MOV COUNTHI,R5 ; 拷贝计数器 MOV COUNTLO,R6 EINT ; 所有的中断用 GIE 位使能注 : 屏蔽所有中断如果任何的代码需要在中断期间保存, DINT 在中断被屏蔽的最后一条指令前不能执行, 或者跟一条 NOP 指令 EINT 中断使能语法 : EINT 操作 : 1 GIE 或者 (0008h.OR. SR > SR /.src.or. dst > dst) 仿真设置 : BIS #8,SR 描述 : 所有的中断被打开. 常量 #08h 和 SR 逻辑或. 结果保存在 SR. 状态寄存器 : 状态寄存器不受影响. 模式选择位 : GIE 被设置. OSCOFF 和 CPUOFF 不受影响. 例 : Page 29 of 53

30 普通的中断使能位 (GIE) 在状态寄存器中被设置 ; P1.2 到 P1.7 的中断子程序 ; P1IN 是所有端口被读的寄存器地址 P1IFG 是所有中断事件被屏蔽的寄存器 PUSH.B &P1IN ; 仅仅复位受影响的标志 EINT ; 调整端口 1 的中断标志存储到堆栈中其他的中断是被允许的 BIT #Mask,@SP JEQ MaskOK ; 标志被调整为屏蔽位去跳转 MaskOK BIC #Mask,@SP INCD SP ; 事务管理 : 反转为 PUSH 指令 ; 在所有中断服务子程序的开始, 纠正堆栈的指针 RETI 注 : 中断使能在中断使能之后的指令总是能够被执行的, 即使在中断被使能的时候一个中断服务请求是未决的 * INC[.W] 目的操作数增加 * INC.B 目的操作数增加语法格式 : INC dst or INC.W dst INC.B dst 操作 : dst + 1 > dst 仿真设置 :ADD #1,dst 描述 : 目的操作数递增 1 原始内容丢失状态位 : N: 如果结果为负数则置位, 正数则复位 Z: 如果 dst 包含 0FFFFh 置位, 否则复位如果 dst 包含 0FFh 置位, 否则复位 C: 如果 dst 包含 0FFFFh 置位, 否则复位如果 dst 包含 0FFh 置位, 否则复位 V: 如果 dst 包含 07FFFh 置位, 否则复位如果 dst 包含 07Fh 置位, 否则复位 模式位 :OSCOFF, CPUOFF, 和 GIE 是不受影响的. 例 : 一个过程中的状态字节位 STATUS 是增加的. 当等于 11, 则跳转到处 OVFL 执行. INC.B STATUS CMP.B #11,STATUS JEQ OVFL Page 30 of 53

31 * INCD[.W] 目的操作数递增 2 * INCD.B 目的操作数递增 2 语法格式 : INCD dst or INCD.W dst INCD.B dst 操作 :dst + 2 > dst 仿真设置 ADD #2,dst 仿真设置 ADD.B #2,dst 例 : 目的操作数递增 2, 原始的内容丢失. 状态位 : N: 如果结果为负数则置位, 否则复位 Z: 如果 dst 包含 0FFFEh 置位, 否则复位如果 dst 包含 0FEh 置位, 否则复位 C: 如果 dst 包含 0FFFEh 置位, 否则复位如果 dst 包含 0FEh 置位, 否则复位 V: 如果 dst 包含 07FFEh 置位, 否则复位如果 dst 包含 07Eh 置位, 否则复位模式选择位 :OSCOFF, CPUOFF, 和 GIE 不受影响 例 : 在堆栈的最顶部的一条未用任何一个寄存器即被移除.. PUSH R5 ; R5 是计算的结果, 被保存在系统的堆栈中 INCD SP ; 通过双增量从堆栈中移除 TOS, 不要用 INCD.B 指令, 因为 SP 是一个双字节寄存器 RET 例 : 在堆栈顶部的字节增 2 INCD.B 0(SP) ; 在 TOS 处的字节增 2 * INV[.W] 反转目的操作数 * INV.B 反转目的操作数语法格式 : INV dst INV.B dst 操作 : NOT.dst > dst 仿真设置 :XOR #0FFFFh,dst 仿真设置 :XOR.B #0FFh,dst 描述 : 目的操作数被反转 原始的内容丢失 状态位 : N: 如果结果为负数则置位, 否则复位 Z: 如果 dst 包含 0FFFFh 置位, 否则复位如果 dst 包含 0FFh 置位, 否则复位 C: 如果结果不为 0 则置位, 否则复位 V: 如果目的操作数的初始值为负数则置位, 否则复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : Page 31 of 53

32 R5 中的内容被反转 (twos complement). MOV #00AEh,R5 ; R5 = 000AEh INV R5 ; Invert R5, R5 = 0FF51h INC R5 ; R5 is now negated, R5 = 0FF52h 例 : 存储器字节 LEO 中的内容被反转. MOV.B #0AEh,LEO ; MEM(LEO) = 0AEh INV.B LEO ; Invert LEO, MEM(LEO) = 051h INC.B LEO ; MEM(LEO) 被反转,MEM(LEO) = 052h JC 如果进位位被设置则跳转 JHS 如果大于或者高于则跳转语法格式 : JC label JHS label 操作 : If C = 1: PC + 2 offset > PC 如果 C = 0: 执行下一条指令描述 : 状态寄存器的进位标志位被测试. 如果被置位, 则包含在指令 LSB 的中的 10 符号偏移量将会被加到程序计数器中. 如果 C 被复位, 跳转指令的下一条指令被执行. JC ( 如果进位标志位大于或等于则跳转 ) 无符号数的比较 (0 to 65536). 状态位状态位不受影响例 : The P1IN.1 信号用于定义或者控制程序的流程 BIT #01h,&P1IN ; State of signal > Carry JC PROGA ; 如果 C=1, 则执行子程序 A ; 如果 C=0, 则执行这里的程序例 :R5 和 15 做比较. 如果 R5 的结果是大于或者等于 15, 则跳转到 LABEL 处执行. CMP #15,R5 JHS LABEL ; 如果 R5 15, 则跳转到 LABEL ; 如果 R5 15 则在这里继续执行 JEQ, JZ 如果相等则跳转, 如果为 0 则跳转语法结构 JEQ label, JZ label 操作 : 如果 Z = 1: PC + 2 offset > PC 如果 Z = 0: 执行下一条指令描述 : 状态寄存器的零标志位被测试. 如果零标志位被设置, 则指令中 LSB 中的 10 位偏移量被加到程序计数器中. 如果 Z 没有被设置, 则执行跳转指令的下一条指令 状态位 : 状态位不受影响 例 : 如果 R7 包含零则跳转到地址 TONI Page 32 of 53

33 TST R7 ; 测试 R7 JZ TONI ; 如果为 0: 则跳转例 : 如果 R6 等于表格中的内容, 则跳转到地址 LEO CMP R6,Table(R5) ; 比较 R6 和存储器中的内容 ( 表格地址 + R5 的内容 ) JEQ LEO ; 如果两个数据相等, 则跳转到 LEO ; 不相等则继续执行 Example 如果 R5 是 0 则跳转到 LABEL TST R5 JZ LABEL JGE 大于或者等于则跳转语法格式 JGE label 操作 : 如果 (N.XOR. V) = 0 则跳转到 label: PC + 2 offset > PC 如果 (N.XOR. V) = 1 则继续执行下一条指令描述 : 状态寄存器中的 N 位和 V 位被测试 如果 N 和 V 被设置或复位, 则指令中 LSB 中的 10 位偏移量加到程序计数器中 如果仅仅是一个被设置, 则跳转指令的下一条指令被执行 这将允许比较带符号的整数状态标志位 : 不受影响 例 : 当 R6 中的内容高于或者等于 R7 所指向的存储器, 程序将会在 EDE 处继续执行. ; R6 (R7) 吗?, 带符号数的比较 JGE EDE ; 是的, R6 (R7), 跳转到 EDE ; 不, 继续执行 JL 如果小于则跳转语法格式 : JL label 操作 : 如果 (N.XOR. V) = 1 则跳转到 label: PC + 2 offset > PC 如果 (N.XOR. V) = 0 则继续执行下一条指令描述 : 状态寄存器中的 N 位和 V 位被测试 如果 N 和 V 被设置或复位, 则指令中 LSB 中的 10 位偏移量加到程序计数器中 如果两个都被设置, 则跳转指令的下一条指令被执行 这将允许比较带符号的整数状态标志位 : 不受影响. Page 33 of 53

34 例 : 当 R6 中的内容少于 R7 所指向的存储器, 则程序跳转到 EDE 处执行. ; R6 < (R7) 吗?, 比较带符号数字 JL EDE ; 是, R6 < (R7) ; 不是, 则继续执行 JMP 无条件跳转指令语法格式 : JMP label 操作 : PC + 2 offset > PC 描述指令中 LSB 中的 10 位偏移量加到程序计数器中. 状态标志位 : 不受影响 提示 : 这是一个字指令取代在 511 to +512 字范围之间和当前程序计数器相关的的分支指令 JN 负数则跳转语法格式 JN label 操作 : 如果 N = 1: PC + 2 offset > PC 如果 N = 0: 执行下一条指令描述 : 状态寄存器负数标志位 N 被测试. 如果被设置, 则指令中的 LSB 的偏移量加到程序计数器中去. 如果 N 被复位, 则执行跳转指令的下一条指令. 状态标志位 : 不受影响 例 : R5 中的内容 R5 和 COUNT 相减的结果. 如果结果是负数, COUNT 将会被清除而且程序在另一路径执行. SUB R5,COUNT ; COUNT R5 > COUNT JN L$1 ; 如果为负数,COUNT=0 at PC=L$1 ; 如果 COUNT 0 则执行 L$1 CLR COUNT Page 34 of 53

35 JNC 进位标志位没有设置则跳转 JLO 如果较低则跳转语法格式 JNC label JLO label 操作 : 如果 C = 0: PC + 2 offset > PC 如果 C = 1: 执行下一条指令描述 : 状态寄存器的进位标志位被测试. 如果被复位, 则指令中的 LSB10 位偏移量加到程序计数器中. 如果 C 被设置跳转指令的下一条指令被执行.JNC 指令可用于无符号数的比较 (0 to 65536). 状态标志位 : 不受影响. 例 : 结果在 R6 中加进 BUFFER. 如果溢出发生, 则一个错误处理程序在地址 ERROR 处被使用. ADD R6,BUFFER ; BUFFER + R6 > BUFFER JNC CONT ; 没有进位, 则跳转到 CONT ERROR ; 错误处理开始 CONT ; 依据正常的程序流程下继续执行 例 : 跳转到 STL2 如果状态位字节 STATUS 是 1 或 0. CMP.B #2,STATUS JLO STL2 ; STATUS < 2 ; STATUS >= 2, 则继续执行 JNE 不相等则跳转 JNZ 不为 0 则跳转语法格式 : JNE label JNZ label 操作 : 如果 Z = 0: PC + 2 offset > PC 如果 Z = 1: 执行下一条指令描述 : 状态寄存器的 Z 被测试. 如果被复位, 则指令中 LSB 中的 10 偏移量将会被加到程序计数器中. 如果 Z 被设置, 则执行跳转指令的下一条指令. 状态标志位 : 状态标志位不受影响. 例 : 如果 R7 和 R8 中的内容不同, 则跳转到地址 TONI CMP R7,R8 ; 比较 R7 和 R8 JNE TONI ; 如果不同则跳转 Page 35 of 53

36 ; 如果相同则继续执行 MOV[.W] 将源操作数移动到目的操作数中 MOV.B 将源操作数移动到目的操作数中语法格式 : MOV src,dst 或 MOV.W src,dst MOV.B src,dst 操作 :src > dst 描述 : 源操作数被移动到目的操作数中去 源操作数不受影响. 目的操作数先前的内容丢失. 状态标志位 : 状态标志位不受影响. 模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : 常数表格 EDE (word data) 被拷贝到表格 TOM 中. 表格的长度起始于 020h. MOV #EDE,R10 ; 准备指针 MOV #020h,R9 ; 准备计数器 Loop EDE 2(R10) ; 用 R10 中的指针指向两个表格 DEC R9 ; 计数器递减 JNZ Loop ; 计数器不为 0, 继续拷贝 ; 为 0, 则拷贝结束 例 : 表格 EDE (byte data) 中的内容拷贝到表格 TOM 中去. 设表格的长度为 020h MOV #EDE,R10 ; 准备指针 MOV #020h,R9 ; 准备计数器 Loop EDE 1(R10) ; 用 R10 中的指针指向两个表格 DEC R9 ; 计数器递减 JNZ Loop ; 计数器不为 0, 继续拷贝 ; 为 0, 则拷贝结束 * NOP 空指令语法格式 :NOP 操作 : 不做任何操作仿真设置 :MOV #0, R3 描述 : 不做任何的操作. 此条指令用于指令软件检查或定义延迟. 状态标志位 : 状态标志位不受影响. NOP 指令主要用于两个目的 : _ 为了填充一个或者两个存储器的字 _ 为了矫正软件定时注 : 仿真不操作指令 Page 36 of 53

37 其他的指令在不同的指令周期和代码字节数的时能够仿真 NOP 功能. 如下的一些例子 : 例 : MOV #0,R3 ; 1 个周期, 1 个字长度 MOV 0(R4),0(R4) ; 6 个周期, 3 个字长度 ; 5 个周期, 2 个字长度 BIC #0,EDE(R4) ; 4 个周期, 2 个字长度 JMP $+2 ; 2 周期, 1 个字长度 BIC #0,R5 ; 1 周期, 1 个字长度但是, 当用这些例子去阻止不可预见的结果的时要小心使用. 例如 :, 如果 MOV 0(R4), 0(R4) 被使用, 而且 R4 里面的值是 120h 时, 这时将和 WDT 定时器产生一个安全冲突, 因为安全关键字没有被使用 POP[.W] 双字节目的操作数出堆栈 * POP.B 单字节目的操作数出堆栈语法格式 POP dst POP.B dst > temp SP + 2 > SP temp > dst 仿真设置 or 仿真设置 描述 : 将堆栈指针的单元内容移送到目的操作数中, 然后堆栈指针增 2 状态标志位 : 状态标志位不受影响. 例 : R7 和 SR 中的内容被堆栈中弹出的内容所恢复. POP R7 ; 恢复 R7 POP SR ; 恢复 SR 寄存器例 : RAM 中的字节 LEO 从堆栈中被恢复. POP.B LEO ; 堆栈中的低字节被移送到 LEO 中. 例 : R7 中的内容从字节中被恢复. POP.B R7 ; R7 中的低字节内容被移到 R7 中,R7 的高字节内容是 00h 例 : R7 指向的存储器的内容和状态寄存器从堆栈中被恢复. POP.B 0(R7) ; 堆栈中的低字节被移送到 R7 指向的字节 : 例 : R7 = 203h ; Mem(R7) = 系统堆栈中的低字节 : Example: R7 = 20Ah ; Mem(R7) = 系统堆栈中的低字节 POP SR ; 堆栈中最后的字移送到 SR 寄存器中注 : 系统的堆栈指针系统的堆栈指针每个两个单位递增, 独立的字节后缀. Page 37 of 53

38 PUSH[.W] 字的入栈 PUSH.B 字节的入栈语法 : PUSH src 或 PUSH.W src PUSH.B src 操作 : SP 2 SP 描述 : 堆栈的指针总是以两个为单位递增, 这时源操作数被堆栈指针移动到 RAM 的字地址. 状态标志位 : 不受影响. 模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : 状态寄存器中的内容和 R8 入栈 PUSH SR ; 保存状态寄存器 PUSH R8 ; 保存 R8 例 : 外部设备 TCDAT 中的内容入栈. PUSH.B &TCDAT ; 从外部模块中保存 8 个位, ; 寻址 TCDAT, 入栈注 : 系统堆栈指针系统的堆栈指针以两个单位递增, 独立的字节后缀. * RET 子程序返回语法格式 : RET 操作 PC SP + 2 SP 仿真设置 : 描述 : 返回的地址被一个 CALL 指令压入堆栈中, 之后又被移送到程序计数器中. 程序在子程序调用之后的地址处继续执行. 状态标志位 : 不受影响 RETI 中断返回语法格式 : RETI 操作 : TOS SR SP + 2 SP TOS PC SP + 2 SP 描述 : 同过堆栈中的内容覆盖 SR 中的内容, 状态寄存器恢复到中断服务子程序执行之前的值 SP 增加 2 程序计数器的内容恢复到中断服务之前的值 在中断程序的流程中, 这些是连续的步骤 恢复程序计数器的内容是通过用堆栈中存储器的内容取代当前 PC 的内容 SP 增加. 状态标志位 N: 从系统堆栈中被恢复 Z: 从系统堆栈中被恢复 Page 38 of 53

39 C: 从系统堆栈中被恢复 V: 从系统堆栈中被恢复模式选择位 : OSCOFF, CPUOFF, 和 GIE 从系统堆栈中被恢复. 例 : 图 3 13 阐述了主程序中断 图 3 13 * RLA[.W] 算术左移 * RLA.B 算术左移语法格式 : RLA dst 或 RLA.W dst RLA.B dst 操作 : C < MSB < MSB 1... LSB+1 < LSB < 0 仿真设置 : ADD dst,dst ADD.B dst,dst 描述 : 目的操作数被左移动一位, 如图 3-14 所示. 高位被移动到进位标志位中, 而低字节位被 0 填充. RLA 指令的功能等同于一个带符号数乘 2 如果在操作之前 dst >= 04000h 并且 dst < 0C000h 则将会有一个溢出产生, 结果将改变符号. Page 39 of 53

40 15 0 状态标志位 N: 如果结果为负数则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 由高位载入 V: 如果有一个算术溢出产生则置位 : 初始值为 04000h dst < 0C000h; 否则复位如果有一个算术溢出产生则置位 : 初始值为 040h dst < 0C0h; 否则复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : R7 被乘 2 RLA R7 ; R7 左移例 : R7 的低字节乘 4. RLA.B R7 ; 左移 R7 的低字节 RLA.B R7 ; 左移 R7 的低字节注 : RLA 替代用法在汇编过程中不能识别以下指令 : or 这些可由下列指令所替代 : 2(R5) 1(R5) or * RLC[.W] 带进位的左移 * RLC.B 带进位的左移 语法格式 : RLC dst 或 RLC.W dst RLC.B dst 操作 : C < MSB < MSB 1... LSB+1 < LSB < C 仿真设置 : ADDC dst,dst 描述 : 目的操作数左移一位, 如图 3-15 所示. 进位标志位移到 LSB 中而 MSB 移动到进位标志位 图 3-15 状态标志位 N: 负数则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 由 MSB 载入如果有一个算术溢出产生则置位 : 初始值为 04000h dst < 0C000h; 否则复位如果有一个算术溢出产生则置位 : 初始值为 040h dst < 0C0h; 否则复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : R5 左移一位. Page 40 of 53

41 RLC R5 ; (R5 x 2) + C > R5 例 : 输入 P1IN.1 信息移到 R5 的 LSB 中. BIT.B #2,&P1IN ; 信息 > Carry RLC R5 ; Carry=P0in.1 > LSB of R5 例 : MEM(LEO) 中的内容左移一位. RLC.B LEO ; Mem(LEO) x 2 + C > Mem(LEO) 注意 : RLC 和 RLC.B 置换用法在汇编程序中不能识别以下的指令 : or 它必须有以下的指令所代替 : 2(R5) 1(R5) or RRA[.W] 算术右移 RRA.B 算术右移 语法格式 : RRA dst RRA.W dst RRA.B dst 操作 : MSB > MSB, MSB > MSB 1,... LSB+1 > LSB, LSB > C 描述 : 目的操作数右移一位, 如图 3-16 所示 图 3-16 MSB 被移动到 C, MSB 被移进 MSB 1, 并且 LSB+1 被移到 LSB.LSB 被移到 C 中 状态标志位 : N: 结果为负数则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: LSB 载入 V: 复位 模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : R5 被右移一位. MSB 仍然为旧的值. 此指令的操作等同于算术除以 2. RRA R5 ; R5/2 > R5 R5 的值乘以 0.75 ( ). PUSH R5 ; 用堆栈临时保存 R5 RRA R5 ; R5 0.5 > R5 ; R R5 = 1.5 R5 > R5 RRA R5 ; (1.5 R5) 0.5 = 0.75 R5 > R5 例 : R5 的低字节右移一位. MSB 仍然为旧的数值. 此条指令操作等同于除以 2. RRA.B R5 ; R5/2 > R5: 仅仅操作低字节 ; R5 的高字节复位 PUSH.B R5 ; R5 0.5 > TOS ; TOS 0.5 = 0.5 R5 0.5 = 0.25 R5 > TOS ; R R = 0.75 R5 > R5 Page 41 of 53

42 RRC[.W] 带进位的右移 RRC.B 带进位的右移 语法格式 : RRC dst RRC.W dst RRC dst 操作 : C > MSB > MSB 1... LSB+1 > LSB > C 描述 : 目的操作数右移一位如图 3-17 所示. 进位标志位被移进 MSB,LSB 被移到进位标志位 中. 图 3-17 状态标志位 N: 如果结果为负数则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 由 LSB 位载入 V: 复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : R5 右移一位. MSB 补 1. SETC ; MSB 补 1 RRC R5 ; R5/ h > R5 例 : R5 右移一位. MSB 置 1. SETC ; 准备把 C( 进位标志位 ) 移到 MSB 中 RRC.B R5 ; R5/2 + 80h > R5; R5 的低字节位被使用 * SBC[.W] 带借位的源操作数和目的操作数的减法 * SBC.B 带借位的源操作数和目的操作数的减法语法 : SBC dst 或 SBC.W dst SBC.B dst 操作 : dst + 0FFFFh + C > dst dst + 0FFh + C > dst 仿真设置 SUBC #0,dst SUBC.B #0,dst 描述 : 进位标志位加到目的操作数中减一个数, 目的操作数先前内容丢失. 状态标志位 : N: 如果结果为负数则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 如果从结果的 MSB 位中产生进位则置位, 否则复位. 有进位则置位, 没有进位则复位. V: 如果有算术溢出发生则置位, 否则复位. 模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : Page 42 of 53

43 R13 指向的一个 16 指针计数器和 R12 指向的一个 32 位计数器相减. ; 低位相减 SBC 2(R12) ; 减数从高位借 1 例 : R13 指向的一个 16 指针计数器和 R12 指向的一个 32 位计数器相减. ; 低位相减 SBC.B 1(R12) ; 从高位借位注 : 借位的执行. 借位是作为进位标志位的非操作来执行的 有借位, 进位标志位为 0, 没有借位, 进位标志位为 1 * SETC 进位标志位置位语法 : SETC 操作 : 1 > C 仿真设置 :BIS #1,SR 描述 : 进位标志位被置位. 状态标志位 : N: 不受影响 Z: 不受影响 C: 置位 V: 不受影响模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : 仿效十进制的减法 : 从 R6 中减去 R5 的十进制减法设 R5 = 03987h, R6 = 04137h DSUB ADD #06666h,R5 ; 将 R5 中的内容变为十进制数 R5 = 03987h h = 09FEDh INV R5 ; R5 中的内容取非 SETC ; 设置进位标志位 DADD R5,R6 ; R5 的反码加到 R6 上实现减法 ; (010000h R5 1) ; R6 = R6 + R5 + 1 ; R6 = 0150h * SETN 设置负数标志位语法 : SETN 操作 : 1 > N 仿真设置 : BIS #4,SR 描述 : 负数标志位置位. 状态标志位 : N: 置位 Page 43 of 53

44 Z: 不受影响 C: 不受影响 V: 不受影响模式选择位 : OSCOFF, CPUOFF, 和 GIE 不受影响. * SETZ 设置零标志位语法格式 : SETZ 操作 : 1 > Z 仿真设置 : BIS #2,SR 描述 : 零标志位被设置. 状态标志位 : N: 不受影响 Z: 置位 C: 不受影响 V: 不受影响模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. SUB[.W] 从目的操作数中减去源操作数 SUB.B 从目的操作数中减去源操作数语法格式 : SUB src,dst 或 SUB.W src,dst SUB.B src,dst 操作 : dst +.NOT.src + 1 > dst 或 [(dst src > dst)] 描述 : 从目的操作数中通过加上源操作数的反码加 1 来实现和源操作数的减法的 源操作数不受影响, 目的操作数先前的内容丢失状态标志位 : N: 结果为负数则置位, 否则复位 Z: 为 0 则置位, 否则复位 C: 如果结果从高位借位则置位, 否则复位 ; 没有借位发生则置位, 有借位发生则置 0. V: 如果有算术溢出发生则置位, 否则复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : 参照 SBC 指令. 例 : 参照 SBC.B 指令. 注 : 借位的执行. 借位是作为进位标志位的非操作来执行的 有借位, 进位标志位为 0, 没有借位, 进位标志位为 1 SUBC[.W]SBB[.W] 带借位的源操作数和目的操作数的减法 SUBC.B,SBB.B 带借位的源操作数和目的操作数的减法语法格式 SUBC src,dst 或 SUBC.W src,dst Page 44 of 53

45 SBB src,dst 或 SBB.W src,dst SUBC.B src,dst 或 SBB.B src,dst 操作 : dst +.NOT.src + C > dst 或 (dst src 1 + C > dst) 描述 : 从目的操作数中通过加上源操作数的反码加 1 来实现和源操作数的减法的 源操作数不受影响, 目的操作数先前的内容丢失. 状态标志位 : N: 结果为负数则置位, 否则复位 Z: 为 0 则置位, 否则复位 C: 如果结果从高位借位则置位, 否则复位 ; 没有借位发生则置位, 有借位发生则置 0. V: 如果有算术溢出发生则置位, 否则复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : 两个 24 位的浮点数减法. 低字节在 R13 和 R10, 高字节在 R12 和 R9. SUB.W R13,R10 ; 16 位的低字节部分 SUBC.B R12,R9 ; 8 位的高字节部分例 : R13 指向的 16 的计数器和 R10 和 R11( 高字节 ) 指向的 16 位计数器相减 ; 不带进位的低字节位相减 ; 带进位的高字节位相减... ; 结果由低字节位产生注 : 借位的执行. 借位是作为进位标志位的非操作来执行的 有借位, 进位标志位为 0, 没有借位, 进位标志位为 1 SWPB 交换字节语法格式 : SWPB dst 操作 : 高 8 位 15 和低 8 位交换描述 : 目的操作的的高 8 位 15 和低 8 位发生交换如图 3 18 所示 Page 45 of 53

46 图 3 18 状态标志位 : 不受影响. 模式选择位 : OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : MOV #040BFh,R7 ; > R7 SWPB R7 ; in R7 例 : R5 中的内容乘 256, 结果保存在 R5,R4 中. SWPB R5 ; MOV R5,R4 ; 拷贝交换后的值到 R4 BIC #0FF00h,R5 ; 矫正结果 BIC #00FFh,R4 ; 矫正结果 SXT 符号扩展语法格式 : SXT dst 操作 : Bit 7 > Bit 8... Bit 15 描述 : 低字节的符号扩展到高字节中去, 如图 3 19 所示. 状态标志位 N: 如果结果为负数则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 结果不为 0 则置位, 否则复位 V: 复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. Page 46 of 53

47 图 3 19 例 : R7 载入 P1IN 中的值. 符号扩展指令将用第 7 位中值使第 8 位扩展到第 15 位, 然后将 R7 加到 R6 中去 MOV.B &P1IN,R7 ; P1IN = 080h: SXT R7 ; R7 = 0FF80h: * TST[.W] 测试目的操作数 * TST.B 测试目的操作数语法 : TST dst 或 TST.W dst TST.B dst 操作 : dst + 0FFFFh + 1 dst + 0FFh + 1 仿真设置 : CMP #0,dst CMP.B #0,dst 描述 : 目的操作数和 0 做比较. 状态标志位依据结果而设置. 目的操作数不受影响. 状态标志位 : N: 如果为负数则置位, 否则复位 Z: 如果目的操作数为 0 则置位, 否则复位 C: 置位 V: 复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : R7 被测试. 如果结果为负数, 则程序跳转到 R7NEG 处继续执行 ; 如果结果是负数但是不为 0, 则程序跳转到 R7POS 处继续执行. TST R7 ; 测试 R7 JN R7NEG ; R7 为负数 JZ R7ZERO ; R7 为 0 R7POS ; R7 为负数但是不为 0 R7NEG ; R7 为负数 R7ZERO ; R7 为 0 例 : Page 47 of 53

48 测试 R7 的低字节 如果为负数, 则程序跳转到 R7NEG 处继续执行 ; 如果 R7 是负数但不为 0, 则 R7 跳转到 R7POS 处继续执行. TST.B R7 ; 测试 R7 的低字节 JN R7NEG ; R7 的低字节为负数 JZ R7ZERO ; R7 的低字节为 0 R7POS ; R7 的低字节为负数但不为 0 R7NEG... ; R7 的低字节为负数 R7ZERO ; R7 的低字节为 0 XOR[.W] 源操作数和目的操作数的异或 XOR.B 源操作数和目的操作数的异或语法格式 : XOR src,dst 或 XOR.W src,dst XOR.B src,dst 操作 : src.xor. dst > dst 描述 : 源操作数和目的操作数异或, 结果存放在目的操作数中, 源操作数不受影响状态标志位 N: 如果最高位被设置则置位, 否则复位 Z: 结果为 0 则置位, 否则复位 C: 结果不为 0 则置位, 否则复位 V: 如果两个操作数均为负数, 则置位否则复位模式选择位 OSCOFF, CPUOFF, 和 GIE 不受影响. 例 : 在 R6 中的设置的位连接 RAM 中的字 TONI XOR R6,TONI ; 字 TONI 中的连接位在 R6 中的相关位中被设置例 : 在 R6 中的设置的位连接 RAM 中的字节 TONI. XOR.B R6,TONI ; 字节 TONI 中的连接位在 R6 中的低字节中相关位中被设置 ; low byte of R6 例 : 将 R7 中的低字节设为 0 使得异或 RAM 中的字节 EDE. XOR.B EDE,R7 ; 不同的反转为 1s INV.B R7 ; 反转低字节, 高字节为 0h 指令周期和指令长度 CPU 的时钟周期数 The number of CPU clock cycles required for an instruction depends on the instruction format and the addressing modes used - not the instruction itself. 时钟的周期数可参考 MCLK. 中断和复位周期 Interrupt and Reset Cycles 表 3 14 列出了中断和复位时 CPU 的周期 Page 48 of 53

49 表 3 14 单操作数的指令周期和长度表 3 15 列出了格式 2 所有寻址模式格式的 CPU 周期 表 3 15 注 : 指令格式 2 的立即数模式勿在立即数模式下的目的操作数中使用指令 RRA, RRC, SWPB, 和 SXT. 这些指令在立即数模式中的将导致是不可预见程序操作. 格式 3, 跳转指令的指令周期和指令长度无论跳转是否发生, 所有的跳转指令都将占用一个字指令和两个 CPU 周期去执行. 格式 1, 双操作数的指令周期和指令长度表 3 16 列出了在格式 1 的情况下所有寻址模式的 CPU 周期 Page 49 of 53

50 表 3 16 Page 50 of 53

51 3.4.5 指令设置的描述核心指令图如图 3 20 中所示, 所有的指令设置在表 3 17 作了一个总结. 图 3 20 Mnemonic Description V N Z C ADC(.B) dst 将 C 加到目的操作数 dst + C dst * * * * ADD(.B) src,dst 目的操作数和源操作数相加 src + dst * * * * dst ADDC(.B) src dst 带进位的目的操作数和源操作数相加 src + dst + C dst * * * * AND(.B) src,dst 操作数和源操作数相与 src.and. dst 0* * * dst BIC(.B) src dst 清除目的操作数的位. not.src.and. dst dst BIS(.B) src,dst 设置目的操作数的位 src.or. dst dst BIT(.B) src,dst 测试目的操作数中的位 src.and. 0* * * dst BR dst 转移程序到目的操作数中的地址中去 dst PC CALL dst 调用目的地址处的程序 PC+2 stack, dst PC CLR(.B) dst 清除目的操作数为 0 dst CLRC 清除进位标志位 C 0 C 0 CLRN 清除负数标志位 N 0 N 0 Page 51 of 53

52 CLRZ 清除零标志位 Z 0 Z 0 CMP(.B) src,dst 比较操作数和源操作数 dst src * * * * DADC(.B) dst 将进位标志位加到十进制的目的操作数中去 dst + C dst * * * * DADD(.B) src,dst 操作数和源操作数的十进制加法 dst. src + dst + C dst * * * * DEC(.B) dst 目的操作数减 1 dst 1 dst * * * * DECD(.B) dst 目的操作数减 2 dst 2 dst * * * * DINT 屏蔽中断 0 GIE EINT 中断使能 1 GIE INC(.B) dst 目的操作数加 1 dst +1 dst * * * * INCD(.B) dst 目的操作数加 2 dst+2 dst * * * * INV(.B) dst 反转目的操作数.not.dst dst * * * * JC/JHS label 进位标志位被设置 C 跳转 / 大于或等于则跳转 JEQ/JZ label 相等则跳转 / 零标志位被设置则跳转 JGE label 大于或等于则跳转 JL label 小于则跳转 JMP label 无条件跳转 PC + 2 x offset PC JN label 负数标志位为 N 被设置则跳转 JNC/JLO label 进位标志位没有被设置则跳转 / 低于则跳转 JNE/JNZ label 不相等则跳转 / 零标志位没有被设置则跳转 MOV(.B) src,dst 将源操作数移到目的操作数中 src dst NOP 空指令 POP(.B) dst dst, SP+2 SP PUSH(.B) src 入栈 SP 2 SP, RET PC, SP + 2 SP RETI 中断返回 * * * * RLA(.B) dst 算术左移 * * * * RLC(.B) dst 带进位的算术左移 * * * * RRA(.B) dst 算术右移 0* * * RRC(.B) dst 带进位的算术右移 * * * * SBC(.B) dst 目的操作数减法借位 dst + 0FFFFh + C dst * * * * SETC 设置 C 1 C 1 SETN 设置 N 1 N 1 SETZ 设置 Z 1 C 1 SUB(.B) src,dst 从目的操作数和源操作数中相减 dst +.not.src + 1 dst * * * * SUBC(.B) src,dst 带借位的源操作数和目的操作数相减. dst +.not.src + C dst * * * * SWPB dst 交换字节 SXT dst 符号扩展 0* * * TST(.B) dst 测试目的操作数 dst + 0FFFFh * * 1 XOR(.B) src,dst 异或源操作数和目的操作数 src.xor. dst dst * * * * 表 3 17 Page 52 of 53

53 MSP430F22x4 开发板 专业提供 MSP430 单片机开发工具 Page 53 of 53

学习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

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

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

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

MSP430x11x1 T A -40 ~ SOWB 20 TSSOP (DW) (PW) MSP430F110IDW MSP430F110IPW MSP430F112IDW MSP430F112IPW + F11x 30kΩ

MSP430x11x1 T A -40 ~ SOWB 20 TSSOP (DW) (PW) MSP430F110IDW MSP430F110IPW MSP430F112IDW MSP430F112IPW + F11x 30kΩ MSP430F11x 1.8-3.6V 1.6uA@4KHz 200uA@1MHz 2.2V 5 ( 0.8uA RAM 0.1uA) 6us 16 RISC 125nS 32KHz / 16 A/D MSP430F110 1KB+128B 128B RAM MSP430F112 4KB+256B 256B RAM 20 (SOWB) 20 (TSSOP) MSP430 16 RISC CPU 16

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

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

MSP430 MSP430 F149 MSP430F149 P USART MSP430F PWM 63#

MSP430 MSP430 F149 MSP430F149 P USART MSP430F PWM 63# MSP430 MSP430 0002 63# 710061 2003 7 63# 710061 1 MSP430 MSP430 F149 MSP430F149 P USART MSP430F149 485 232 PWM 63# 710061 2 MSP430 MSP430 16 FLASH,, 16, 64K,, 16 14 12 6 P USART DCO, 8M FLASH,, JTAG FET(FLASH

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

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

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

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

More information

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20 (Jump) (Loop) (Conditional jump) CMP CALL AND SAR/SHR TEST JMP NOT SAL/SHL Jnnn* OR RCR/ROR LOOP XOR RCL/ROL RETn * nnn, JNE JL -128 127-32,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far

More information

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令 2017 版 微机原理与系统设计 第 3 章 8086CPU 指令系统 董明皓, 博士 西安电子科技大学 dminghao@xidian.edu.cn 目录 (12 课时 ) 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 微机原理与系统设计 8086CPU 的指令系统董明皓 dminghao@xidian.edu.cn 2 基础知识引入

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

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

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

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

AVR单片机指令系统.PDF

AVR单片机指令系统.PDF AVR 4 1 (1) 89 :AT90S1200, ; (2) 90 ( ):Attiny11/12/15/22; 90 = +89 (3) 118 ( ):AT90S2313/2323/2343/2333,/4414/4433/4434/8515/90S8534/8535 ;118 = + 90 ; (4) 121 ( )ATmega603/103; 121 = + 118 ; (5) 130

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

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 PowerPoint - 微原-第3章2.ppt [兼容模式]

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

More information

数据库系统概论

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

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

PowerPoint 簡報

PowerPoint 簡報 微算機原理與實驗 (UEE 2301/1071 ) Chap 5. MCS-51 Addressing Modes 宋開泰 Office:EE709 Phone:5731865( 校內分機 :31865) E-mail:ktsong@mail.nctu.edu.tw URL:http://isci.cn.nctu.edu.tw 1 Addressing Modes Addressing mode is

More information

MPS430系列微控制器

MPS430系列微控制器 TEXAS INSTRUMENTS MSP430 系列混合信号微控制器结构及模块 用户指南 目录 1 MSP430 系列 1.1 特性与功能 1.2 系统关键性能 1.3 MSP430 系列的各型号 2 结构概述 2.1 CPU 2.2 代码存储器 2.3 数据存储器 (RAM) 2.4 运行控制 2.5 外围模块 2.6 振荡器 倍频器和时钟发生器 3 系统复位 中断和运行模式 3.1 系统复位和初始化

More information

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

微机第02章1(指令寻址) 微机原理及应用 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 西华大学电气信息学院 1 第 03 章 80X86 的寻址方式和指令 ( 本章内容 ) 3.1 指令的格式 3.2 8086/8088 的寻址方式 3.3 指令系统 3.3.1 数据传送指令 3.3.2 算术运算指令 3.3.3 逻辑运算与移位指令 3.3.4 串操作指令

More information

Microsoft PowerPoint - C15_LAB_MTS86_INTRO

Microsoft PowerPoint - C15_LAB_MTS86_INTRO INTRODUCTION TO THE MTS-86C MICROCOMPUTER TRAINER What s MTS-86? 7-4 7-5 7-7 7-3 7-2 7-3 7-6 2 4 5 3 7-6 7-8 7-3 8 4 5 3 6 37 微處理機原理與應用國立台灣大學生物機電系 SPECIFICATION () CPU: 886 (2) Display Unit: LCD (6x2 Line)

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_06

Microsoft PowerPoint - C15_LECTURE_NOTE_06 8088/8086 MICROPROCESSOR PROGRAMMING CONTROL FLOW INSTRUCTIONS AND PROGRAM STRUCTURES 8088/8086 MICROPROCESSOR PROGRAMMING CONTROL FLOW INSTRUCTIONS AND PROGRAM STRUCTURES 61 Flag-Control 62 Compare 63

More information

幻灯片 1

幻灯片 1 3 8086 Tel:2656809 tjx@csu.edu.cn 2005-9-14 1 2005-9-14 2 8086 8 8086 8086 7 2005-9-14 3 PC 2005-9-14 4 2005-9-14 5 81616 2005-9-14 6 [ ] MOV AX, 3064H AX=3064H 16AX OP 64H 30H 2005-9-14 7 16 AX BX CX

More information

数据库系统概论

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

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt 8088/8086 MICROPROCSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS The MOVE The move (MOV) instruction is used to transfer a byte or a word of data from a source operand to a destination operand

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

Computer Architecture

Computer Architecture ECE 3120 Computer Systems Assembly Programming Manjeera Jeedigunta http://blogs.cae.tntech.edu/msjeedigun21 Email: msjeedigun21@tntech.edu Tel: 931-372-6181, Prescott Hall 120 Prev: Basic computer concepts

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

Microsoft PowerPoint - Ch3-8086CPU指令系统(2)-寻址.pptx

Microsoft PowerPoint - Ch3-8086CPU指令系统(2)-寻址.pptx 2018 版 微机原理与系统设计 第 3 章 8086CPU 指令系统 董明皓, 博士 西安电子科技大学 dminghao@xidian.edu.cn 目录 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 2 目录 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 3 8086 指令分类

More information

L15 MIPS Assembly

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

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

Microsoft PowerPoint - C15_LECTURE_NOTE_06

Microsoft PowerPoint - C15_LECTURE_NOTE_06 61 Flag-Control 8088/8086 MICROPROCESSOR PROGRAMMING CONTROL FLOW INSTRUCTIONS AND PROGRAM STRUCTURES LAHF SAHF CLC STC CMC CLI STI Load AH from flags Store AH into flags Clear carry flag Set carry flag

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

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt 8088/8086 MICROPROCESSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS 8088/8086 MICROPROCESSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS 5.1 Data-Transfer Instructions 5.2 Arithmetic Instructions

More information

42 2141601026 2016 11 27 2 1.1............................................. 2 1.2....................................... 2 1.2.1......................................... 2 1.3.............................................

More information

EMC单片机学习笔记.doc

EMC单片机学习笔记.doc EMC 单片机学习笔记 (0) 引子因为工作的缘故, 必须学习 EMC 单片机了 我会把我的学习历程写下来, 算是对坛子的一点贡献, 也算是自己的一个总结吧 因为以前学过 51 的和 PIC HOLTEK 的单片机, 并且也大致了解过 EMC 的指令集, 所以学起来并不是太难 为了学习, 而又没有仿真器, 于是去 emc 的网站下载了一个 simulator 来软件仿真 第一感觉还不错, 把里面的例子程序跑了一下,

More information

Microsoft PowerPoint - chap5.ppt

Microsoft PowerPoint - chap5.ppt 邏輯運算指令的動作 0 1 0 1 0 0 1 1 OR 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 (a) OR 運算 0 1 0 1 0 0 1 1 XOR 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 (c) XOR 運算 希望設定為 1 的位元 罩網標的位元組 新標的位元組 不改變的位元 希望取補數的位元 罩網標的位元組 新標的位元組 不改變的位元 1

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

79 SZ/SH/SM ONOFF SET/RST SZSHSM SET SET RST RESET ( ) ( ) SET XXXX SET XXXX XXXX RST XXXX RST XXXX XXXX 1(2) SZ3 SZ4 SH SM I000~I177 I000~I477 I000~I

79 SZ/SH/SM ONOFF SET/RST SZSHSM SET SET RST RESET ( ) ( ) SET XXXX SET XXXX XXXX RST XXXX RST XXXX XXXX 1(2) SZ3 SZ4 SH SM I000~I177 I000~I477 I000~I 78 SZ/SH/SM 55 ON OUT/ZOUT OUT OUT AOUT ZOUT SZ3 SZ4 SH SM SZSHSM I000~I177 I000~I477 I000~I077 I000~I077 1 Q000~Q177 Q000~Q477 Q000~Q077 Q000~Q077 M000~M377 M000~M377 M000~M377 M000~M377 1. ON OFF 2.OUT

More information

Microsoft PowerPoint - chap4.ppt

Microsoft PowerPoint - chap4.ppt 定址方式 定址方式 格式 有效位址 立即資料定址 #data8 暫存器定址 Rn (R0 ~ R7) 直接定址 addr8 addr8 絕對定址 addr11 addr11 長程 ( 絕對 ) 定址 addr16 addr16 ( 暫存器 ) 間接定址 @Ri (@R0 @R1) 或 @DPTR R0 R1 或 DPTR ( 暫存器 ) 相對定址 disp8 PC+ 符號擴展之 disp8 ( 基底

More information

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63> 因 为 路 过 你 的 路, 因 为 苦 过 你 的 苦, 所 以 快 乐 着 你 的 快 乐, 追 逐 着 你 的 追 逐 内 容 简 介 本 书 根 据 2005 年 下 半 年 实 施 的 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 嵌 入 式 系 统 设 计 师 级 考 试 大 纲 精 神, 在 深 入 研 究 历 年 计 算 机 技 术 与 软

More information

專題最終版.doc

專題最終版.doc The Principle and Application of the Electric Combination Lock The Principle and Application of the Electric Combination Lock Abstract Recently, there are more and more burglaries in the society. It's

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

<4D F736F F D204D CEA2BFD8D6C6C6F7D4ADC0EDD3EBCAB5BCF92E646F63>

<4D F736F F D204D CEA2BFD8D6C6C6F7D4ADC0EDD3EBCAB5BCF92E646F63> http://www.microcontrol.cn 微控设计网 中国 MSP430 单片机专业网站 作者魏小龙南航 MSP430 选修课试用教材第 2 页 第一章 MSP430 单片机 ( 微控制器 ) 基础 2.1 MSP430 程序设计基础 4 2.1.1 MSP430 的 16 位 CPU 5 2.1.2 寻址模式 13 2.1.3 指令格式 22 2.1.4 汇编语言程序设计 30 2.1.5

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

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

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

12232A LED LED LED EL EL CCFL EL CCF

12232A LED LED LED EL EL CCFL EL CCF 12232A 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 122 x 32 1/32Duty 1/5Bias 6:00 STN( ), EL LED EL/100VAC 400HZ LED/4.2VDC 1 / VDD-VSS 0 6.5 V Ta=25 LCD VDD-V0 0 12.0 V V1 0 VDD V VDD-VSS - 4.75

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

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC General instruction format for machine code 611 37100 微處理機原理與應用 Lecture 04-4 MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE

More information

投影片 1

投影片 1 2 理 1 2-1 CPU 2-2 CPU 理 2-3 CPU 類 2 什 CPU CPU Central Processing Unit ( 理 ), 理 (Processor), CPU 料 ( 例 ) 邏 ( 例 ),, 若 了 CPU, 3 什 CPU CPU 了, 行, 利 CPU 力 來 行 4 什 CPU 5 2-2-1 CPU CPU 了 (CU, Control Unit) / 邏

More information

D/A DAC ( 1us) (10~20 ) DAC0832 1

D/A DAC ( 1us) (10~20 ) DAC0832 1 D/A DAC0832 8 ( 1us) (10~20 ) DAC0832 1 1. 20 DI7~DI0 ILE 8 8 DAC 8 D/A LE LE & RFB VREF IOUT2 IOUT1 RFB CS WR1 XFER WR2 & & AGND VCC DGND 2 DI7~DI0 ILE & 8 LE 8 DAC LE 8 D/A RFB V REF IOUT2 IOUT1 R FB

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC 4.1 Converting Assembly Language Instructions to

More information

<4D F736F F D20B5DA33D5C D A3A84CA3A9B5C4D6B8C1EECFB5CDB32E646F6378>

<4D F736F F D20B5DA33D5C D A3A84CA3A9B5C4D6B8C1EECFB5CDB32E646F6378> AVR 单片机 C 语言开发入门与典型实例 ( 修订版 ) 作者 : 华清远见 第 3 章 ATmega128(L) 的指令系统 本章目标 本章主要介绍 ATmega128(L) 的指令系统, 首先分析 ATmega128(L) 的 指令的特点 分类和寻址方式, 并详细介绍了指令系统的每条指令, 最后介绍了 ATmega128(L) 汇编语言的一些基本知识 本章的主要内容有以下几个方面 指令系统的特点

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

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

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

R/W

R/W (HD44780 KS0066 ) 3 3 5 6 10 14 HD44780/KS0066 16 2 LCM 8 1 40 4 LCD HD44780/KS0066 HD44100 IC PCB 0.1 CMOS 1. 2. 3. 4. 5. RH60% 6. 1. 2. 3. PCB 3 4. 5. 6. 1. 280 C 2. 3 4s 3. 4. 5. 3 5 1. 2. IC 3. DC-DC

More information

四位微控制器ML64168_ _.doc

四位微控制器ML64168_ _.doc SSSC /4168P 2005 8 4 4, (ADC), LCD Driver, (Buzzer), 1 3 CPU17 CPU 26 33 42 45 48 73 79 85 89 A/D 92 111 125 128 131 SSU4168P 133 143 A: / 153 B: 156 C: 158 D: 160 E: 161 F: 163 G: PAD 167 2 ,, 11 4 CMOS

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

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

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

More information

没有幻灯片标题

没有幻灯片标题 第 2 章单片机结构 第 1 节单片机简介 第 2 节 MSP430 单片机结构 第 1 节单片机简介 一 单片机与嵌入式系统 二 典型单片机的基本构成 一 单片机与嵌入式系统 将 CPU 内存 I/O 接口集成一块芯片上, 构成具备基本功能的计算机, 称单片机 总线控制 CPU 时钟逻辑复位控制 CPU 系统 CPU 外围单元 ROM RAM I/O T/C UART 中断 基本功能单元 PWM

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

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

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

Microsoft PowerPoint - chx09_org04_isa.ppt

Microsoft PowerPoint - chx09_org04_isa.ppt 计算机组织与系统结构 指令系统设计 Instruction Set Design ( 第四讲 ) 程旭 2009.3.5 指令系统设计 软件 指令系统 硬件 指令系统体系结构 (Instruction Set Architecture) ADD SUBTRACT AND OR COMPARE... 从程序员来观察 01010 01110 10011 10001 11010... 从计算机来观察 CPU

More information

Microsoft PowerPoint ren-advanced topics [兼容模式]

Microsoft PowerPoint ren-advanced topics [兼容模式] 嵌入式系统设计与应用 第五章 ARM 与 Thumb 指令集 西安交通大学电信学院 任鹏举 1 深入 ARM 指令集 在以字节为单位寻址的存储器中, 有两种方式来存储字, 这根据最低有效字节与相邻较高有效字节相比是存在较低的还是较高的地址来划分 On holy wars and a plea for peace 小端 大端 条件执行 ARM 指令集不同寻常的特征是, 条件执行不仅应用于转移指令, 也可以应用于所有的

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

Application Note Format

Application Note Format USB 說 2 - AD PWM Office: 6F, No. 12, Innovation 1st. RD., Science-Based Industrial Park, Hsin-Chu City, Taiwan, R.O.C Tel: +886-3-6661766 ext.1672 Fax: +886-3-6661765 Etoms Electronics Corp. Publication

More information

Microsoft PowerPoint sun-arm isa2.ppt [Compatibility Mode]

Microsoft PowerPoint sun-arm isa2.ppt [Compatibility Mode] 嵌入式系统设计与应用 第二章 ARM 指令系统 (2) 西安交通大学电信学院 孙宏滨 汇编伪指令 汇编伪指令 : 在 ARM 汇编语言里, 有一些特殊指令助记符, 没有相对应的操作码 ( 或直接对应指令 ) 通常称这些特殊指令助记符为伪指令, 它们所完成的操作叫做伪操作 伪指令在源程序中的作用是为完成汇编程序作各种准备工作 这些伪指令仅在汇编过程中起作用, 一旦汇编结束, 伪指令的使命完成 ADR:

More information

instructions.PDF

instructions.PDF 94 SIMATIC (END) (END) Micro/WIN 32 (STOP) (STOP) CPU RUN STOP STOP CPU RUN STOP (WDR) (Watchdog Reset) (WDR) CPU WDR WDR ( ) I/O ( I/O ) SM (SM0 SM5 SM29 ) 25 0 ms 00 ms STOP 300ms 300ms WDR S7-200 CPU

More information

微處理機期末專題

微處理機期末專題 微 處 理 機 期 末 專 題 自 動 鋼 琴 組 員 :b92611004 羅 鈞 瑋 b92611008 吳 妍 儂 b92611038 吳 韋 靜 b92611042 林 佳 穎 一 簡 介 本 組 的 主 題 是 自 動 鋼 琴 在 播 放 音 樂 的 同 時, 鋼 琴 會 自 動 按 下 琴 鍵, 被 按 下 的 琴 鍵 所 對 應 到 的 音 階, 就 是 正 在 撥 放 的 樂 曲 的

More information

untitled

untitled EDM16080-01 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3

More information

Microsoft Word - µÚ4ÕÂ Basic clock+.doc

Microsoft Word - µÚ4ÕÂ Basic clock+.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 4 章 Basic Clock + 基础时钟模块 + 版本 : 1.4 日期 : 2007.6. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 张超哈尔滨理工大学编辑 : DC 微控技术论坛版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误

More information

幻灯片 1

幻灯片 1 字符串处理是指对一系列的字母或数字的代码进行相同功能的处理 计算机中字符代码一般都采用 ASCII 码, 每个字符的代码占一个字节, 一组字符串存放在一个连续的存储区中 存放在连续的存储区中的这组字符串, 可看为一个数据块 为了提高对字符串 ( 或数据块 ) 的处理效率,8086/8088 指令系统中专门提供了一组对字符串处理的指令, 这些指令包括 : 字符串传送指令 (MOVS) 字符串比较指令

More information

RISC-V 相关技术文档 1 RV32I 基本整数指令集 1.1 基本整数子集的程序员模型有 31 个通用寄存器 x1~x31, 它们保存了整数数值 寄存器 x0 是硬件连线的常数 0 没有硬件连线的子程序返回地址连接寄存器, 但是在一个过程调用中, 标准软件调用约定使用寄存器 x1 来保存返回地

RISC-V 相关技术文档 1 RV32I 基本整数指令集 1.1 基本整数子集的程序员模型有 31 个通用寄存器 x1~x31, 它们保存了整数数值 寄存器 x0 是硬件连线的常数 0 没有硬件连线的子程序返回地址连接寄存器, 但是在一个过程调用中, 标准软件调用约定使用寄存器 x1 来保存返回地 Risc-v 开发 Risc-v 基础知识 北京飞利信科技股份有限公司 2018 年 5 月 RISC-V 相关技术文档 1 RV32I 基本整数指令集 1.1 基本整数子集的程序员模型有 31 个通用寄存器 x1~x31, 它们保存了整数数值 寄存器 x0 是硬件连线的常数 0 没有硬件连线的子程序返回地址连接寄存器, 但是在一个过程调用中, 标准软件调用约定使用寄存器 x1 来保存返回地址 对于

More information

Microsoft PowerPoint - CA_02 Chapter5 Part-I_Single _V2.ppt

Microsoft PowerPoint - CA_02 Chapter5 Part-I_Single _V2.ppt Chapter5- The Processor: Datapath and Control (Single-cycle implementation) 臺大電機系吳安宇教授 V. 3/27/27 V2. 3/29/27 For 27 DSD Course 臺大電機吳安宇教授 - 計算機結構 Outline 5. Introduction 5.2 Logic Design Conventions 5.3

More information

7688使用手冊V10.doc

7688使用手冊V10.doc TP-7688 . 2 2. 3 3. 5 4. 5 5. 6 6. 7 7. 8 8. 9 9.. 4. 7 2 2., 7x9 / 6x9 7x9.3() x 3.()mm 6x9 2.84() x 3.()mm 3 ASCII 7x9 95 ASCII 6x9 95 6x9 7 BIG5 6x9 3973 6x9 28 7x9 24 24 55 6x9 2 2 27 4.23mm (/6 inch)

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

dfgdafhdafhdafhdafh

dfgdafhdafhdafhdafh 逢 甲 大 學 自 動 控 制 工 程 學 系 專 題 製 作 專 題 論 文 數 位 式 電 子 秤 之 研 製 Design Study of Digital Electronic Weighing Sensor 指 導 教 授 : 賴 啟 智 學 生 : 劉 人 豪 俞 仲 維 中 華 民 國 九 十 八 年 四 月 二 十 二 日 ii . 誌 謝 本 文 承 蒙 賴 啟 智 老 師 指 導,

More information

Microsoft Word - 新1-3.doc

Microsoft Word - 新1-3.doc 模块三 80C51 的指令系统和程序设计 (1) 了解 80C51 指令系统的构成 (2) 掌握 80C51 单片机的寻址方式 (3) 掌握 80C51 单片机的各种指令及其应用 (4) 掌握汇编语言程序设计方法, 为以后实际控制系统的程序设计奠定基础 3.1 80C51 指令系统概述 对于任何一台计算机, 如果只有硬件 ( 称为裸机 ), 而没有软件 ( 即程序 ) 的支持是不能工作的 单片机也不例外,

More information

STC15W4K60S4系列增强型PWM波形发生器应用

STC15W4K60S4系列增强型PWM波形发生器应用 STC15W4K32S4 系列新增 6 通道增强型带死区控制高精度 PWM 波形发生器应用 STC15W4K32S4 系列的单片机集成了一组 ( 各自独立 6 路 ) 增强型的 PWM 波形发生器 PWM 波形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用, 用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,

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

<4D F736F F D D433635CFB5C1D0B5A5C6ACBBFAD4ADC0EDBCB0BFAAB7A25F56312E322E646F63>

<4D F736F F D D433635CFB5C1D0B5A5C6ACBBFAD4ADC0EDBCB0BFAAB7A25F56312E322E646F63> 凌阳 8 位通用单片机 SPMC65 系列单片机原理及开发 VERSION1.2 2006-1-12 凌阳单片机推广中心 http://www.sunplusmcu.com 前 言 通用单片机, 其实泛指微控器, 对于芯片提供厂商, 又指应用于通用领域的单片机产品 ; 广泛应用于家电产品 工业控制产品 仪器仪表设备 智能控制器等当中, 渗透在人们的日常生活 生产活动当中 按照通用单片机的数据总线位数划分,

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C AUTOMATIC TROLLEY H K Hwang K K Chen J-S Lin S-C Wang M-L Li C-C Lin W-B Lin Dept. Of Electrical Engineering Far East College ABSTRACT This paper proposes an automatic trolley which can move automatically

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

Microsoft PowerPoint - lec11 [兼容模式]

Microsoft PowerPoint - lec11 [兼容模式] 代码生成 代码生成 代码生成的输入 - 各种中间代码形式 目标代码与目标机器模型 简单的代码生成器 基本块 DAG 图及代码生成 目标代码 绝对地址目标代码 可重定位的目标 - linker/loader 汇编代码 - assembler 目标机器模型 指令形式 op 源, 目的 寻址模式 - 绝对地址 :op M, R R op (M) R - 寄存器 :op R1,R2 R2 op R1 R2

More information

Microsoft PowerPoint - CA_03 Chapter5 Part-II_multi _V1.ppt

Microsoft PowerPoint - CA_03 Chapter5 Part-II_multi _V1.ppt Chapter5-2 The Processor: Datapath and Control (Multi-cycle implementation) 臺大電機系 吳安宇教授 V1. 03/27/2007 For 2007 DSD Course 臺大電機吳安宇教授 - 計算機結構 1 Outline 5.1 Introduction 5.2 Logic Design Conventions 5.3

More information

Microsoft Word - 專題封面.doc

Microsoft Word - 專題封面.doc 逢 甲 大 學 資 訊 工 程 學 系 專 題 研 究 報 告 8051 小 遊 戲 -21 點 指 導 教 授 : 陳 德 生 學 生 : 許 博 益 中 華 民 國 九 十 六 年 六 月 I 目 錄 第 一 章 緒 論 1 1-1 研 究 背 景 1 1-2 研 究 動 機 2 1-3 研 究 目 的 3 1-3-1 21 點 源 起 3 1-3-2 21 點 規 則 3 第 二 章 微 電

More information

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32-- HD61202 C-7 1 HD61202 HD61202 8 HD61203 HD61202, HY-12864 HY-19264 HD61202 HD61202 HD61203 HD61202 1 6464=4096 RAMRAM LCD 2HD61202 64 3HD61202 68 68 4HD61202 1/32--1/64 HD61202 HD61202 2 CS1,CS2,CS3 CS1

More information

Ellen G. White Writings

Ellen G. White Writings {CG 17.1} {CG 17.2} {CG 17.3} {CG 18.1} {CG 18.2}? {CG 18.3} {CG 18.4} {CG 18.5} Page 1 of 198 {CG 19.1} {CG 19.2} {CG 19.3} {CG 19.4} {CG 21.1} {CG 21.2} {CG 21.3} {CG 21.4} {CG 21.5} {CG 22.1} Page 2

More information

第4章 80X86指令系统

第4章  80X86指令系统 第 4 章 80x86 指令系统 一 练习题 ㈠选择题 1.MOV AX,[BX+SI] 的源操作数的物理地址是 ( ) A.(DS) 16+(BX)+(SI) B. (ES) 16+(BX)+(SI) C.(SS) 10H+(BX)+(SI) D.(CS) 10H+(BX)+(SI) 2.MOV AX,[BP+Sl] 的源操作数的物理地址是 ( ) A.(DS) 10H+(BP)+(SI) A.

More information