TI中文支持网
TI专业的中文技术问题搜集分享网站

28035的32位移位指令汇编指令MOV?

现在的一个项目用到了移位指令,在一段汇编程序的开始有如下指令: 

EALLOW    

  MOVW  DP, #_GpioDataRegs.GPATOGGLE     

   MOV  @_GpioDataRegs.GPATOGGLE, #0x0400   

   EDIS。

在末尾有相同的如下指令 :

EALLOW     

 MOVW  DP, #_GpioDataRegs.GPATOGGLE    

MOV  @_GpioDataRegs.GPATOGGLE, #0x0400     

 EDIS

即在示波器中观测GPIO口高低电平,这是对GPIO10进行操作。GPIO已配置为:

GpioCtrlRegs.GPAPUD.bit.GPIO10 = 0;

GpioDataRegs.GPASET.bit.GPIO10 =1;  

GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;  

程序测试后没问题,但现在有个问题:我现在需要对GPIO28进行操作,GPIO28口配置程序与GPIO10口配置一样,只在上述移位操作中将指令改为:MOV  @_GpioDataRegs.GPATOGGLE, #0x10000000  测试示波器发现没有高低电平任何变化,请教的是MOV这个指令是不是在这里只能是对16位进行移动,32位的无法操作,是这样吗,请教各位大侠了,小弟在此先谢过!    

Eric Ma:

yi wang,

是的,MOV只能对16位数进行操作。你可以使用MOVL。

Eric

现在的一个项目用到了移位指令,在一段汇编程序的开始有如下指令: 

EALLOW    

  MOVW  DP, #_GpioDataRegs.GPATOGGLE     

   MOV  @_GpioDataRegs.GPATOGGLE, #0x0400   

   EDIS。

在末尾有相同的如下指令 :

EALLOW     

 MOVW  DP, #_GpioDataRegs.GPATOGGLE    

MOV  @_GpioDataRegs.GPATOGGLE, #0x0400     

 EDIS

即在示波器中观测GPIO口高低电平,这是对GPIO10进行操作。GPIO已配置为:

GpioCtrlRegs.GPAPUD.bit.GPIO10 = 0;

GpioDataRegs.GPASET.bit.GPIO10 =1;  

GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;  

程序测试后没问题,但现在有个问题:我现在需要对GPIO28进行操作,GPIO28口配置程序与GPIO10口配置一样,只在上述移位操作中将指令改为:MOV  @_GpioDataRegs.GPATOGGLE, #0x10000000  测试示波器发现没有高低电平任何变化,请教的是MOV这个指令是不是在这里只能是对16位进行移动,32位的无法操作,是这样吗,请教各位大侠了,小弟在此先谢过!    

user3681076:

回复 Eric Ma:

这一点我想到了,可是在上述语句中,我用MOVL时出现了报错啊,CCS编译通知报错。

现在的一个项目用到了移位指令,在一段汇编程序的开始有如下指令: 

EALLOW    

  MOVW  DP, #_GpioDataRegs.GPATOGGLE     

   MOV  @_GpioDataRegs.GPATOGGLE, #0x0400   

   EDIS。

在末尾有相同的如下指令 :

EALLOW     

 MOVW  DP, #_GpioDataRegs.GPATOGGLE    

MOV  @_GpioDataRegs.GPATOGGLE, #0x0400     

 EDIS

即在示波器中观测GPIO口高低电平,这是对GPIO10进行操作。GPIO已配置为:

GpioCtrlRegs.GPAPUD.bit.GPIO10 = 0;

GpioDataRegs.GPASET.bit.GPIO10 =1;  

GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;  

程序测试后没问题,但现在有个问题:我现在需要对GPIO28进行操作,GPIO28口配置程序与GPIO10口配置一样,只在上述移位操作中将指令改为:MOV  @_GpioDataRegs.GPATOGGLE, #0x10000000  测试示波器发现没有高低电平任何变化,请教的是MOV这个指令是不是在这里只能是对16位进行移动,32位的无法操作,是这样吗,请教各位大侠了,小弟在此先谢过!    

user3681076:

回复 Eric Ma:

EALLOW   

  MOVW  DP, #_GpioDataRegs.GPATOGGLE    

   MOVL  @_GpioDataRegs.GPATOGGLE, #0x0400  

   EDIS

上述语句在CCS3.3中是报错的,这里不能用MOVL啊 。

现在的一个项目用到了移位指令,在一段汇编程序的开始有如下指令: 

EALLOW    

  MOVW  DP, #_GpioDataRegs.GPATOGGLE     

   MOV  @_GpioDataRegs.GPATOGGLE, #0x0400   

   EDIS。

在末尾有相同的如下指令 :

EALLOW     

 MOVW  DP, #_GpioDataRegs.GPATOGGLE    

MOV  @_GpioDataRegs.GPATOGGLE, #0x0400     

 EDIS

即在示波器中观测GPIO口高低电平,这是对GPIO10进行操作。GPIO已配置为:

GpioCtrlRegs.GPAPUD.bit.GPIO10 = 0;

GpioDataRegs.GPASET.bit.GPIO10 =1;  

GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;  

程序测试后没问题,但现在有个问题:我现在需要对GPIO28进行操作,GPIO28口配置程序与GPIO10口配置一样,只在上述移位操作中将指令改为:MOV  @_GpioDataRegs.GPATOGGLE, #0x10000000  测试示波器发现没有高低电平任何变化,请教的是MOV这个指令是不是在这里只能是对16位进行移动,32位的无法操作,是这样吗,请教各位大侠了,小弟在此先谢过!    

user3681076:

回复 Eric Ma:

EALLOW   

  MOVW  DP, #_GpioDataRegs.GPATOGGLE    

   MOV  @_GpioDataRegs.GPATOGGLE, #0x0400  

   EDIS

在上述语句中,将上述MOV换成MOVL后在CCS3.3中是报错的,求助于各位大侠,这个问题困扰我好久。

赞(0)
未经允许不得转载:TI中文支持网 » 28035的32位移位指令汇编指令MOV?
分享到: 更多 (0)