您的位置 首页 软件

MSP430汇编指令

指令操作数位置及执行过程说明状态位代码源操作数目的操作数指令执行过程详述

操作数方位及履行进程 状 态 位
代 码 源操作数意图操作数 指令履行进程胪陈 VNZC
ADC[.W]或ADC.B dst dst+C->dst 进位C 加至意图操作数意图操作数曾经的内容丢掉 ****
ADD[.W]或ADD.B src,dst src+dst->dst 源操作数加至意图操作数源操作数不受影响意图操作数曾经的内容丢掉 ****
ADDC[.W]或ADDC.B src,dst src+dst+C->dst 源操作数和进位C 加至意图操作数源操作数不受影响意图操作数曾经的内容丢掉 ****
AND[.W]或AND.B src,dst src.and.dst->dst 源操作数和意图操作数逻辑与成果放入意图操作 0***
BIC[.W]或BIC.B src,dst not.src.and.dst->dst 求反后的源操作数和意图操作数逻辑与成果放入意图操作数源操作数不变 —-
BIS[.W]或BIS.B src,dst src.or.dst->dst 源操作数和意图操作数逻辑或 成果放入意图操作数源操作数不变 —-
BIT[.W]或BIT.B src,dst src.and.dst 源操作数和意图操作数逻辑与其成果只影响状况位意图操作数和源操作数不变 0***
BR dst转移到 无条件转移到64K 地址空间的任一地址处可运用一切的源寻址办法转化指令是一个字指令 —-
CALL dstPC+2->仓库,dst->PC 调用64K 地址空间中任一地址处的子程序可运用一切的寻址办法回来地址(后续指令的地址)储存在仓库中调用指令是一个字指令 —-
CLR[.W]或CLR.B dst铲除意图操作数 铲除意图操作数 —-
CLRC 铲除进位位 进位位被清零铲除进位位指令是一个字指令 —0
CLRN 铲除负位 常数#04H 求反后(0FFFBH)和意图操作数逻辑与成果放入意图操作数铲除负位指令是一个字指令 -0–
CLRZ 铲除零位 常数#02H 求反后(0FFFDH)和意图操作数逻辑与成果放入意图操作数铲除负位指令是一个字指令 –0-
CMP[.W]或CMP.B dstdst-src 从意图操作数中减去源操作数办法是将源操作数求反再加 1,源操作数和意图操作数不受影响不保存成果只影响状况位 ****
DADC[.W]或DADC.B dst dst+C->dst(十进制) 进位位C 作为十进制加至意图操作数 ****
DADD[.W]或DADD.B src,dst src+dst+C->dst(十进制) 源操作数和意图操作数被当作4 个带有正符号的二-十进制BCD 数十进制的源操作数和进位C 被加至意图操作数源操作数不受影响意图操作数曾经的内容丢掉些成果关于非二-十进制数是不确认的 ****
DEC[.W]或DEC.B dst dst-1->dst 意图操作数减1 曾经的内容丢掉 ****
DECD[.W]或DECD.B dst dst-2->dst 意图操作数减2 曾经的内容丢掉 ****
DINT 制止中止 制止一切中止 —-
EINT 使能中止 使能一切中止,常数08H 与状况寄存器SR 逻辑或其成果放入SR —-
INC[.W]或INC.B dst dst+1->dst意图操作数增1 意图操作数加1 曾经的内容丢掉 ****
INCD[.W]或INCD.B dst dst+2->dst意图操作数增2 意图操作数加2 曾经的内容丢掉 ****
INV[.W]或INV.B dst意图操作数求反 意图操作数取反曾经的内容丢掉 ****
JC/JHS 标号进位位被置时转移到标号句子 测验状况寄存器的进位位C 假如它被置则指令的LSB 中包括的10 位符号偏移加至程序计数器假如C 被复位则履行JUMP 后边的一条指令JC( 有进位/大于等于时跳转 )用于比较无符号数(0~65536) —-
JEQ/JZ 标号零位被置时转移到标号句子 测验状况寄存器的零位Z 假如它被置则指令的LSB 中包括的10 位符号偏移加至程序计数器假如Z 被复位则履行JUMP 后边的一条指令 —-
JGE 标号N.xor.V=0时转移到标号句子 测验状况寄存器的负位N 和溢出位V 假如N 和V 均被置位或复位则指令的LSB 中包括的10 位符号偏移加至程序计数器假如其中之一被置位则履行JUMP 后边的一条指令该指令答应比较符号整数 —-
JL 标号N.xor.V=0时转移到标号句子 测验状况寄存器的负位N 和溢出位V 假如N 和V 其中之一被置位则指令的LSB 中包括的10 位符号偏移加至程序计数器假如两都均被置位或复位则履行JUMP 后边的一条指令该指令答应比较符号整数 —-
JMP 标号无条件转移到标号句子 指令的LSB中包括的10 位符号偏移加至程序计数器 —-
JN 标号负位被置时转移到标号句子 测验状况寄存器的负位N 假如N 被置位则指令的LSB 中包括的10 位符号偏移加至程序计数器假如N 被复位则履行JUMP 后边的一条指令该指令答应比较符号整数状况位 不影响状况位 —-
JNC/JLO 标号进位位复位时转移到标号句子 测验状况寄存器的进位位C 假如它被复位则指令的LSB 中包括的10 位符号偏移加至程序计数器假如C 被置位则履行JUMP 后边的一条指令JC( 有进位/大于等于时跳转 )用于比较无符号数(0~65536) —-
JNE/JNZ 标号零位复位时转移到标号句子 测验状况寄存器的零位Z 假如它被复位则指令的LSB 中包括的10 位符号偏移加至程序计数器假如Z 被复位则履行JUMP 后边的一条指令 —-
MOV[.W]或MOV.B src,dst src->dst 源操作数被移至意图操作数源操作数不变意图操作数曾经的内容丢掉 —-
NOP 空操作 此指令可用于在查看软件期间仿真指令或用于已确认的等待时间 —-
POP[.W]或POP.B dst项目从仓库弹出,SP+2->SP 仓库指针(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仓库指针

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/259047.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部