1
当我们有这样的代码:MSP430交换字节解释装配
main: MOV #SFE(CSTACK), SP ; set up stack
;;; some instructions .......
; load the starting address of the array1 into the register R4
MOV.W #arr1, R4
; load the starting address of the array1 into the register R5
MOV.W #arr2, R5
; Sum arr1 and display
CLR R7 ; Holds the sum
MOV #8, R10 ; number of elements in arr1
lnext1: ADD @R4+, R7 ; get next element
DEC R10
JNZ lnext1
MOV.B R7, P1OUT ; display sum of arr1
SWPB R7
MOV.B R7, P2OUT
什么是落后在这个例子做SWPB R7的原因/意思?我阅读文档并了解它交换低/高端字节;在一些文档中,它说它乘以256.这是唯一的原因,还是我在这里错过了更深的东西?代码应该添加一个寄存器的元素。
我不写MIPS,但如果'R7'持有低字节和高字节代表两个数字,并且要输出到低字节' P1OUT“,然后将高字节输出到”P2OUT“,则需要在两者之间有一个”SWPB“输出高位字节(因为'MOV.B'正在移动低位字节),因此您的MOV.B R7 ,P2OUT'呼叫。 –