MSP430汇编指令
时间:11-25
来源:互联网
点击:
堆栈指针(TOS)指向的栈区字移至目的操作数随后堆栈指针加2 ----
PUSH[.W]或PUSH.B src SP–2->SP,src->@SP 堆栈指针减2 然后源操作数移至由此指针(TOS)寻址的RAM 字 ----
RETI TOS->SR SP+2->SP,TOS->PC SP+2->SP (1)状态寄存器恢复到中断服务程序开始时的值用TOS 存储器中的值替换SR 中的当前值可做到这一点堆栈指针SP加2
(2)程序计数器恢复到中断服务程序开始时的值这是中断程序流的后续步骤用TOS 存储器中的值替换PC 的当前值可实现这种恢复堆栈指SP 加1 ----
RET TOS->SR SP+2->SP 由CALL 指令压进栈的返回地址移至程序计数器程序在子程序调用后的代码地址处继续执行 ----
RLA[.W]或RLA.B dst算术左移 目的操作数左移一位MSB成为进位位C LSB 填0 RLA 指令可当作符号乘2 在执行该操作前如果dst 大于等于04000H 且小于0C000H 则产生溢出结果会改变符号 ****
RLC[.W]或RLC.B dst带进位位左移 目的操作数左移一位进位位C 移入LSB MSB移入进位位C ****
RRA[.W]或RRA.B dst算术右移 目的操作数右移一位MSB移入MSB MSB移入MSB – 1 LSB + 1 移入LSB 0***
RRC[.W]或RRC.B dst带进位位右移 目的操作数右移一位进位位C 移入MSB LSB移入进位位C ****
SBC[.W]或SBC.B dst从目的操作数减去借位 进位C 加到减1 后的目的操作数目的操作数原来的内容丢失 ****
SETC 置进位位 进位C 被置这是一个常用的操作 ---1
SETN 置负位-1 负位N 被置 -1--
SETZ 置零位-1 负位Z 被置 --1-
SUB[.W]或SUB.B src,dst dst+.not.src+1->dst 从目的操作数中减去源操作数方法是将源操作数求反再加上常数1 源操作数不受影响目的操作数以前的内容丢失 ****
SUBC[.W]或SUBC.B src,dst dst+.not.src+C->dst 从目的操作数中减去源操作数方法是将源操作数求反再加上进位C 源操作数不受影响目的操作数以前的内容丢失 ****
SWAP dst交换字节 目的操作数的高位字节和低位字节互换 ----
SXT dst dst位7->位8......位150 低位字节的符号扩展到高位字节 0***
TST[.W]或TST.B dst测试目的操作数 比较目的操作数和 0 根据结果设置状态位目的操作数不受影响 0**1
XOR[.W]或XOR.B src,dst src.xor.dst->dst 源操作数和目的操作数异或其结果放放目的操作数源操作数不受影响 ****
注:
1、以上指令共51条
2、状态位中“*”表示影响“-”表示不影响“0”表示清零“1”表示置位
3、含.B的为单字节操作指令,含[.W]的为双字节操作指令(可省略)
4、src 源操作数,dst目的操作数,TOS堆栈顶部,SR状态寄存器,SP堆栈指针
PUSH[.W]或PUSH.B
RETI
(2)程序计数器恢复到中断服务程序开始时的值这是中断程序流的后续步骤用TOS 存储器中的值替换PC 的当前值可实现这种恢复堆栈指SP 加1
RET
RLA[.W]或RLA.B
RLC[.W]或RLC.B
RRA[.W]或RRA.B
RRC[.W]或RRC.B
SBC[.W]或SBC.B
SETC
SETN
SETZ
SUB[.W]或SUB.B
SUBC[.W]或SUBC.B
SWAP
SXT
TST[.W]或TST.B
XOR[.W]或XOR.B
注:
1、以上指令共51条
2、状态位中“*”表示影响“-”表示不影响“0”表示清零“1”表示置位
3、含.B的为单字节操作指令,含[.W]的为双字节操作指令(可省略)
4、src 源操作数,dst目的操作数,TOS堆栈顶部,SR状态寄存器,SP堆栈指针
MSP430汇编指 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)