computer architecture

2023. 8. 29. 18:42Study/system

320x100
320x100

숙력된 시스템 해커가 되기 위해선 단순히 알려진 기술을 습득하는 것에 그치지 않고 바탕이되는 컴퓨터 과학을 이해하기 위해 노력해야 한다.


computer architecture: 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법

ISA(instruction set architecture): CPU가 해석하는 명령어의 집합. IA-32, x86-64(x64), MIPS, AVR 등

general register: 주 용도는 있으나, 그 외의 용도로도 자유롭게 사용할 수 있는 레지스터

- 8바이트

이름 주용도
rax 함수의 반환 값
rbx x64에서는 주된 용도 없음
rcx 반복문의 반복 횟수, 각종 연산의 시행 횟수
rdx x64에서는 주된 용도 없음
rsi 데이터를 옮길 때 원본을 가리키는 포인터
rdi 데이터를 옮길 때 목적지를 가리키는 포인터
rsp 사용중인 스택의 위치를 가리키는 포인터
rbp 스택의 바닥을 가리키는 포인터

segment register: 메모리 보호를 위해 사용되는 레지스터

- cs, ss, ds, es, fs, gs... 각 16비트

flag register: CPU의 상태를 저장하는 레지스터

플래그 의미
CF 부호 없는 수의 연산 결과가 비트의 범위를 넘을 경우 설정
ZF 연산의 결과가 0일 경우 설정
SF 연산의 결과가 음수일 경우 설정
OF 부호 있는 수의 연산 결과가 비트의 범위를 넘을 경우 설정

ex) a=3, b=5  =>  a-b=-2   ∴SF설정

IP(instruction pointer register): CPU가 실행해야할 코드를 가리키는 레지스터

- rip... 8바이트

320x100
320x100