MSP430指令初探

MSP430有27条核心指令,24条伪指令(指令个数和具体型号有关系,当前指MSP430F5501)。
具体指令个数以及指令文档要看MSP430 User's Guide,
当前MSP430F5501的User's Guide文档slau208q.pdf,可以在ti.com.cn上搜索,或者到bing.com直接搜索文件名
slau208q.pdf -->  MSP430x5xx and MSP430x6xx Family   User's Guide
MSP430F5,F6系列和其它430不一样,他的CPU核心叫CPUX

在这个User's Guide文档中,详细介绍指令
分为3种类型,双操作数,单操作数,跳转指令

1.双操作数指令

格式

操作码:bit15-12源寄存器:bit11-8Ad:bit7B/W:bit6As:bit5-4目的寄存器:bit3-0
Opcodes-regAdB/WAsd-reg

 对应指令

指令名称操作码4位简单说明
MOV4'b0100
ADD4'b0101
ADDC4'b0110dst += src + C
SUBC4'b0111dst -= src + C
SUB4'b1000dst -= src
CMP4'b1001dst-src
DADD4'b1010dst += src
BIT4'b1011dst & src
BIC4'b1100dst &= ~src
BIS4'b1101dst |= src
XOR4'b1110dst ^= src
AND4'b1111dst &= src

src :为指令中 s-reg

dst:为指令中的d-reg

B/W:字节操作或者字操作 。 1:bytes 0:word

As/Ad:表示寻址模式

寻址模式有7中
        As/Ad     寻址模式        语法      说明
        00/0       寄存器模式       Rn          寄存器内容就是操作数
        01/1      变址寻址        X(Rn)       Rn+X指向操作数地址,X存储在下一个字中
        01/1      标号寻址        ADDR        变址寻址特例,PC(R0)+X,X存储在下一个字中
        01/1     绝对寻址        &ADDR       变址寻址特例,SR(R2)+X,X存储在下一个字中,绝对地址存储在中
        10/-     寄存器间接寻址     @Rn     Rn存储操作数地址
        11/-     寄存器间接增量寻址   @Rn+    Rn存储操作数地址,寻址完后,.B地址自加1,.W地址自加2
        11/-     立即数模式       #N          寄存器间接增量寻址特例,立即数存储在指令的下一条,@PC(R0)+

2.单操作数指令

操作数:bit15-7B/W:bit6Ad:bit5-4D/S-reg:bit3-0
opcode

对应指令

指令名称操作码
RRC9'b000100_000
SWPB9'b000100_001
RRA9'b000100_010
SXT9'b000100_011
PUSH9'b000100_100
CALL9'b000100_101
RETI9'b000100_110

3.跳转指令

 

操作码:bit15-13条件:bit12-10PC偏移:bit9-0
opcode

对应指令:

指令名称opcode条件
JNE/JNZ3'b0013'b000不相等/不等于零跳转
JEQ/JZ3'b0013'b001相等/等于零跳转
JNC/JLO3'b0013'b010
JC/JHS3'b0013'b011
JN3'b0013'b100
JGE3'b0013'b101大于等于跳转
JL3'b0013'b110小于跳转
JMP3'b0013'b111无条件跳转

 

4.伪指令

伪指令核心指令
ADC.x dstADDC.x #0, dstdst += C
BR dstMOV dst,PCF5新加
CLR dstMOV #0,dstF5新加
CLRCBIC #1,SR清除进位标志
CLRNBIC #4,SR清除负标志
CLRZBIC #2,SR清除零标志
DADC.x dstDADD.x #0,dst
DEC.x dstSUB.x #1, dst
DECD.x dstSUB.x #2, dst
DINTBIC #8, SR禁止中断
EINTBIS #8, SR使能中断
INC.x dstADD.x #1,dst
INCD.x dstADD.x #2,dst
INV.x dstXOR.x #-1,dst
NOPMOV #0,R3空操作
POP dstMOV @SP+, dst
RETMOV @SP+,PC
RLA.x dstADD.x dst,dst算术左移
RLC.x dstADDC.x dst,dst
SBC.x dstSUBC.x #0,dst
SETCBIS #1, SR设置进位
SETNBIS #4,SR设置负标志
SETZBIS #2,SR设置0标志
TST.x dstCMP.x #0,dst

下一章节分析指令

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjinl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值