• LF몰 이벤트
  • 파일시티 이벤트
  • 캠퍼스북
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

ARM Assembly 실습2

*영*
개인인증판매자스토어
최초 등록일
2010.10.17
최종 저작일
2008.09
44페이지/한글파일 한컴오피스
가격 3,000원 할인쿠폰받기
다운로드
장바구니

소개글

기초적인 ARM Assembly에 대하여 이해하고 기본적인 명령어 사용방법을 습득한다.
주어진 코드를 보고, 그 코드에 적당한 코드를 완성시켜본다.

목차

1.Title
ARM Assembly 실습 2
2.Name
3.Abstract
기초적인 ARM Assembly에 대하여 이해하고 기본적인 명령어 사용방법을 습득한다.
주어진 코드를 보고, 그 코드에 적당한 코드를 완성시켜본다.
4.Background

본문내용

1. 산술 명령어
산술 명령어는 32비트 signed / unsigned 값의 덧셈과 뺄셈을 구현하기 위해 사용된다.
표기법 : <명령어> {<조건>} {S} Rd, Rn, N
ADC : 캐리를 고려한 32비트값의 덧셈 / Rd = Rn +N + C(캐리 플래그)
ADD : 32비트값의 덧셈 / Rd = Rn + N
RSB : 32비트값의 뺄셈(반전) / Rd = N - Rn
RSC : 캐리를 고려한 32비트값의 뺄셈(반전) / Rd = N - Rn - !C
SBC : 캐리를 고려한 32비트값의 뺄셈 / Rd = Rn - N - !C
SUB : 32비트값의 뺄셈 / Rd = Rn - N
2. 산술 연산에서 배럴 시프터의 사용
산술 연산이나 논리 연산에서 두 번째 오퍼랜드의 시프트가 가능하다
ex) ADD r0, r1, r1, LSL #1 => r0 = r1 + r1*2 = 3*r1
3. 논리 명령어
논리 명령어는 2개의 소스 레지스터에 비트 단위로 논리 연산을 수행한다. 논리 명령어는 접미사 S가 있을 경우에만 cpsr 플래그를 업데이트하며, 산술 명령어와 같은 방식으로 배럴 시프트된 두 번째 오퍼랜드에 사용할 수 있다.
표기법 : <명령어> {<조건>} {S} Rd, Rn, N
AND : 32비트 AND 논리 연산 / Rd = Rn & N
ORR : 32비트 OR 논리 연산 / Rd = Rn | N
EOR : 32비트 XOR 논리 연산 / Rd = Rn ^ N
BIC : 비트 클리어 (AND NOT) 논리 연산 / Rd = Rn & ~N
4. 비교 명령어
비교 명령어는 결과에 따라 cpsr 플래그 비트를 업데이터하며 다른 레지스터에는 영향을 미지치 않는다. 해당 비트들을 세트한 다음, 조건부 실행을 사용하여 프로그램의 흐름을 변경하는 데 사용한다.
표기법 : <명령어> {<조건>} {S} Rn, N
CMN : 음수 비교 / Rn + N의 결과에 따라 상태 플래그를 업데이트
CMP : 양수 비교 / Rn - N의 결과에 따라 상태 플래그를 업데이트
TEQ : 두 32비트값이 같은지를 비교 / Rn ^ N의 결과에 따라 상태 플래그를 업데이트
TST : 두 32비트값의 테스트 비트 / Rn & N의 결과에 따라 상태 플래그를 업데이트
5. 곱셈 명령어
곱셈 명령어는 두 레지스터 안의 내용을 곱하는 명령어로, 명령어에 따라 곱한 결과에 또 다른 값을 더하기도 한다. 64비트 곱셈 명령어(long multiply)는 64비트를 표현하는 2개의 레지스터를 이용하여 곱셈을 한다. 곱셈 결과는 하나의 결과 레지스터에 저장하거나 2개의 레지스터를 이용하여 저장한다.
곱셈 명령어를 실행하는 데 걸리는 사이클 수는 프로세서에 따라 다르다.
표기법 : MLA {<조건>} {S} Rd, Rm, Rs, Rn
MUL {<조건>} {S} Rd, Rm, Rs
MLA : 32비트 곱셈-덧셈 명령어 / Rd = (Rm * Rs) + Rn
MUL : 32비트 곱셈 명령어 / Rd = Rm + Rs
표기법 : <명령어> {<조건>} {S} RdLo, RdHi, Rm, Rs
SMLAL : 64비트 signed 곱셈-덧셈 명령어 / [RdHi, RdLo] = [RdHi, RdLo] + (Rm * Rs)
SMULL : 64비트 signed 곱셈 명령어 / [RdHi, RdLo] = Rm * Rs
UMLAL : 64비트 unsigned 곱셈-덧셈 명령어 / [RdHi, RdLo] = [RdHi, RdLo] + (Rm * Rs)
UMULL : 64비트 unsigned 곱셈 명령어 / [RdHi, RdLo] = Rm * Rs
6. 분기 명령어
분기 명령어는 실행의 흐름을 변경하거나 어떤 루틴을 호출하는 데 사용된다. 이런 유형이 명령어는 프로그램의 서브루틴이나 if-then-else 구조, 루프문을 사용할 수 있도록 해주며, 프로그램 카운터 pc가 새로운 주소를 가리키도록 함으로써 실행의 흐름을 바꾸어준다.
표기법 : B {<조건>} label
B : 분기 - pc = label
표기법 : BL {<조건>} label
BL : 서브루틴 호출 분기 명령어 - pc = label / lr = BL 다음 명령어의 주소
표기법 : BX {<조건>} Rm
BX : ARM/Thumb 모드 전환 분기 명령어 - pc = Rm & 0xfffffffe, T = Rm & 1
표기법 : BLX {<조건>} label | Rm
BLX : ARM/Thumb 모드 전환 및 서브루틴 호출 분기 명령어
- pc = label, T = 1 / pc = Rm & 0xfffffffe, T = Rm & 1 / lr = BLX 다음 명령어의 주소
label이 가리키는 주소는 signed pc-상대 오프셋의 형태로 명령어에 저장되며, 분기 명령어의 약 32MB 이내의 주소이어야 한다. T는 cpsr의 Thumb 비트를 의미하고, 명령어가 T를 1로 세트하면 ARM은 Thumb 상태로 바뀐다.
7. 로드-스토어 명령어
로드-스토어 명령어는 메모리와 프로세서 레지스터 사이에 데이터를 전송해준다.
8. 단일 레지스터 전송 명령어

참고 자료

http://blog.naver.com/nemco3/90001967381
http://tisu.it.jyu.fi/embedded/TIE345/luentokalvot/Embedded_3_ARM.pdf
http://blog.paran.com/xscale/4260066
ARM System Developer`s Guide : Designing and Optimizing System Software
*영*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

찾던 자료가 아닌가요?아래 자료들 중 찾던 자료가 있는지 확인해보세요

더보기
최근 본 자료더보기
탑툰 이벤트
ARM Assembly 실습2
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업