어셈블리 - 5장

어셈블리 - 5장

Info iconThis preview shows pages 1–12. Sign up to view the full content.

View Full Document Right Arrow Icon
스택 (Stack) 메모리 공간 text section stack section data section 기억 클래스 (storage class) auto static extern register
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
SPARC 메모리 프로그램과 데이터 주소 공간의 크기 : 2 32 bytes 주소 단위 : byte 타입 : 크기와 해석 방법 ( 구조 ) C SPARC 크기 unsigned signed char byte 8 0:2 8 -1 -2 7 :2 7 -1 short half 16 0:2 16 -1 -2 15 :2 15 -1 int, long word 32 0:2 32 -1 -2 31 :2 31 -1
Background image of page 2
경계 정렬 (Alignment) 각 타입의 데이터는 타입 크기 (byte) 의 배수 주소 에 시작 주소가 위치해야 함 char (1B): 0, 1, 2, 3, . .. short (2B): 0, 2, 4, 6, . .. int, long (4B): 0, 4, 8, . .. double (8B): 0, 8, 16, 24, 32, . .. Byte 4 5 6 7 8 주소
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
SPARC 의 메모리 맵 • Static 영역 : 컴파일 시간 할당 – text: 코드 – data, bss: 전역 변수 • dynamic 영역 : 실행 시간 할당 – heap: malloc 실행 시간 임의의 지 점에서 메모리를 할당 / 수거 – stack: 함수 호출 때 마다 프레임 할당 • main call f call g • automatic 변수 레지스터 대피 장소 high low text data heap stack f g bss %pc %npc %sp (o6) %fp (i6)
Background image of page 4
지역변수 생존기간과 참조영역 Main 루틴 지역변수 : { A } : 함수 x 를 부름 : stop 함수 x 루틴 지역변수 : { B } : 함수 y 를 부름 : return 함수 y 루틴 지역변수 : { C } : : return { A } 영역 { B } 영역 { A } 영역 { C } 영역 { B } 영역 { A } 영역 메모리 %fp %sp %sp %fp %sp %fp
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
스택 프레임 최소 64B 필요 : i 레지스터와 l 레지스터를 저장할 필요가 발 생할 수 있다 . • 8 의 배수 단위로 할당 • 20B 의 자동 변수가 필요할 때 %fp %fp-8 %fp-12 %fp-16 %fp-20 %fp-4 64B + 4B int f(int x, int y) { int a, b, c, d, e; ... } a b c d e
Background image of page 6
save 명령 • save 명령 효과 stack 공간 확보 1 register set 배정 또는 또는 save %sp, -88, %sp 결과 : (%fp) new (%sp) old (%sp) new (%sp) old - 88
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
스택 변수 찾아 가기 데이타 이동 단위 : 1B, 2B, 4B, 8B • 8B 이동에는 (R 2n R 2n+1 ) 쌍 사용 • big endian: 여러 바이트로 구성된 데이타의 주소는 msB 의 주소 . addr(msB) < addr(lsB) 4n 4(n+1) 4(n+2) 1 2 3 4 msB lsB 4 3 2 1 msB lsB big little
Background image of page 8
스택변수의 주소 실제 주소 8 msB 7 6 5 lsB 4 msB 3 2 1 lsB Byte %fp 주소는 ? 주소는 ? 변수 a 변수 b 실제주소 변수명 64 bytes of storage to save registers %fp-20 20 19 18 17 e %fp-16 16 15 14 13 d %fp-12 12 11 10 9 c %fp-8 8 7 6 5 b %fp-4 4 3 2 1 a 88 bytes %sp
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
메모리 접근 적재 (load) register memory( 주소 ) 저장 (store) memory( 주소 ) register register 크기 : 32 bit 이동단위 : 1B, 2B, 4B, 8B
Background image of page 10
메모리 접근 명령 Opcode 주지 사항 ldsb s igned b yte, propagation of sign ldub u nsigned
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 12
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 11/03/2009 for the course CS Assembly taught by Professor Park during the Fall '09 term at 홍익대학교.

Page1 / 41

어셈블리 - 5장

This preview shows document pages 1 - 12. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online