포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.
[유용한 ARM 분기 명령어와 숫자 라벨 이용법]
/** 여기서 b는 back이며 숫자 label이 앞부분에 있음을 나타낸다.
그리고 f라고 하면 forward이며 숫자 라벨이 뒷부분에 있음을 나타낸다. **/
[EX1]
;이 명령은 r1의 값이 5면 LABEL로 가서 반복하고, 아니면 빠져 나간다.
LABEL
cmp r1, #5
beq LABEL
이는 ADS나 SDT에서 다음과 같이 다시 쓸 수 있다.
0
cmp r1, #5
beq %b0
그리고 Linux GCC에서는 다음과 같이 쓸 수 있다.
0:
cmp r1, #5
beq 0b
[EX2]
;이 명령은 r1의 값이 5가 아니면 LABEL로 가서 반복하고, 5면 빠져 나간다.
LABEL
cmp r1, #5
bne LABEL
이는 ADS나 SDT에서 다음과 같이 다시 쓸 수 있다.
0
cmp r1, #5
bne %b0
그리고 Linux GCC에서는 다음과 같이 쓸 수 있다.
0:
cmp r1, #5
bne 0b
[EX3]
;이 명령은 r1의 8번 비트가 ‘0’이면 LABEL로 가서 다시 반복하고, ‘1’이면 빠져 나간다.
LABEL
tst r1, #0x00000100
beq LABEL
이는 ADS나 SDT에서 다음과 같이 다시 쓸 수 있다.
0
tst r1, #0x00000100
beq %b0
그리고 Linux GCC에서는 다음과 같이 쓸 수 있다.
0:
tst r1, #0x00000100
beq 0b
[EX4]
;이 명령은 r0의 8번 비트가 ‘1’이면 LABEL로 가서 반복하고, ‘0’이면 빠져 나간다.
LABEL
tst r1, #0x00000100
bne LABEL
이는 ADS나 SDT에서 다음과 같이 다시 쓸 수 있다.
0
tst r1, #0x00000100
bne %b0
그리고 Linux GCC에서는 다음과 같이 쓸 수 있다.
0:
tst r1, #0x00000100
bne 0b