일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- useMutation error
- 화이트해커를 위한 웹 해킹의 기술
- 도그존
- 홍대 카페 장쌤
- 앙버터마카롱
- 토라비
- graphql mutation error
- 잠실새내
- 화이트 해커를 위한 웹 해킹의 기술
- graphql 400
- apollo react native
- promise메서드
- graphql
- 잠실새내 도그존
- typescript
- apolloclient
- 비동기배열처리방법
- 고르드
- 신촌 소문난집
- 비동기배열
- graphql with RN
- graphql react native
- 홍대 토라비
- graphql with reactnative
- 운정 소바동
- 지보싶 신촌점
- 홍대 예술
- promise처리
- 예쁜술집 예술
- 금별맥주
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
어셈블리어 명령어와 범용 레지스터 본문
어셈블리어 명령어 종류와 기능
-
mov: 데이터 이동 시에 사용
-
lea: 주소 값을 옮길 때 사용
-
add: 레지스터나 메모리의 값을 덧셈할 때
-
sub: 레지스터나 메모리의 값을 뺄 때
-
dec: 값을 1 감소 시킨다.
-
inc: 값을 1 증가 시킨다.
-
cmp: 레지스터와 레지스터 값을 비교
-
jmp 특정한 곳으로 분기
-
call: 프로시저를 호출
-
ret: 호출했던 바로 다음 지점으로 이동 (call한 주소로 이동)
-
push: 값을 스택에 저장
-
pop: 값을 스택에서 삭제
-
nop: 아무것도 하지 않는다.
어셈블리어 명령어 분류
-
데이터 이동: mov, lea
-
논리 연산: add, sub, dec, inc
-
흐름제어: cmp, jmp
-
프로시저: call, ret
-
스택 조작: push, pop
범용 레지스터
: 논리연산, 수리연산에 사용되는 피연산자, 주소 계산 피연산자, 메모리 포인터가 저장되는 CPU 내의 공간
1. EAX: 피연산자와 연산 결과의 저장소
- 산술연산자, 논리연산자를 수행하여 함수의 반환 값(return 값)이 이 레지스터에 저장된다.
2. EBX: DS segment안의 데이터를 가리키는 포인터
- 메모리 주소를 저장하기 위한 용도
3.ECX: 문자열 처리나 루프를 위한 카운터
- 반복 명령어 사용시 반복 카운터로 사용되는 레지스터
4. EDX: I/O 포인터
- 부호 확장 명령 등에 쓰이는데, 큰 수의 곱셈 혹은 나눗셈 등의 연산이 이루어질 때
- EAX 레지스터와 함께 쓰인다.
5. ESI: DS 레지스터가 가리키는 data segment 내의 어느 데이터를 가지고 있는 포인터
- 문자열 처리에서 source를 가리킨다.
- 데이터를 조작하거나, 복사 시에 소스 데이터의 주소가 저장된다.
6. EDI: ES 레지스터가 가리키고 있는 data segment 내의 어느 데이터를 가리키고 있는 포인터
- 문자열 처리에서 destination(목적지)를 가리킴
- 복사 시에 목적지의 주소가 저장된다.
7. ESP: SS 레지스터가 가리키는 stack segment의 맨 꼭대기를 가리키는 포인터
- 스택 프레임의 끝 지점 주소(스택의 가장 아랫 부분, 스택의 마지막)가 저장된다.
- push, pop 명령에 따라 ESP의 값이 4바이트씩 변한다.
8. EBP: SS 레지스터가 가리키는 스택 상의 한 데이터를 가리키는 포인터
-하나의 스택 프레임 시작주소가 저장된다.
-현재 사용되는 스택 프레임이 소멸되지 않은 이상 EBP 레지스터의 값은 변하지 않는다.
-현재 스택 프레임이 소멸되면 이전 스택 프레임을 가르키게 된다.
추가적으로 알아두면 좋은 것
EIP 레지스터: 다음 실행할 명령어의 주소를 가지고 있는 레지스터
- 현재 실행하고 있는 명령어가 종료되면 CPU는 EIP 레지스터에 있는 명령어를 실행한다.
SFP (Stack Frame Pointer): 스택프레임을 거치고, 함수가 돌아가야할 위치를 저장해 둔 포인터
- 함수가 호출되기 전 스택의 흐름을 그대로 유지하기 위한 포인터
'컴퓨터 시스템' 카테고리의 다른 글
gdb 명령어 모음 (0) | 2020.09.07 |
---|---|
gdb 사용하기 (0) | 2020.09.06 |
8086 Memory Architecture, register (0) | 2020.09.06 |
컴퓨터 시스템의 기초 (0) | 2020.09.05 |