[SYSTEM] computer architecture
2023. 8. 29. 18:42ㆍSTUDY
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
'STUDY' 카테고리의 다른 글
[WEB] web (0) | 2023.10.12 |
---|---|
[SYSTEM] OS (0) | 2023.10.11 |
computer science (2) | 2023.10.11 |
Docker (0) | 2023.10.11 |
[WEB] command injection (0) | 2023.08.30 |