연세대학교 2012년 컴퓨터구조 이용석교수님 1차 ARM 어셈블리어 코딩 숙제(Leaf Procedure, Non-leaf Procedure)
- 최초 등록일
- 2012.08.05
- 최종 저작일
- 2012.04
- 3페이지/
압축파일
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
2012년도 1학기 이용석 교수님 컴퓨터구조 1차 숙제입니다.
CodeWarrior for ARM Developer Suite 프로그램을 사용하여, ARM 어셈블리어로 코딩합니다.
첫 번째 과제는 Leaf Procedure, 두 번째 과제는 Non-leaf Procedure입니다.
s파일 확장자의 코딩파일들이 두 개 있고, 숙제에 제출할 레포트가 있습니다.
레포트 내에는 코딩파일에 대한 주석 및 설명들이 자세히 달려 있습니다.
숙제 만점 받고(전체 60명 중 5명), 학점 A+ 나왔습니다.
목차
없음
본문내용
leaf_example 함수를 구현.
r0-r3까지의 레지스터에 입력을 받고 연산 후 r0에 결과를 출력.
*학번에 따라 지정된 변수 네 개를 각각의 레지스터에 저장한다.
*Branch & Link 사용, 다음 명령은 leaf_example에서 시작되고, lr에 B EXIT의 주소가 저장된다.
*sp를 사용하여, 원래 레지스터에 저장되어 있는 데이터를 임시적으로 저장할 주소 4개를 만들고, 그 주소들에 원 데이터들을 저장한다.
*각각의 연산을 부분으로 나누어서 수행 후, 원 데이터를 저장했던 레지스터들에 각각의 결과 값들을 나누어 저장한다.
<중략>
다음 Non-Leaf Procedure에서는 fact와 n_ge_1, EXIT 세 개의 Branch가 사용되었다. fact branch에는 stack을 이용한 연산메모리 지정 procedure와 조건문이 들어있다. n_ge_1 branch는 if 조건문을 구현하기 위해 만든 것으로, CMP instruction에서 r4(=n)가 1보다 작을 때에는 fact 내부에서 결과값을 1로 반환하고 메모리 해제 후 fact procedure를 빠져나가고, 1이상이면 이 branch로 jump한 뒤, 결과값을 구하기 위해, 다시 fact branch의 procedure를 소환한다
참고 자료
없음
압축파일 내 파일목록
HW1_p1.s
HW1_p2.s
HW1.hwp