일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시간복잡도
- 미로 탐색 알고리즘
- Java
- ftz level13
- 파일 시스템
- 두근두근 자료구조
- level13
- 재귀
- System
- 파이썬
- OSI
- pwnable.kr
- c언어
- 정렬 알고리즘
- C
- ftz
- 암호수학
- 백준
- 스택
- 큐
- War Game
- windosw 문자열
- HTML
- Stack
- windosws wbcs
- PHP
- SWiFT
- 자료구조
- web
- LoB
- Today
- Total
나의 기록, 현진록
[System] 8086 레지스터 구조 본문
작성자 : 달고나
http://www.hackerschool.org/HS_Boards/data/Lib_system/buffer_overflow_foundation_pub.pdf
이 글은 자료를 글쓴이가 알기 쉽게 정리한 글.
범용 레지스터만 정리함
1-1. 8086
2-1. 8086 CPU 레지스터
3-1 레지스터 종류
범용 레지스터 |
논리 연산, 수리 연산에 사용되는 피연산자, 주소를 계산하는데 사용되는 피연산자, 그리고 메모리 포인터가 저장되는 레지스터이다. |
세그먼트 레지스터 |
코드 영역, 데이터 영역, 스택 영역을 가리키는 주소가 들어 있는 레지스터이다. |
플래그 레지스터 |
프로그램의 현재 상태나 조건 등을 검사하는데 사용되는 플래그들이 있는 레지스터이다. |
인스트럭션 포인터 |
다음 수행해야 하는 명령이 있는 메모리 상의 주소가 들어가 있는 레지스터이다. |
3-2 범용 레지스터
범용 레지스터는 프로그래머가 임의로 조작할 수 있게 허용되어 있는 레지스터이다. 4개의 32bit 변수라고 생각하면 된다. 예전의 16bit 시절에서는 각 레지스터를 AX, BX, CX 등으로 불렀지만 E(Extended)가 붙여 32bit를 표현한다.
EAX - 피연산자와 연산 결과를 저장한다.
EBX - DS 영역(데이터) 안의 데이터를 가리키는 포인터
ECX - 문자열 처리나 루프는 위한 카운터
EDX - I/O 포인터
ESI - DS 레지스터(데이터)가 가리키는 데이터 영역 내의 어느 데이터를 가리키고 있는 포인터, 문자열 처리에서 소스를 가리킴
EDI - ES 레지스터(데이터)가 가리키고 있는 데이터 영역 내의 어느 데이터를 가리키고 있는 포인터, 문자열 처리에서 destination을 가리킴
ESP - SS 레지스터(스택)가 가리키는 스택 영역의 맨 꼮대기를 가리키는 포인터
EBP - SS 레지스터(스택)가 가리키는 스택의 한 데이터를 가리키는 포인터
'-Computer Theory' 카테고리의 다른 글
[System] 쉘코드 모음 (0) | 2018.02.11 |
---|---|
[System] FSB .dtors란? (0) | 2018.01.30 |
[Linux] setuid (0) | 2018.01.17 |
[System] 변수의 메모리 주소 비교 (0) | 2018.01.13 |
[OS] 엔디언이란? (리틀 엔디언, 빅 엔디언) (0) | 2017.09.25 |