现在的一个项目用到了移位指令,在一段汇编程序的开始有如下指令:
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位的无法操作,是这样吗,请教各位大侠了,小弟在此先谢过!