연세대학교 2012년 컴퓨터구조 이용석교수님 2차 ARM 어셈블리어 코딩 숙제(피보나치 수열)
- 최초 등록일
- 2012.08.05
- 최종 저작일
- 2012.05
- 2페이지/ 압축파일
- 가격 1,500원
소개글
2012년도 1학기 이용석 교수님 컴퓨터구조 2차 숙제입니다.
CodeWarrior for ARM Developer Suite 프로그램을 사용하여, ARM 어셈블리어로 코딩합니다.
내용은 Non-leaf Procedure를 사용한 Fibonacci Sequence(피보나치수열)을 만드는 것입니다.
s파일 확장자의 코딩파일들이 두 개 있고, 숙제에 제출할 레포트가 있습니다.
레포트 내에는 코딩파일에 대한 주석 및 설명들이 자세히 달려 있습니다.
숙제 만점 받고(전체 60명 중 2명), 학점 A+ 나왔습니다.
목차
없음
본문내용
Fibonacci sequence
<fibo 함수를 구현.
r0에 입력을 받고 연산 후 r1에 결과를 출력.>
*변수 12를 r0에 저장한다.
*원본 C code에서 main함수가 void형이므로, 따로 return값이 없고, int형 return(≠n)에 변수가 저장되므로, r1을 return으로 한다.
*Branch & Link 사용, 다음 명령은 fibo에서 시작되고, lr에 B EXIT의 주소가 저장된다.
*sp를 사용하여, 원 레지스터 (lr포함)에 저장되어 있는 데이터를 임시적으로 저장할 주소 2개를 만들어서 원본 데이터들을 저장한다.
<중략>
이번 과제인 Assembly Coding의 목적은 Non-Leaf Procedure를 이용한 피보나치 함수를 main함수에서 실행하는 작업을 수행하는 것이다. 이 코드에는 MAIN, fibo, n_ge_3, EXIT 네 개의 Branch가 사용되었다. MAIN branch는 C코드의 main함수를 구현화한 것으로, r0에 n값을 받고, r1(=result)에 fibo(n)의 결과값을 받는 BL fibo instruction이 사용되었다. fibo branch는 main함수에서 쓰인 fibo함수를 나타낸 것으로, STR instruction과 sp를 사용하여 임시메모리를 할당하고 r4와 lr의 값을 그 메모리에 저장하여 새로운 다른 값이 레지스터에 저장되어도 다시 불러올 수 있게 하였다.
참고 자료
없음
압축파일 내 파일목록
HW2.s
HW2.hwp