MSP430PDF中文版PDF资料.docx
- 文档编号:5799788
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:23
- 大小:22.86KB
MSP430PDF中文版PDF资料.docx
《MSP430PDF中文版PDF资料.docx》由会员分享,可在线阅读,更多相关《MSP430PDF中文版PDF资料.docx(23页珍藏版)》请在冰豆网上搜索。
MSP430PDF中文版PDF资料
指令集描述P(220—257)
*DECX.A目的操作数减1
*DECX.[W]目的操作数减1
*DECX.B目的操作数减1
语法DECV.Adst
DECXdst或DECX.Wdst
DECX.Bdst
操作dst–1→dst
仿真SUBX.A#1,dst
SUBX#1,dst
SUBX.B#1,dst
说明目的操作数减1以前的内容丢失
状态位N:
结果为负时置位为正时复位
Z:
dst包含1时置位其他情况时复位
C:
dst包含0时置位其他情况时复位
V:
产生算术溢出时置位其他情况时复位
目的操作数的初始值为08000H时置位其他情况时复位
方式位OscOff(晶振控制位),CPUOff(CPU控制位)和GIE(中断标志位)不受影响
例子目的地址操作数减一
DECX.ATONI;TONI减一
*DECDX.A目的操作数减2
*DECDX.[W]目的操作数减2
*DECDX.B目的操作数减2
语法DECDX.Adst
DECDXdstorDECDX.Wds
DECDX.Bdst
操作dst-2->dst
仿真SUBX.A#2,dst
SUBX#2,dst
SUBX.B#2,dst
说明目的操作数减2以前的内容丢失
状态位N:
结果为负时置位为正时复位
Z:
dst包含2时置位其他情况时复位
C:
dst包含0或1时置位其他情况时复位
V:
dst产生算术溢出时置位其他情况时复位
目的操作数的初始值为08001H或08000H时置
方式位OscOff,CPUOff和GIE不受影响
例子目的地址操作数减二
DECDX.ATONI;DecrementTONI
*INCX.A目的操作数加1
*INCX.[W]目的操作数加1
*INCX.B目的操作数加1
语法INCX.Adst
INCXdstorINCX.Wdst
INCX.Bdst
操作dst+1→dst
仿真ADDX.A#1,dst
ADDX#1,dst
ADDX.B#1,dst
说明目的操作数加1以前的内容丢失
状态位N:
结果为负时置位为正时复位
Z:
dst包含0FFFFFH时置位其他情况时复位
dst包含0FFFFH时置位其他情况时复位
dst包含0FFFH时置位其他情况时复位
C:
dst包含0FFFFFH时置位其他情况时复位
dst包含0FFFFH时置位其他情况时复位
dst包含0FFFH时置位其他情况时复位
V:
dst包含07FFFH时置位其他情况时复位
dst包含07FFFH时置位其他情况时复位
dst包含07FH时置位其他情况时复位
方式位OscOff,CPUOff和GIE不受影响
例子目的地址操作数加一
INCX.ATONI;IncrementTONI(20-bits)
*INCDX.A目的操作数加2
*INCDX.[W]目的操作数加2
*INCDX.B目的操作数加2
语法INCDX.Adst
INCDXdstorINCDX.Wdst
INCDX.Bdst
操作dst+1→dst
仿真ADDX.A#2,dst
ADDX#2,dst
ADDX.B#2,dst
说明目的操作数加2以前的内容丢失
状态位N:
结果为负时置位为正时复位
Z:
dst包含0FFFFEH时置位其他情况时复位
dst包含0FFFEH时置位其他情况时复位
dst包含0FEH时置位其他情况时复位
C:
dst包含0FFFFEH或0FFFFFH时置位其他情况时复位
dst包含0FFFEH或0FFFFH时置位其他情况时复位
dst包含0FEH或0FFH时置位其他情况时复位
V:
dst包含07FFFEH或0FFFFH时置位其他情况时复位
dst包含07FFEH或0FFFH时置位其他情况时复位
dst包含07EH或0FH时置位其他情况时复位
方式位OscOff,CPUOff和GIE不受影响
例子目的地址操作数加二
INCDX.BLEO;IncrementLEObytwo
*INVX.A目的操作数求反
*INVX.[W]目的操作数求反
*INVX.B目的操作数求反
语法INVX.Adst
INVXdstorINVX.Wdst
INVX.Bdst
操作.NOT.dst→dst
仿真XORX.A#0FFFFFh,dst
XORX#0FFFFh,dst
XORX.B#0FFh,dst
说明目的操作数取反以前的内容丢失
状态位N:
结果为负时置位为正时复位
Z:
dst包含0FFFFFH时置位其他情况时复位
dst包含0FFFFH时置位其他情况时复位
dst包含0FFH时置位其他情况时复位
C:
结果不为零时置位其他情况时复位(=.NOT.Zero)
V初始目的操作数为负时置位其他情况时复位
方式位OscOffCPUOff和GIE不受影响
例子R5求反
INVX.AR5;R5求反
MOVX.A源操作数移至目的操作数
MOVX.[W]源操作数移至目的操作数
MOVX.B源操作数移至目的操作数
语法MOVX.Asrc,dst
MOVXsrc,dstorMOVX.Wsrc,dst
MOVX.Bsrc,dst
操作src→dst
说明源操作数被移至目的操作数源操作数不受影响目的操作数以前的内容丢失
状态位N:
不影响状态位
Z:
不影响状态位
C:
不影响状态位
V:
不影响状态位
方式位OscOff,CPUOff和GIE不受影响
例子移动18000H到EDE
MOVX.A#018000h,&EDE;Move18000htoEDE
例子地起码表EDE(字数据)的内容被复制到表TOM地址表的长度为030H
MOV#EDE,R10;准备指针
LoopMOV@R10+,TOM-EDE-2(R10);将R10中的指针用于两表
DECR9;计数器减1
JNZLoop;计数器<>0继续
........;完成
例子地起码表EDE(字数据)的内容被复制到表TOM地址表的长度为020H
MOV#EDE,R10;准备指针
MOV#020H,R9;计数器
LoopMOV@R10+,TOM-EDE-2(R10);将R10中的指针用于两表
DECR9;计数器减1
JNZLoop;计数器<>0继续
........;完成
28种MOVX寻址方式中的10种,一个指令可以使用MOVX,这样可以节省二个字节编码周期。
列举了以下组合:
MOVX.ARsrc,RdstMOVARsrc,Rdst;寄存器/寄存器
MOVX.A#imm20,RdstMOVA#imm20,Rdst;直接/寄存器
MOVX.A&abs20,RdstMOVA&abs20,Rdst;绝对/寄存器
MOVX.A@Rsrc,RdstMOVA@Rsrc,Rdst;间接/寄存器
MOVX.A@Rsrc+,RdstMOVA@Rsrc+,Rdst;间接,自动/寄存器
MOVX.ARsrc,&abs20MOVARsrc,&abs20;寄存器/绝对
以下4种仅有16位的地址指针是足够的
MOVX.Az20(Rsrc),RdstMOVAz16(Rsrc),Rdst;指标寻址/寄存器
MOVX.ARsrc,z20(Rdst)MOVARsrc,z16(Rdst);寄存器/指标寻址
MOVX.Asymb20,RdstMOVAsymb16,Rdst;符号寻址/寄存器
MOVX.ARsrc,symb20MOVARsrc,symb16;寄存器/符号寻址
POP[.W]字从堆栈弹出到目的操作数(16bit)
语法POPdst
操作@SP->dst,SP+2->SP
仿真MOV@SP+,dst或MOV.W@SP+,dst
说明堆栈指针(TOS)指向的栈区字移至目的操作数随后堆栈指针加2
状态位不影响状态位
例子从堆栈恢复R7和状态寄存器的内容
POPR7;恢复R7
POPSR;恢复状态寄存器
注意:
系统堆栈指针SP通常加2并与字节后缀无关这是强制性的因为系统堆栈指针不仅用于POP指令还可用于RETI指令
POP.B字节从堆栈弹出到目的操作数(8bit)
语法POP.Bdst
操作@SP->dst,SP+2->SP
仿真MOV.B@SP+,dst
说明堆栈指针(TOS)指向的栈区字移至目的操作数随后堆栈指针加2
状态位不影响状态位
例子
(1)从堆栈恢复RAM字节LEO的内容
POP.BLEO;堆栈的低位字节移至LEO
(2)从堆栈恢复R7内容
POP.BR7;堆栈的低位字节移至R7R7的高位字节为00H
(3)从堆栈恢复状态寄存器和R7指向的存储器的内容
POP.B0(R7);堆栈的低位字节移至R7指向的字节
;Ex1:
R7=203HMem(R7)=系统堆栈的低字节
;Ex2:
R7=20AHMem(R7)=系统堆栈的低字节
POPSR
注意:
系统堆栈指针SP通常加2并与字节后缀无关这是强制性的因为系统堆栈指针不仅用于POP指令还可用于RETI指令
PUSH[.W]将字压进堆栈
语法PUSHsrc或PUSH.Wsrc
操作SP-2->SP,src->@SP
说明堆栈指针减2然后源操作数移至由此指针(TOS)寻址的RAM字
状态位N不影响
Z不影响
C不影响
V不影响
方式位OscOffCPUOff和GIE不受影响
例子状态寄存器和R8的内容保存在堆栈
PUSHSR;保存状态寄存器
PUSHR8;保存R8
注意:
系统堆栈指针SP通常减2并与字节后缀无关这是强制性的因为系统堆栈指针不仅用于PUSH指令还可用于中断服务程序
PUSH.B将字节压进堆栈
语法PUSH.Bsrc
操作SP-2->SP,src->@SP
说明堆栈指针减2然后源操作数移至由此指针(TOS)寻址的RAM字
状态位N不影响
Z不影响
C不影响
V不影响
方式位OscOffCPUOff和GIE不受影响
例子外设TCDAT的内容保存在堆栈
PUSH.B&TCDAT;保存8位外设模块的数据
;寻址TCDAT进栈
注意系统堆栈指针SP通常减2并与字节后缀无关这是强制性的因为系统堆栈指针不仅用于PUSH
指令还可用于中断服务程序
RLA[.W]算术左移(字)
语法RLAdst或RLA.Wdst
操作C<-MSB<-MSB-1...LSB+1<-LSB<-0
仿真ADDdst,dst
说明目的操作数左移一位MSB成为进位位CLSB填0RLA指令可当作符号乘2在执行该操作前如果dst大于等于04000H且小于0C000H则产生溢出结果会改变符号
状态位N结果为负时置位为正时复位
Z结果为零时置位其它情况时复位
C从MSB获取
V如果产生算术溢出即初始值为04000H<=dst<0C000H时置位其它情况时复位
方式位OscOff,,CPUOff和GIE不受影响
例子R7乘以4
RLAR7;R7左移(x2)----由ADDR7,R7仿真
RLAR7;R7左移(x4)----由ADDR7,R7仿真
注意替换RLA
汇编语言不识别指令RLA@R5+必须将它替换成ADD@R5+,-2(R5)
RLA.B算术左移(字节)
语法RLA.Bdst
操作C<-MSB<-MSB-1...LSB+1<-LSB<-0
仿真ADD.Bdst,dst
说明目的操作数左移一位MSB成为进位位CLSB填0RLA指令可当作符号乘2在执行该操作前如果dst大于等于040H且小于0C0H则产生溢出结果会改变符号
状态位N结果为负时置位为正时复位
Z结果为零时置位其它情况时复位
C从MSB获取
V如果产生算术溢出即初始值为040H<=dst<0C0H时置位其它情况时复位
方式位OscOff,CPUOff和GIE不受影响
例子R7的低位字节乘以4
RLA.BR7;R7左移(x2)----由ADD.BR7,R7仿真
RLA.BR7;R7左移(x4)----由ADD.BR7,R7仿真
注意替换RLA
汇编语言不识别指令RLA.B@R5+必须将它替换成ADD.B@R5+,-1(R5)
RLC[.W]通过进位位左移(字)
语法RLCdst或RLC.Wdst
操作C<-MSB<-MSB-1...LSB+1<-LSB<-0
仿真ADDCdst,dst
说明目的操作数左移一位进位位C移入LSBMSB移入进位位C
状态位N结果为负时置位为正时复位
Z结果为零时置位其它情况时复位
C从MSB获取
V如果产生算术溢出时置位其它情况时复位
03FFFFH 方式位OscOffCPUOff和GIE不受影响 例子 (1)R5左移一位 RLCR5;(R5x2)+CR5 (2)输入P0IN.1的信息将被移入R5的LSB BIT.B#2,&P0IN;信息-‡进位 RLCR5;进位=P0IN.1R5的LSB 注意: 替换RLC汇编语言不识别指令RLC@R5+必须将它替换成ADDC@R5+,-2(R5) RLC.B算术左移(字节) 语法RLC.Bdst 操作C<-MSB<-MSB-1...LSB+1<-LSB<-0 仿真ADDC.Bdst,dst 说明目的操作数左移一位进位位C移入LSBMSB移入进位位C 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 C从MSBB获取 V如果产生算术溢出时置位其它情况时复位 03FFH 方式位OscOffCPUOff和GIE不受影响 例子 (1)MEM(LEO)的内容左移一位 RLC.BLEO;Mem(LEO)x2+CMem(LEO) (2)输入P0IN.1的信息将被移入R5的LSB BIT.B#2,&P0IN;信息-‡进位 RLC.BR5;进位=P0IN.1R5的LSBR5的高字节复位 注意: 替换RLC汇编语言不识别指令RLC.B@R5+必须将它替换成ADD.B@R5+,-1(R5) RRA[.W]算术右移(寄存器内容20bit) 语法RRAdst或RRA.Wdst 操作MSB->MSB,MSB->MSB-1,MSB-1->MSB–2...LSB+1->LSB,LSB->C 说明目的操作数右移一位MSB移入MSBMSB移入MSB–1LSB+1移入LSB 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 C从LSB获取 V复位 方式位OscOffCPUOff和GIE不受影响 例子R5右移一位MSB保留原来的值它相当于算术除2 RRAR5;R5/2‡R5 R5的值乘以0.75(0.5x0.25) PUSHR5;用堆栈暂时保存R5 RRAR5;R5x0.5‡R5 ADD@SP+,R5;R5x0.5+R5=1.5xR5‡R5 RRAR5;(1.5xR5)x0.5=0.75xR5‡R5 ...... 或者 RRAR5;R5x0.5‡R5 PUSHR5;用堆栈暂时保存R5 RRA@SP;TOSx0.5=0.5xR5x0.5=0.25xR5‡TOS ADD@SP+,R5;R5x0.5+R5x0.25=0.75xR5‡R5 ...... RRA.B算术右移(8bit) 语法RRA.Bdst 操作MSB->MSB,MSB->MSB-1,MSB-1->MSB–2...LSB+1->LSB,LSB->C 说明目的操作数右移一位MSB移入MSBMSB移入MSB–1LSB+1移 LSB 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 C从LSB获取 V复位 方式位OscOffCPUOff和GIE不受影响 例子R5低字节右移一位MSB保留原来的值它相当于算术除2 RRA.BR5;R5/2‡R5操作仅针对低字节R5高字节复位 ;R5的值(仅低位字节)乘以0.75(0.5x0.25) PUSH.BR5;用堆栈暂时保存R5 RRA.BR5;R5x0.5‡R5 ADD.B@SP+,R5;R5x0.5+R5=1.5xR5‡R5 RRA.BR5;(1.5xR5)x0.5=0.75xR5‡R5 ...... ;或者 RRA.BR5;R5x0.5‡R5 PUSH.BR5;用堆栈暂时保存R5 RRA.B@SP;TOSx0.5=0.5xR5x0.5=0.25xR5‡TOS ADD.B@SP+,R5;R5x0.5+R5x0.25=0.75xR5‡R5 RRC[.W]通过进位右移(16bit内容) 语法RRCdst或RRC.Wdst 操作C‡MSB->MSB–1...LSB+1->LSB->C 说明目的操作数右移一位进位位C移入MSBLSB移入进位位C 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 C从LSB获取 V初始目的操作数为正且初始进位位被置时置位其他情况复位 方式位OscOffCPUOff和GIE不受影响 例子R5右移一位MSB装入1 SETC;为MSB准备进位 RRAR5;R5/2+8000H‡R5 RRC.B通过进位右移 语法RRC.Bdst 操作C‡MSB->MSB–1...LSB+1->LSB->C 说明目的操作数右移一位进位位C移入MSBLSB移入进位位C 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 C从LSB获取 V初始目的操作数为正且初始进位位被置时置位其他情况复位 方式位OscOffCPUOff和GIE不受影响 例子R5右移一位MSB装入1 SETC;为MSB准备进位 RRA.BR5;R5/2+80H‡R5使用R5的低字节 SBC[.W]从目的操作数减去借位(8bit) 语法SBCdst或SBC.Wdst 操作dst+0FFFFH+C->dst 仿真SUBC#0,dst 说明进位C加到减1后的目的操作数目的操作数原来的内容丢失 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 Cdst从0000减至0FFFFH时复位其它情况时置位 V初始C=0且减至dst=08000H时置位 方式位OscOffCPUOff和GIE不受影响 例子从R12指向的32位数值中减去R13指向的16位数值 SUB@R13,0(R12);减LSDs SBC2(R12);从MSD中减去进位 注意: 借位可视为非进位借位 可视为一种非进位借位进位位 是0 否1 SBC.B从目的操作数减去借位 语法SBC.Bdst 操作dst+0FFF+C->dst 仿真SUBC.B#0,dst 说明进位C加到减1后的目的操作数从目的操作数中减去借位目的操作数原来的内容丢失 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 Cdst从0000减至0FFFFH时复位其它情况时置位 V初始C=0且减至dst=080H时置位 方式位OscOffCPUOff和GIE不受影响 例子从R12指向的16位数值中减去R13指向的8位数值 SUB.B@R13,0(R12);减LSDs SBC.B1(R12);从MSD中减去进位 注意: 借位可视为非进位 借位可视为一种非进位借位进位位 是0 否1 SUB[.W]从目的操作数减去源操作数 语法SUBsrc,dst或SUB.Wsrc,dst 操作dst+.NOT.src+1->dst或dst-src->dst 说明从目的操作数中减去源操作数方法是将源操作数求反再加上常数1源操作数不受影响目 的操作数以前的内容丢失 状态位N结果为负时置位为正时复位 Z结果为零时置位其它情况时复位 C结果的MSB产生进位时置位否则复位无借位时置1有借位时复位 V发生算术溢出时置位其它情况时复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSP430PDF 中文版 PDF 资料