Texas Instruments TMS320C3x 사용자 설명서

다운로드
페이지 757
TMS320C31 Boot Loader Source Code
B-6
 
LDI
*+AR0(4Ch),R1
LDI
R0,R0
; test load address flag
BNN
end_s
load_s
STI
R1,*AR4++(1)
; store new word to dest. address
end_s
RETSU
; return from subroutine
.space 22
loop_h
RPTB
load_h
; PGM load loop
sub_h
LDI
*AR1++(1),R1
; load LSB half word
AND
0FFFFh,R1
LDI
*AR1++(1),R2
; load MSB half word
LSH
16,R2
OR
R2,R1
; R1 = a new 32-bit word
LDI
R0,R0
; test load address flag
BNN
end_h
load_h
STI
R1,*AR4++(1)
; store new word to dest. address
end_h
RETSU
; return from subroutine
.space 26
loop_w
RPTB
load_w
; PGM load loop
sub_w
LDI
*AR1++(1),R1
; read a new 32-bit word
LDI
R0,R0
; test load address flag
BNN
end_w
load_w
STI
R1,*AR4++(1)
; store new word to dest. address
end_w
RETSU
; return from subroutine
.space 14
loop_b
RPTB
load_b
; PGM load loop
sub_b
LDI
*AR1++(1),R1
AND
0FFh,R1
; load 1st byte ( LSB )
LDI
*AR1++(1),R2
AND
0FFh,R2
LSH
8,R2
OR
R2,R1
; load 2nd byte
LDI
*AR1++(1),R2
AND
0FFh,R2
LSH
16,R2
OR
R2,R1
; load 3rd byte
LDI
*AR1++(1),R2
; load 4th byte ( MSB )
LSH 24,R2
OR
R2,R1
; R1 = a new 32-bit word
LDI
R0,R0
; test load address flag
BNN
end_b
load_b
STI
R1,*AR4++(1)
; store new word to dest. address
end_b
RETSU
; return from subroutine
.space 1
 
.end