728x90
반응형
ESP 레지스터
- STACK의 시작'주소'를 가지고 있다. (32bit의 stack point)
push 명령어
push 100 의 명령을 수행 할 때는
이렇게 두가지의 수행을 하게된다. push명령 debug로 실행하는 화면 ESP가 가지고있는 현재 주소는 0012ffc4 push 0ffffffffh 명령을 수행 한 후 1. ESP = ESP - 4 의 주소인 12ffc0을 가지고 2. 그 주소에 ffff ffff의 메모리를 넣는다. push 012345678h 명령을 수행 한 후 1. ESP = ESP -4 의 주소인 12ffbc 2. 그 주소에 12345678의 메모리를 넣는데 리틀엔디안 방식으로 넣어진걸 확인할 수 있음. ... ... 나머지도 같은 방식으로 실행됨 ----------------- 추가 push 명령에 WORD ptr을 넣었을 경우 4byte가 아닌 2byte단위로 주소안의 값이 채워진다. 그리고 WODR와 WODR사이의 메모리는 빈틈없이 꽉꽉채워짐. 이런 형태 STACK의 Operand를 확인하면 BYTE단위는 없다는 것을 확인 할 수 있다. 적어도 2byte이상은 사용하여야함 |
pop 명령어
마지막에 저장된 cd 00 의 값을 얻기위해서 ax를 Operand로 줘서 값을 eax에서 확인함 이런식으로 pop 명령을 주면 위에 push로 집어넣었던 값들이 전부 지정한 Operand로 전달된다.
|
pushad 명령어
pushad명령을 수행한 후 EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI 의 순서대로 값이 저장됨을 확인 할 수 있다. pusha - push all pushad - push all dword |
popad 명령어
EFL레지스터에 저장하는 방법 pushfd EFL레지스터에 불러오는 방법 popfd |
728x90
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
STST 과제 (2) | 2014.08.07 |
---|---|
2014.08.06 업무보고 출석번호 6번 김용우 (10) | 2014.08.06 |
2014.08.05 업무보고 출석번호 5번 김상엽 (7) | 2014.08.06 |
2014.08.04 업무일지 [김대희] (12) | 2014.08.04 |
20140731 업무일지 출석번호 1번 고윤석 (11) | 2014.07.31 |
2014.07.30. 업무일지 출석번호 22번 허수웅 (11) | 2014.07.31 |
2014.07.29 업무일지 출석번호21 이재우 (9) | 2014.07.30 |
(복사가능)Introduction to 80x86 Assembly Language and Computer Architecture.pdf (1) | 2014.07.29 |