8位单片微控制器指令集详解-78K0系列

需积分: 37 76 下载量 62 浏览量 更新于2024-08-10 收藏 18.89MB PDF 举报
"NEC-78K0/Kx2用户手册.pdf[中文版本]" 本文档是关于NEC 78K0/Kx2系列8位单片微控制器的用户手册,涵盖了78K0/KB2、KC2、KD2、KE2和KF2子系列的不同型号,如78F0500A到78F0547DA以及带(A)后缀的版本,其中部分型号具备片上调试功能。文档编号为U18598CA1V0UD00,发行于2007年12月。 在编程和指令集方面,手册详细列出了29.3节中的按寻址类型列出的指令,这些指令主要涉及数据的移动、交换、算术运算、逻辑运算、比较、乘法、除法、增量、减量、循环移位以及堆栈操作。以下是这些指令的简要概述: 1. **8位指令**:这些指令主要处理8位数据,包括: - **MOV**:数据移动,用于将一个寄存器或常量的数据复制到另一个位置。 - **XCH**:数据交换,交换两个寄存器或内存位置的数据。 - **ADD, ADDC**:加法运算,ADD执行无进位加法,ADDC处理进位加法。 - **SUB, SUBC**:减法运算,SUB执行无借位减法,SUBC处理借位减法。 - **AND, OR, XOR**:逻辑运算,AND执行按位与,OR执行按位或,XOR执行按位异或。 - **CMP**:比较,比较两个值并更新标志位。 - **MULU, DIVUW**:无符号乘法和除法,用于处理无符号整数的乘法和除法操作。 - **INC, DEC**:增量和减量,分别增加或减少寄存器或内存位置的值。 - **ROR, ROL, RORC, ROLC, ROR4, ROL4**:循环右移、循环左移、带进位的右移和左移,以及特定位数的移位操作。 - **PUSH, POP**:堆栈操作,PUSH将数据压入堆栈,POP从堆栈弹出数据。 - **DBNZ**:数据不等于零时跳转,用于循环控制。 2. **寻址方式**:指令可以采用不同的寻址方式访问数据,包括直接寻址、寄存器间接寻址、立即寻址、相对寻址等。例如: - `#byte`:立即寻址,使用字节常量。 - `A, r`:寄存器寻址,使用累加器A或其他寄存器r。 - `sfr, saddr`:特殊功能寄存器和直接地址寻址。 - `[DE], [HL]`:寄存器对寻址,如DE或HL指向的内存位置。 - `[HL+byte]`, `[HL+B]`, `[HL+C]`:变址寻址,基于HL加上偏移量。 - `$addr16`:直接16位地址寻址。 3. **指令注释**:某些指令有特定的限制或注意事项,例如`r = A`除外表示该指令不适用于累加器A。 78K0/Kx2系列的这些指令构成了其指令集的基础,它们是编写微控制器程序的核心,用于控制硬件资源、执行计算任务和实现系统功能。了解和熟练掌握这些指令对于进行有效的嵌入式系统编程至关重要。在实际开发过程中,开发者需要根据具体的微控制器型号和应用场景选择适当的指令,并结合寻址方式来实现所需的程序逻辑。