728x90
TOY에서 LINK 명령어의 용도 : 함수를 호출하기 전에 되돌아올 주소를 R6에 저장해놓는 어셈블리 명령어
TOY에서 RET 명령어의 용도 : R6에 저장된 주소로 다음 실행위치를 이동하게하는 어셈블리 명령어
TOY에서 R0의 용도 : 함수 반환값을 전달하는 레지스터
함수별 스택 프레임 : 함수의 실행중에 인수 및 지역변수들을 포함하는 스택 메모리 영역.
TOY에서 SP란? : 스택포인터로 R5에 해당하며 스택의 맨 윗부분을 가리키고 있다.
TOY에서 FP란? : R4에 해당하며 스택 프레임의 기준이 되는 주소를 저장하는 레지스터
ARM과 x86의 함수 호출 비교: ARM은 함수호출시 BLAL func 이용하며 복귀시 MOV PC, R14를 이용한다. x86은 호출시 CALL func 복귀시 RET를 이용한다.
시스템 호출 : 운영체제에서 제공하는 특정 기능의 실행을 요청하는 것.
TOY에서 SR란? : Status Register로 CCR의 비트들과 프로세서 모드를 포함함.
ARM프로세서란 : 휴대형기기 등등에서 가장 광범위하게 사용되는 프로세서로 저전력이 특징.
Startup Code란 : main함수가 실행되기전에 맨처음 실행되는 어셈블리 구문.
입출력장치 제어 프로그램 ( 디바이스 드라이버 ) : 디바이스의 상태를 저장하고 제어하는 기능을 하는 프로그램
TOY프로세서는 순차논리회로로 이루어짐.
TOY | ARM | x86 | |
운영체제 기능 호출 | SWI n | SWI #n | INT n |
운영체제 기능 복귀 | RTI | MOVS PC, R14_svc | IRET |
TOY | ARM | x86 | |
함수 호출 | LINK | BLAL func | CALL func |
함수 복귀 | RET | MOV PC, R14 | RET |
운영체제 기능에 해당하는 C 언어 표현
c언어 표현 | 어셈블리 표현 |
getchar(void) | SWI 0 |
putchar(char) | SWI 1 |
gets(char []) | SWI 2 |
puts(char []) | SWI 3 |
setecho(int) | SWI 4 |
exit(void) | SWI 255 |
레지스터 쓰임새 비교
Toy | ARM | x86 | |
Program Counter | R7 | R15 | EIP |
Status Register | SR | CPSR | EFLAGS |
Link Register | R6 | R14 | EBP |
Stack Pointer | R5 | R13 | |
Frame Pointer | R4 |
어셈블리 명령어 비교
728x90
반응형
'📗 Computer Science' 카테고리의 다른 글
[네트워크] TCP 개념 (0) | 2021.01.01 |
---|---|
알고리즘 정리 (0) | 2020.12.14 |
[소프트웨어 공학] 3. UML Class Diagram (0) | 2020.09.28 |
[네트워크] 3 - 1. Transport 트랜스포트 계층 (0) | 2020.09.15 |
[소프트웨어 공학] 2. UML Overview (0) | 2020.09.12 |