首页 | 供应信息 | 采购信息 | PDF资料 | 技术资料 | 行业资讯 | 产品展示 | 人才市场 进入会员区
   技术文章分类:单片机/DSP 嵌入式系统 测试仪表 电源技术 接口电路 存储器 传感与控制 通信网络 无线通信 模拟技术 显示与光电 EDA/PLD 汽车电子 消费电子 电子综合
   电子综合工具:PDF资料大全 电子缩略语 IC型号替换 IC厂家 电子电路图 技术参数 设计应用 解决方案
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
  您所在的位置: IC37首页 > 技术问答 > 单片机 > 说说msp430的仿真指令

  说说msp430的仿真指令 

msp430是精简指令集单片机,只有27条内核指令,居然比pic的低端系列还少。

但是msp430有大量的仿真指令。

一开始看书没仔细看,一带而过,想当然仿真指令是由几条内核指令仿真,肯定指令长度长,运行速度慢。

后来仔细一看,完全不是那么回事,恰恰是:

由1条内核指令配合常数发生器仿真,指令长度短,运行速度快。

举个例子:

msp430内核指令没有清除寄存器指令,如果没有仿真指令机制(使用常数发生器的),可以用:

mov #0,Rn

这条指令占用4个字节,即1个16位的指令后跟随一个16位常数0,

运行时间3个指令周期。

而实际上,由于msp430有使用常数发生器的仿真指令机制,可以运用这条仿真指令:

CLR Rn

它被汇编器翻译成:

mov R3,Rn(AS = 00)

即AS位为00的R3(CG2)的内容固定为0,这条指令运行时间1个指令周期,长度2个字节.

AS为替他数值,常数发生器CG1,CG2(即R2,R3)还可为固定的+1,-1,2,4,8等常数

这样的话,msp430的内核只要实现27条精简指令,内核一定很小,功耗也一定很小,这可能也是msp430能实现超低功耗的一个原因.


作者:machunshui  2008-1-25 14:59:00

  回复1  这个仿真指令应该就是伪指令的意思吧167635

这个仿真指令应该就是伪指令的意思吧
作者:dld2  2008-1-25 18:33:00

  回复2  和ARM伪指令的区别167636

二者的相同点在于都是由汇编器翻译成cpu能理解的指令.

msp430的仿真指令由于常数发生器的作用,会加快执行速度,改变指令的长度,

实际上是通过常数发生器的参与把绝对寻址方式改变为寄存器寻址方式从而加快指令执行速度和减小指令长度,从而cpu只要实现最小化的高度正交精简指令即可.

arm的伪指令,是为了方便用户,不用计算标号等和PC的相对关系或者其他的作用,但不会加快执行速度,改变指令的长度.

例如:

00008FE4 OPT l%

00008FE4 E28F0004 ADR R0, text

00008FE8 EF000002 SWI "OS_Write0"

00008FEC E1A0F00E MOV PC, R14

00008FF0 .text

00008FF0 EQUS "Hello!" + CHR$13 + CHR$10 + CHR$0

00008FFC ALIGN

下列代码有完全相同的效果:

00008FE4 OPT l%

00008FE4 E28F0004 ADD R0, R15, #4

00008FE8 EF000002 SWI "OS_Write0"

00008FEC E1A0F00E MOV PC, R14

00008FF0 .text

00008FF0 EQUS "Hello!" + CHR$13 + CHR$10 + CHR$0

00008FFC ALIGN


作者:machunshui  2008-1-25 19:20:00

  回复3  一直用C,还没看过指令。。。167637

一直用C,还没看过指令。。。
作者:liuf  2008-1-25 20:47:00


我要投稿 注册会员
客服咨询热线:0755-26000950 0755-26007355
 相关技术问答
·欢迎大家进行程序结构的讨论  2008-1-24
·大家了解NEC单片机吗?请..  2008-1-24
·一个700行代码完成的Jp..  2008-1-24
·请教一个电压比较器的问题!  2008-1-24
·想选个MCU做电表,朋友说..  2008-1-24
·2803发热??急  2008-1-24
·大家帮看看这个计数程序有什..  2008-1-24
·6位BCD码转十六进制  2008-1-24
·求购51或arm开发板  2008-1-24
·关于C和汇编的问题  2008-1-25
·请大家帮我看看这个电路实现..  2008-1-25
·TDA2030AV国外库存..  2008-1-25
·请教砍波原理  2008-1-25
·定时器精确定时  2008-1-25
·请各位推荐一块80c51开..  2008-1-26
·为何sin = 0;报错e..  2008-1-26
·“技术派”的力量——坚持看..  2008-1-26
·请教一个计数器的计数时间问题  2008-1-26
·请教数码管电路问题?  2008-1-26
·有没有人弄格雷码  2008-1-26
·请问eeprom和铁电的驱..  2008-1-26
·GAL16V8的问题,求救  2008-1-26
·麻烦大家帮忙推荐一款红外遥..  2008-1-26
·寻找一款合适的单片机  2008-1-27
·C8051F067大约多少..  2008-1-27
·探讨:如何实现用串行通讯,..  2008-1-27
·想问下unsigned c..  2008-1-27
 
 热门IC
MC145100CP  LT1303CS8-5  HC74  CY7C63101A-SC  MAX521ACAG  MAX1712EEG  MC34115P  L64704BQC-60  AM29F010-45JC  UPB1508GV-E1  AME8801AEEV  FDB603AL  P87C749EBDDB  MAX2369EGM  IDT71124S15Y  LA2220  HD61602R  P89V51RD2FBC  24LC64  SN74AC244DWR  NZT651  FS741BZB  IRF7459  FT5764M  LM431AIM  ADP3801A  MAT01AH  AD660BR  LH1465AB  MIC29151-5.0BU  LT1310EMSE  ADMC328YR  MC74F245N  LM2574HVM-15  LT1491ACS  LTC1647-1CS8  EL2160CN  DS2480B  BCV62B  SS32  AN7316  HPMX-5001  SN74AHC1G126DBVR  2SD2150  LT1192CS8  PMB4820V1.1  S21ME6  TC74HC4066AFS  OP184ES  OP77EP