논리 연산: and, or, xor 많이 씀
ALU: 전기 신호로 0과 1로 논리 연산 수행하는 회로.
AND: 둘다 1이면 1, 나머지는 0
OR: 1이 하나 이상이면 1, 나머지는 0
XOR: 둘중 하나가 1이면 1, 나머지는 0
CPU 레지스터: 작은 저장 장치(연산)
머신코드: 0과 1로만 되어있음
어셈블리어: 보기 쉽게 특정 단어로 변경
opcode
opcode operand1
opcode operand1 operand2
형태로 구성되어 있고 operand에는 레지스터, 주소값, 상수 값이 올수 있다.
메모리: 저장 공간
변수: 단일 메모리 공간
배열: 연속된 메모리 공간
구조체: 연속된 메모리 공간에 이름을 지정
주소: 각 메모리 공간에는 주소가 있고 &는 메모리 주소 값을 알 수 있음.
포인터: 변수, 배열, 구조체를 가리키는 변수, 주소 값을 담고 있으며 주소 값 계산을 통해 자유롭게 간접적으로 접근 가능함.
컴파일:
EXE file format: 윈도우 기준
- Header
- Code
- DATA
- Relocation
섹션 순으로 되어 있다.
물리 메모리: 64GB도 사용함, 항상 부족하다는 부족 호소인
가상 메모리: x86, x64에 따라 크기가 다름. 실행하는 영역만 RAM에 적재해서 사용함
Executable File: 실행 파일 .exe
메모리로 보면 이진수로 되어 있지만 16진수로 바꾸면 결과가 달라짐.
1 byte = 8it = 77 = 4D
WORD = 2 byte
DWORD = 4byte
QWORD = 8 byte
Big-Endian: 0x12345678 >>낮은 주소 | 0x12 | 0x34 | 0x56 | 0x78 |높은 주소: 저장 방식이 낮은 주소에 높은 바이트 배열
Little-Endian: 0x12345678 >>낮은 주소 | 0x78 | 0x56 | 0x34 | 0x12 |높은 주소: 저장 방식이 낮은 주소에 낮은 바이트 배열.
MZ식 WORD: 16비트 CPU 레지스터 크기를 표현하는 단어가 되 + 주소로부터 몇 바이트 단위로 접근하겠다.