DSP 汇编指令缩写
第五章 DSP的汇编指令..

第五章 TMS320C55x系列DSP的汇编指令
(2) 用户自定义的双指令的并行
这两条指令的并行是通过用户或C编译器定义的。两条指令 同时执行两个操作,用并行符“||”区分并行执行的两条指令。 例:
MPYM *AR1+, *CDP, AC1 ;D单元的一个MAC来完成
||XOR AR2,T1
;A单元的ALU来完成
第五章 TMS320C55x系列DSP的汇编指令
1、高速数字信号处理中常采用汇编语言编程。 2、汇编语言中的两种指令集 (1) 助记符指令集:有助于记忆的符号来表示指令。 (2) 代数指令集:类似于代数表达式,运算关系清楚明了。 注意:DSP的软件开发工具只支持单一的指令形式,不支持助记
符指令和代数指令的混合形式。 3、术语、符号和缩写见P93的表5-1 4、运算符见表5-2
令执行的条件:
TCx(测试/控制标志为1) !TCx(测试/控制标志为0)
TC1&TC2 TC1&!TC2 TC1|TC2 TC1|!TC2 TC1^TC2 TC1^!TC2
!TC1&TC2 !TC1&!TC2 !TC1|TC2 !TC1|!TC2 !TC1^TC2 !TC1^!TC2
第五章 TMS320C55x系列DSP的汇编指令
4、双16比特算术指令: [(1)语法、(2)操作数、(3)状态位] 在D单元中利用其ALU的双16比特模式,同时执行(并行)两个16
比特算术运算,包括加-减、减-加、两个加和两个减运算。
例:
说明: NO:不能并行执行 3:指令的长度为3字节 1:周期为1 X:在X(执行)流水线阶段处理
D – ALU:在D单元ALU执行。 执行结果:AC0=(*AR3)+CARRY+AC1 状态位: Affected by CARRY,C54CM,M40等
第五章 DSP的汇编指令..

令执行的条件:
TCx(测试/控制标志为1) !TCx(测试/控制标志为0)
TC1&TC2 TC1&!TC2 TC1|TC2 TC1|!TC2 TC1^TC2 TC1^!TC2
!TC1&TC2 !TC1&!TC2 !TC1|TC2 !TC1|!TC2 !TC1^TC2 !TC1^!TC2
第五章 TMS320C55x系列DSP的汇编指令
4、双16比特算术指令: [(1)语法、(2)操作数、(3)状态位] 在D单元中利用其ALU的双16比特模式,同时执行(并行)两个16
比特算术运算,包括加-减、减-加、两个加和两个减运算。
例:
▪ M40=0时,D单元按32位运算模式,因此累加器溢出、进位、符号扩
展和移位操作都以第31比特为准。
▪ M40=1时,D单元按40位运算模式,因此累加器溢出,进位,符号扩
展和移位操作都以第39比特为准。
BCLR M40 ; Clear M40
BSET M40 ; Set M40
第五章 TMS320C55x系列DSP的汇编指令
第五章 TMS320C55x系列DSP的汇编指令
一、算术运算指令 用于完成加减乘除等运算,按照功能可分成以下几类:
▪ 加法指令 ▪ 减法指令:减法,条件减法,条件加/减 ▪ 乘法指令:乘法,乘加,乘减,双乘加/减 ▪ 双16比特算术指令 ▪ 比较运算指令:比较并求极值,最大/最小值,存储单元比较,寄存器比较 ▪ 移位指令:条件移位、带符号的移位。 ▪ 寄存器修改:辅助寄存器修改、堆栈指针SP修改 ▪ 隐含的并行指令 ▪ 专用指令:绝对值、归一化、有限冲激响应滤波FIR、最小均方LMS等
✓ M40=0时: 溢出位在第31位检测
第六章_DSP的汇编语法寻址及指令系统2

助记符方式汇编程序语法
[label][:] mnemonic [operand list] [;comment]
[标号][:] 助记符
[操作数]
[;注释]
汇编程序语法
1.所有的语句必须由语句标号、空格、*号或 ; 号开头。 2.语句标号不是必须的,如果用,就必须在第一 列。 3.语句中的各部分之间,由一个或多个空格分开。 4.注释不是必须的。注释可以从第一列的 * 号 或 ;号开头;如果不是从第一列开始,就必须 用 ;号开头。
MPY
乘法器
第六章 汇编语法,寻址及指令系统
• 1.汇编语法 • 2.寻址方式 • 3.指令系统
汇编程序语法
TMS320的汇编程序包含:
1. 汇 编 语 言 指 令 ( assembly language instructions)、 2. 汇编指令(伪指令,assembler directives)、 3. 宏指令(macro directives) 4. 注释(comments)。
片内DARAM配置位。该位用于确定x24x芯片内的可配置DARAM存储块的配置。当
XF
PM
1
符 号
名 称 累加器 辅助寄存器算术单元
说 明 一个32位寄存器.用来保存CALU计算结果,并为下一次CALU操作提供输入, 它具有移位和循环操作功能 一个无符号、16位算术单元间接寻址时,用辅助寄存器算数单元来计算辅 助寄存器地址 这些16位寄存器可用作指针,指向数据存储空间范围内的任何地址。它们 面向ARAU单元操作,由辅助寄存器指针(ARP)选定。AR0可用来作为更新 ARx(x为1~7)参考值,也可作为ARx的比较值 寄存器进位位由CALU输出,C被反馈到CALU单元,用于扩展运算操作。C位 位于状态寄存器(ST1),其状态可通过条件指令测试。C位也可用于累加器 移位和循环 TMS320C2xx核的32位主要算术逻辑单元。CALU在一个单机器周期内执行32 位操作。它对来自ISCALE或PSCALE的数据和来自ACC的数据进行运算,并将 运算后的状态结果存于PCTRL单元 如果片内RAM配置控制位(CNF)被设置为0,那么可配置的双口RAM(DARAM)块 BO被映射到数据存储空间;否则,BO被映射列程序存储空间。块B1和B2分 别映射到地址分别为0300h~03FFh和0060h—007Fh的数据存储器空间。块0 和1的容量为256宇,而块2的容量为32字 9位DP寄存器与一个指令字的低7位(LSBs)一起形成一个16位的直接寻址地 址。DP值可由LST和LDP指令改变 GREG指定全局数据存储器的空间大小。由于F240x器件没有使用全局。存储 器空间,这个寄存器被保留下来 MR寄存器的各位分别屏蔽或使能对应的7个中断 IFR的7位分别指示TMS320C2xx已进入7个可屏蔽的中断中的任意一个中断 一个16~32位的桶式左向移位器。ISCALE能将输入的16位数据的0~16位在 本周期内,向左移位以得到32位输出,因此输入定标移位操作不需要额外 的周期 经过16X16位乘法运算得到一个32位的乘积。MPY可在一个单周期内完成乘
DSP汇编指令索引

指令
指令
隐含并行
105
算 术 运 算 指 令
绝对值 FIR滤波 最小均方 补码 归一化 饱和和舍入 平方距离 位域比较 位域抽取 位域扩展
107 108 109 109 109 110 110 111 111 111
位 操 作 指 令
存储器位操作
112
寄存器位操作
113
状态位设置 扩展辅助 寄存器操 作指令 按位与/或 /异或/取反 位计数 逻辑移位 循环移位
114
115 116 117 118
逻辑运 算指令
TMS320C55x的指令系统 Page 累加器、辅助寄 MOV 存器或临时寄存 SWAP 119 器装载、存储、 SWAPP 移 移动、和交换 SWAP4 动 存储单元间的移 DELAY 122 指 动及初始化 MOV 令 POP 入栈和出栈 122 PSH CPU寄存器装载、 124 MOV 存储和移动 B 跳转 127 BCC CALL CALLCC 调用与返回 128 RET RETCC INTR 程 中断与返回 128 TRAP 序 RETI 控 PRT 制 PRTADD 指 PRTSUB 重复 128 令 PRTCC PRTB PRTBLOCAL XCC 条件执行 XCCPART 129 IDLE 空闲 空操作 NOP 软件复位 RESET
指令
TMS320C55x的指令系统
Page MPYM::MOV MACM::MOV MASM::MOV ADD::MOV SUB::MOV MOV::MOV ABS FIRSADD FIRSSUB LMS NEG MANT ::NEXP EXP SAT ROUND SQDST BAND BFXTR BFXPA BTST BNOT BCLR BSET BTSTSET BTSTCLR BTSTNOT BTST BNOT BCLR BSET BTSTP BCLR BSET MOV AMAR AMOV POPBOTH PSHBOTH NOT AND/OR/XOR BCNT SFTL ROL
DSP汇编指令缩写

DSP汇编指令缩写ABS Absolute value of AccumulatorADD add to accumulatorADDC add to accumulator with carryADDT add to accumulator with shift specified by TREGAND and with accumulatorCMPL complement accumulatorLACC load accumulator with shiftLACL load low accumulator and clear high accumulatorLACT load accumulator with shift specified by TREGNEG negate accumulatorNORM normalize contents of accumulatorOR or with accumulatorROL/ROR rotate accumulator left/rightSACH/SACL store high/low accumulator with shiftSFL/SFR shift accumulator left/rightSUB subtract from accumulatorSBUC conditional subtractSUBS subtract from accumulator with sign extension suppressed SUBT subtract from accumulator with shift specified by TREGXOR exclusive or with accumulatorZALR zero low accumulator and load high accumulator with rounding ADRK add short limmediate value to ARBANZ branch on AR not zeroCMPR compare AR with AR0LAR load ARMAR modify ARSTR store ARSBRK subtract short limmediateAPAC add PREG to accumulatorLPH load PREGLT load TREGLTA load TREG and ACC previous productLTD load TREG ACC previous product and move dateLTS load TREG and subtract previous productMAC multiply and accumulateMACD multiply and accumulate wit data moveMPY multiplyMPY A multiply and accumulate previous productMPYS multiply and subtract previous productMPYS multiply unsignPAC load accumulator with PREGSPAC subtract PREG from accumulatorSPH/SPL store high/low PREGSPM set PREG output shift modeSQRA/SQRS square value and accumulate/subtract previous product B branch unconditionallyBACC branch to location specified by ACCBANZ branch on AR not zeroBCND branch conditionallyCALA call subroutione at location specified by ACCCALL call unconditionallyCC call conditionallyINTR software interruptNMI nonmaskable interruptRET return from subroutineRETC return conditionallyTRAP software interruptBIT bit numberBITT test bit specified by TREGCLRC clear control bitIDEL idle until interruptLDP load data page pointerLST load status registerNOP no operationPOP pop top of stack to low ACCPOPD pop top of stack to data memoryPSHD push data-memory value onto stackPUSH push low ACC onto stackRPT repeat next instructionSETC set control bitSPM set PREG output shift modeSST store status registerBLDD block move from data memory to data memory BLPD block move from data memory to data memory DMOV data move in data memoryIN input data from portOUT output data to portSPLK store long immediate value to data memory TBLR table readTBLW table write。
DSP中的EALLOW和EDIS

DSP中的EALLOW和EDIS
F2812中有⼀些配置寄存器是受保护的,⽆法直接操作。
在对这些寄存器进⾏修改之前,需要先去掉保护功能。
⽽保护状态是由状态寄存器中EALLOW标志来指⽰的。
汇编指令“EALLOW”就是将该标志位置位,允许对受保护的寄存器操作。
EALLOW(Edit allow)⼀般和EDIS(Edit disable)配套使⽤,在对受保护的寄存器操作之后,⽤EDIS恢复寄存器的被保护状态。
F280x器件上的⼏个控制寄存器受EALLOW 保护机制保护以防⽌虚假的CPU 写⼊。
在复位时EALLOW位被清除以启⽤EALLOW 保护。
在受保护时,CPU 对受保护寄存器进⾏的所有写⼊被忽略且只允许CPU读取、JTAG读取和JTAG写⼊。
如果设置了此位,则通过执⾏EALLOW指令可以允许CPU⾃由写⼊受保护的寄存器。
在修改寄存器之后,可以通过执⾏EDIS指令清除EALLOW位使它们再次受保护。
以下列寄存器受EALLOW保护:
· 器件仿真寄存器
· 闪存寄存器
· CSM 寄存器
· PIE ⽮量表
· 系统控制寄存器
· GPIO MUX 寄存器
· 某些eCAN 寄存器
eg:
// Enable EALLOW
EALLOW;
// Setting PWM1-6 as primary output pins
GpioMuxRegs.GPAMUX.all |= 0x003F;
// Disable EALLOW
EDIS;。
DSP缩略词整理
DSP缩略词整理DSP digital signal processing 数字信号处理的理论和方法SUB subtract from accumulator 带累加器减法SBUC conditional subtract from accumulator 有条件带累加器减法SUBS subtract from accumulator with sign extension suppressed 抑制符号带累加器减法STR store AR 存储到ARMAR modify AR 修改ARLAR load AR 加载ARCMPR compare AR with AR0 比较AR和AR0XOR exclusive or with accumulator 特殊与或累加器ZALR zero low accumulator and load high accumulator with rounding 低位取零高位取整BANZ branch on AR not zero 不分配AR 0SBRK subtract short limmediate 减去短的立即数APAC add PREG to accumulator 把PREG加到累加器LPH load PREG 加载PREGLT load TREG 加载TREGLTA load TREG and ACC previous product 加载TREG和ACC之前的输出LTD load TREG ACC previous product and move date 加载TREG ACC之前的输出和移动日期LTS load TREG and subtract previous product 加载TREG和减去以前的输出MAC multiply and accumulate 乘法和积累MACD multiply and accumulate wit data move 带数据移动的乘加运算MPY A multiply and accumulate previous product 乘加之前的输出 MPYS multiply and subtract previous product 乘减之前的输出TI Texas Instrumens 美国德州仪器公司ASIC Application Specific Intergrated Circuit 专用集成电路BS Barrel Shifter 桶形移位寄存器AU Addressing Unit 寻址单元PAGEN Program Address Generation Logic 逻辑发生程序地址DAGEN Data Address Generation Logic 数据地址产生单元PLL Phase Locked Loops 锁相环电路IFR Interrupt Flag Register 中断标志寄存器IMR Interrrupt Mask Register 中断屏蔽寄存器TIM Timer Register 定时器寄存器PRD Timer Period Register 定时器周期寄存器TCR Timer Control Register 定时器控制寄存器TDDR Timer Divide Down Ration 定时器分频系数TSS Timer Stop Status 定时器停止状态位TRB Timer Reload 定时器重新加载位PSC Timer Prescaler Counter 定时器预定标计数器HPI Host Port Interface 主机接口SPI Serial Port Interface 标准同步串行BSP Buffered Serial Port 缓冲串行口TDM Time Division Multiplexed 时分多路复用串行接口IDE Intergrated Development Environment 集成开发环境ABS Absolute value of Accumulator 累加器绝对值ADD add to accumulator 累加器值相加ADDC add toaccumulator with carry 带进位加法运算LACC load accumulator with shift 加载移位累加器LACL load low accumulator and clear high accumulator 加载到累加器低位字和清除累加器高位字LACT load accumulator with shift specified by TREG 通过TREG 特殊移位加载到累加器NEG negate accumulator 否定累加器NORM normalize contents of accumulator 正规化累加器ROL/ROR rotate accumulator left/right 左/右旋转累加器SACH/SACL store high/low accumulator with shift 高/低位存储移位累加器SFL/SFR shift accumulator left/right 左/右移位累加器SPAC subtract PREG from accumulator 从累加器减去PREG MELP Mixed Excitation LPC Vocoder 混合激励线性预测编码器FBTC Flashburn Target Component 下载用具CCS Code Composer Studio TI 公司的DSP软件编译环境GEL General Eextension Language 类似于C语言的解释性语言RF3 Reference Frmework level 3 应用程序使用多通道和多算法API Application Program Interface 应用程序编程接口EMIF External Memory Interface 外部存储器界面RAM random access memory 随机存储器SDRAM Synchronous Dynamic Random Access Memory 同步动态随机存储器ALU Arithmetic-Logic Unit 算术逻辑单元ARP Address Resolution Protocol 辅助寄存器指针ROM Read-Only Memory 只读存储器PCB Printed circuit board 电路板HPI Hardware Platform Interface 主机接口。
dsp汇编指令
dsp中的汇编伪指令伪指令分类伪指令及其表示格式具体描述段定义伪指令 .asect “段名” , 地址汇编到一以绝对地址为起始的段中.bss 符号,字数[,块标号] 在未初始化数据段bss中保留空间.data 汇编到已初始化数据段data中.sect “段名”汇编到一已命名(已初始化)的段中.text 汇编到可执行代码段text中符号 .usect “段名”,字数[,块标号] 在一已命名(未初始化)的段中保留空间常数初始化伪指令(包括数据和地址常数) .bes 位数在当前段中保留位数(标号指向所保留空间的尾部).bfloat 数值初始化一个32位,IEEE单精度的浮点常数;禁止有跨页的初始化对象。
.blong 数值1[,…,数值n] 初始化一个或多个32位整数;禁止有跨页的初始化对象。
.byte 数值1[,…,数值n] 初始化当前段中一个或多个连续字节.field 数值1[,…,数值n] 初始化一个可变长度的字段.float 数值初始化一个32位,IEEE单精度的浮点常数.int 数值1[,…,数值n] 初始化一个或多个16位整数.long 数值1[,…,数值n] 初始化一个或多个32位整数.space 位数在当前段中保留位数(标号指向所保留空间的头部).string “字符串1”[,…,“字符串n”] 初始化一个或多个文本字符串.word 数值1[,…,数值n] 初始化一个或多个16位整数对准段程序计数器的伪指令 .align 在一页的边缘对准SPC(段程序计数器).even 在一偶数的边缘对准SPC定义输出列表格式的伪指令 .drlist 使所有伪指令行都被列出(缺省方式).drnolist 禁止某些伪指令行的列出.fclist 允许列出错误的条件代码块(缺省方式).fcnolist 禁止列出错误的条件代码块.length 页的长度定义源文件列表的页长.list 从头开始源文件的列表.mlist 允许宏列表和循环块(缺省方式).mnolist 禁止宏列表和循环块定义输出列表格式的伪指令 .nolist 停止源文件列表.option{B/D/F/L/M/T/X} 选择输出列表文件的参数.page 在源文件列表中生成一页.sslist 允许扩展子程序符号列表.ssnolist 禁止扩展子程序符号列表(缺省方式).tab 大小设置表的大小.title “字符串”在列表页头显示一个标题.width 页宽设置源文件列表的页宽外部文件定位的指伪令 .copy [“]文件名[”] 包含其他文件中的源语句.def 符号1[,…,符号n] 标明一个或多个在当前模块中定义而在其他模块中要用到的符号.global 符号1[,…,符号n] 标明一个或多个全局(外部)符号.include [“]文件名[”] 包含其他文件中的源语句.mlib [“]文件名[”] 定义宏定义库.ref符号1[,…,符号n] 标明一个或多个在另一模块中定义而在当前模块中要用到的符号条件汇编伪指令.break [确切定义的表达式] 如果条件满足,就结束.loop汇编。
DSP常用汇编语言指令简介
5. 控制指令举例
Example1:BIT0h,15 ;(DP = 6)把内存地址=300h 单元内容的最低位(BIT0)送给TC。 Example2:LDP #0h;使用立即数方式装载 数据页,也可以采用直接寻址和间接寻址方式装 载。 Example3:PUSH ;把累加器的低16位压入堆 栈。 Example4:SETC C;置进位C=1,也可以设置 以下的控制位为1或者为0,例如:CNF、INTM、 OVM、SXM、TC和XF。类似的指令还有: CLRC。
2. 工作寄存器等指令举例
Example4:ADRK #80h ;把当前工作寄存器内容 加一个立即数80h(注意立即数范围:00~FFh)。类 似的指令还有SBRK。 Example5:BANZ指令使用举例。例: MAR *, AR0 ;当前ARP=AR0 LAR AR1, #03h ;AR1内容赋值为03h LAR AR0, #60h ;AR0内容赋值为60h ZAC ; 累加器ACC清零 loop: ADD *+, AR1 ;把当前工作寄存器AR0指向 的内存单元数值加到ACC,然后AR0内容加1,当前工 作寄存器指针指向AR1 BANZ loop, *-AR0 ;判断AR0是否为0,否则程序 转到loop,同时AR0的内容减1。 南航自动化学院DSP技术应用实验 返回到第10页 室
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
Example 1:ADD 1,1;(假设DP = 6),把 第6个数据页的第一个内存单元内容左移一 位加到累加器 Example 2:LACC *,4; (与SXM有关) Example 3:ROL;把累加器内容循环左移 Example 4:SACL *,0,AR7 ;把当前工作寄 存器指示内容左移0位送入累加器的低8位 Example 5:RPT #15 SUBC * ;累加器减去当前寄存 器指的内容,连续减16次,结果存累加器
第三章DSP汇编指令
if 0≤ index+step < BK: index = index + step
else if index + step ≥ BK: index = index + step - BK
else if index + step< 0 index = index + step + BK
只有8条指令能使用存储器映射寄存器寻址:
LDM MMR, dst MVDM dmad, MMR MVMD MMR, dmad MVMM MMRx, MMRy POPM MMR PSHM MMR STLM src, MMR STM #lk, MMR
7. 堆栈寻址
系统堆栈用来在中断和子程序期间自动存放程序计数器。 它也能用来存放额外的数据项或传递数据值。处理器使用一 个16-bit的存储器映射寄存器—堆栈指针来对堆栈寻址,它 总是指向存放在堆栈中的最后一个元素。
2、调用与中断指令
3、返回指令
4、重复指令和堆栈操作指令
四、装入和存储指令
装入和存储指令包括:
一般的装入和存储指令 条件存储指令 并行装入和存储指令 并行装入和乘法指令 并行存储和加件乘指令 混合装入和存储指令
1、一般的装入指令
2、存贮指令
3 并行装入和存储指令 4、条件存储指令
共有四条使用堆栈寻址方பைடு நூலகம்访问堆栈的指令:
PSHD 把一个数据存储器的值压入堆栈。 PSHM 把 一 个 存 储 器 映 射 寄 存 器 的 值 压 入 堆 栈 。 POPD 把一个数据存储器的值弹出堆栈。 POPM 把一个存储器映射寄存器的值弹出堆栈。
§3-2 特殊寻址方式说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABS Absolute value of Accumulator
ADD add to accumulator
ADDC add to accumulator with carry
ADDT add to accumulator with shift specified by TREG
AND and with accumulator
CMPL complement accumulator
LACC load accumulator with shift
LACL load low accumulator and clear high accumulator
LACT load accumulator with shift specified by TREG
NEG negate accumulator
NORM normalize contents of accumulator
OR or with accumulator
ROL/ROR rotate accumulator left/right
SACH/SACL store high/low accumulator with shift
SFL/SFR shift accumulator left/right
SUB subtract from accumulator
SBUC conditional subtract
SUBS subtract from accumulator with sign extension suppressed SUBT subtract from accumulator with shift specified by TREG
XOR exclusive or with accumulator
ZALR zero low accumulator and load high accumulator with rounding ADRK add short limmediate value to AR
BANZ branch on AR not zero
CMPR compare AR with AR0
LAR load AR
MAR modify AR
STR store AR
SBRK subtract short limmediate
APAC add PREG to accumulator
LPH load PREG
LT load TREG
LTA load TREG and ACC previous product
LTD load TREG ACC previous product and move date
LTS load TREG and subtract previous product
MAC multiply and accumulate
MACD multiply and accumulate wit data move
MPY multiply
MPY A multiply and accumulate previous product
MPYS multiply and subtract previous product
MPYS multiply unsign
PAC load accumulator with PREG
SPAC subtract PREG from accumulator
SPH/SPL store high/low PREG
SPM set PREG output shift mode
SQRA/SQRS square value and accumulate/subtract previous product B branch unconditionally
BACC branch to location specified by ACC
BANZ branch on AR not zero
BCND branch conditionally
CALA call subroutione at location specified by ACC
CALL call unconditionally
CC call conditionally
INTR software interrupt
NMI nonmaskable interrupt
RET return from subroutine
RETC return conditionally
TRAP software interrupt
BIT bit number
BITT test bit specified by TREG
CLRC clear control bit
IDEL idle until interrupt
LDP load data page pointer
LST load status register
NOP no operation
POP pop top of stack to low ACC
POPD pop top of stack to data memory
PSHD push data-memory value onto stack
PUSH push low ACC onto stack
RPT repeat next instruction
SETC set control bit
SPM set PREG output shift mode
SST store status register
BLDD block move from data memory to data memory
BLPD block move from data memory to data memory
DMOV data move in data memory
IN input data from port
OUT output data to port
SPLK store long immediate value to data memory
TBLR table read
TBLW table write。