1
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'は、2つの数値を表す低バイト及び高バイトを保持し、場合あなたがする低バイトに出力したいです' P1OUT 'を出力し、上位バイトを 'P2OUT'に出力するには、' MOV.B R7の前に上位バイトを出力するために( 'MOV.B'が下位バイトを移動しているので)' SWPB ' 、P2OUT'コール。 –