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'이 두 숫자를 나타내는 낮은 바이트 높은 바이트를 보유하고 있으며 경우에 낮은 바이트로 출력하고자' P1OUT '을 출력 한 후 상위 바이트를'P2OUT'으로 출력한다면,'MOV.B R7보다 먼저 상위 바이트를 출력하기 위해서 ('MOV.B'가 하위 바이트를 이동시키기 때문에)'SWPB ' , P2OUT' 호출. –