포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 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


 

profile

인생은 연극이고 세상은 무대이다!

이솝 임베디드 포럼 운영 및 비즈니스와 관련된 것 이외에 E-Mail이나 메신저 및 휴대폰 등을 통한 개인적인 질문 및 답변은 받지 않습니다. 문의 사항은 이솝 임베디드 포럼 게시판을 이용해 주시면 감사하겠습니다.

엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Documents_Linux_Applications&document_srl=35443&act=trackback&key=c15
List of Articles
번호 제목 글쓴이 날짜 조회 수
33 CVS 디렉터리 날리는 방법 김재훈 2009-02-12 6065
32 펌웨어 프로그래밍 팁 - gotoxy() 김재훈 2009-01-31 6105
31 펌웨어 프로그래밍 팁 - atox() 함수 구현 김재훈 2009-01-31 6209
30 펌웨어 프로그래밍 팁 - atoi() 함수 구현 김재훈 2009-01-31 6799
29 펌웨어 프로그래밍 팁 - 2진수 처리기 김재훈 2009-01-31 6037
28 유용한 ARM 어셈블리 (if, for, do_while, switch) 김재훈 2009-01-31 6332
27 유용한 ARM 어셈블리 매크로 김재훈 2009-01-31 6056
» 유용한 ARM 어셈블리 분기 명령어 시리즈 #2 김재훈 2009-01-31 6146
25 유용한 ARM 어셈블리 분기 명령어 시리즈 #1 김재훈 2009-01-31 6029
24 Linux Clustering - Building and Maintaining Linux Clusters file 김재훈 2009-01-31 5998
23 RedHat Complete Linux Command Reference file 김재훈 2009-01-31 6029
22 Linux Operating System Networking HowTo file 김재훈 2009-01-31 6001
21 Linux Operating System 100 Tips & Tricks file 김재훈 2009-01-31 6014
20 patch file 만들기 고현철 2009-01-30 6005
19 간단한 리눅스 firewall script 고현철 2009-01-30 6062
18 한글 mount/samba option 고현철 2009-01-30 6059
17 micro second to jiffies 변환 고현철 2009-01-30 6083
16 iconv euckr_to_utf8 고현철 2009-01-30 6418
15 limxml2 라이브러리를 이용해서 어트리뷰트 값을 가져오는 방법 고현철 2009-01-30 6208
14 vi 사용법 - block 지정 고현철 2009-01-30 6303

사용자 로그인