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-8 | Ad:bit7 | B/W:bit6 | As:bit5-4 | 目的寄存器:bit3-0 |
---|---|---|---|---|---|
Opcode | s-reg | Ad | B/W | As | d-reg |
对应指令
指令名称 | 操作码4位 | 简单说明 |
---|---|---|
MOV | 4'b0100 | |
ADD | 4'b0101 | |
ADDC | 4'b0110 | dst += src + C |
SUBC | 4'b0111 | dst -= src + C |
SUB | 4'b1000 | dst -= src |
CMP | 4'b1001 | dst-src |
DADD | 4'b1010 | dst += src |
BIT | 4'b1011 | dst & src |
BIC | 4'b1100 | dst &= ~src |
BIS | 4'b1101 | dst |= src |
XOR | 4'b1110 | dst ^= src |
AND | 4'b1111 | dst &= 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-7 | B/W:bit6 | Ad:bit5-4 | D/S-reg:bit3-0 |
---|---|---|---|
opcode |
对应指令
指令名称 | 操作码 | |
---|---|---|
RRC | 9'b000100_000 | |
SWPB | 9'b000100_001 | |
RRA | 9'b000100_010 | |
SXT | 9'b000100_011 | |
PUSH | 9'b000100_100 | |
CALL | 9'b000100_101 | |
RETI | 9'b000100_110 |
3.跳转指令
操作码:bit15-13 | 条件:bit12-10 | PC偏移:bit9-0 |
---|---|---|
opcode |
对应指令:
指令名称 | opcode | 条件 | |
---|---|---|---|
JNE/JNZ | 3'b001 | 3'b000 | 不相等/不等于零跳转 |
JEQ/JZ | 3'b001 | 3'b001 | 相等/等于零跳转 |
JNC/JLO | 3'b001 | 3'b010 | |
JC/JHS | 3'b001 | 3'b011 | |
JN | 3'b001 | 3'b100 | |
JGE | 3'b001 | 3'b101 | 大于等于跳转 |
JL | 3'b001 | 3'b110 | 小于跳转 |
JMP | 3'b001 | 3'b111 | 无条件跳转 |
4.伪指令
伪指令 | 核心指令 | ||
---|---|---|---|
ADC.x dst | ADDC.x #0, dst | dst += C | |
BR dst | MOV dst,PC | F5新加 | |
CLR dst | MOV #0,dst | F5新加 | |
CLRC | BIC #1,SR | 清除进位标志 | |
CLRN | BIC #4,SR | 清除负标志 | |
CLRZ | BIC #2,SR | 清除零标志 | |
DADC.x dst | DADD.x #0,dst | ||
DEC.x dst | SUB.x #1, dst | ||
DECD.x dst | SUB.x #2, dst | ||
DINT | BIC #8, SR | 禁止中断 | |
EINT | BIS #8, SR | 使能中断 | |
INC.x dst | ADD.x #1,dst | ||
INCD.x dst | ADD.x #2,dst | ||
INV.x dst | XOR.x #-1,dst | ||
NOP | MOV #0,R3 | 空操作 | |
POP dst | MOV @SP+, dst | ||
RET | MOV @SP+,PC | ||
RLA.x dst | ADD.x dst,dst | 算术左移 | |
RLC.x dst | ADDC.x dst,dst | ||
SBC.x dst | SUBC.x #0,dst | ||
SETC | BIS #1, SR | 设置进位 | |
SETN | BIS #4,SR | 设置负标志 | |
SETZ | BIS #2,SR | 设置0标志 | |
TST.x dst | CMP.x #0,dst |
下一章节分析指令
MSP430指令初探相关推荐
- 熟悉linux指令游戏,Linux指令初探之闯关游戏Bandit(上)
开学季,Evan会带领小萌新们一点点接触安全领域,今天要给大家讲的是和Linux有关的一款游戏Bandit,通过Bandit你会学到Linux的一些基础指令,这对今后的学习有很大的帮助,准备好了吗让我 ...
- 快速上手JVM系列(整合篇)
JDK版本:jdk-11.0.7,文中所有代码都在JDK11环境下运行成功 虚拟机版本:Java HotSpot(TM) 64-Bit Server VM 18.9 学习过程中主要参考资料 [1] 深 ...
- java学习 connect(1,2,3,4)
学习java断断续续加起来已经有快三十天的时间了,之前的博客按照时间顺序写的,今天对其进行一次整合,像期末复习一样将表面内容略去,详细介绍重点及难点. 框架 刚好之前做学习ppt汇报的时候做了几张图, ...
- c语言rsi2010中制运行,汇编语言初探(控制类指令)-来自第三章3.6的笔记-P135-P163
1.正溢出与负溢出: 首先,一个正数与一个负数相加,不可能溢出,因为结果的绝对值一定小于两个加数的绝对值,既然两个加数能合理表示出来,结果一定也能合理表示出来. 其次,正溢出是由于两个很大的正数相加, ...
- LLVM语法语义指令特性
LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...
- SAP HUM 嵌套HU初探
SAP HUM 嵌套HU初探 SAP HUM (Handling Unit Management) 子模块里,提供了在系统里对于HU(包装单元)的管理功能.HUM子模块支持业务部门对于相关的物料的打包 ...
- SAP HUM 嵌套HU初探 III
SAP HUM 嵌套HU初探 III 本文以物料号 ZPACK0001为例,从采购入库的角度看嵌套HU的使用. 1,该物料的包装指令主数据. 一个Pallet上放2包, 一个包里放500 EA, 包装 ...
- SAP HUM 嵌套HU初探 II
SAP HUM 嵌套HU初探 II 这里以物料号ZFG0003为例,做一个阐述. 1,维护好包装指令主数据(POP1/POP2/POP3) 包装指令ZFG0003A 包装指令ZFG0003B 然后维护 ...
- C#之CLR内存原理初探
C#之CLR内存原理初探 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-08-04 我要评论 这篇文章主要介绍了C#之CLR内存原理初探,有助于读者进一步理解C#的运 ...
- sql server 内存初探
原文:sql server 内存初探 一. 前言 对于sql server 这个产品来说,内存这块是最重要的一个资源, 当我们新建一个会话,相同的sql语句查询第二次查询时间往往会比第一次快,特别是在 ...
最新文章
- Java成员变量与成员方法
- 用过多款团队协作工具后,少数派为什么选择飞书
- 人工智能-基于U^2-Net的肖像画生成算法
- arcgis 出图背景_ArcGIS中导出数据时老显示导出失败,显示“保存对象时出错”什么原因?...
- android jni 结构体_Android应用开发Android JNI-c/c++调用java方法
- Spring Boot 页面国际化
- 澎思科技获洪泰基金千万级天使轮融资,深耕AI+安防行业
- 济南python工资一般多少-Python火到天际,可是为啥找工作这么难?
- Spring中xml文件配置也可以配置容器list、set、map
- 《Java 并发编程实战》
- 新版Fiddler1.5.1的证书导出和Chrome,Edge,Firefox浏览器导入证书
- appium学习总结5 - 操作设备
- linux用户无法接收邮件,linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(一)-系统账户登陆收发邮件...
- WTL 绘制 圆角对话框 自绘对话框
- angular 学习资源
- Microsoft Store无法联网检查网络
- java计算机毕业设计中学招生管理系统源码+数据库+系统+lw文档+mybatis+运行部署
- MT管理器和高级终端Termux
- 希捷移动硬盘打不开数据如何恢复
- Android逆向笔记(二) -- 破解AutoR的注册码验证