코스웨어/13년 스마트컨트롤러

20130916어셈블리 레지스터 값-문예진

알 수 없는 사용자 2013. 9. 16. 20:30
728x90
반응형

.386

.MODEL FLAT


PUBLIC _linux

        

.CODE

_linux PROC NEAR32


push ebp

mov ebp,esp

pushad ;모든 레지스터의 값을 넣어둔다.

pushf ;flag 레지스터를 스택에 값을 넣고

mov eax, esp ;esp의 맨위의 위치 값을 eax에 넣음



mov esp, ebp  

add esp, 12 ;esp 의 시작주소가 있는 곳으로


mov ebx, esp ;esp 시작주소 넣음

mov esp, [ebp+8] ;esp가 구조체까지 내려감

add esp, 40 ; eax부터 넣을 준비


;---------------------------------------------

mov ecx, [ebp-4] ;ebp에서 4바이트 내려간 값

push ecx ;eax값을 넣음

mov ecx,[ebp-8] ;ecx

push ecx


mov ecx,[ebp-12] ;edx

push ecx


mov ecx,[ebp-16] ;ebx

push ecx


push ebx ; 아까 저장해 놓았던 esp의 주소 값


mov ecx, [ebp] ;ebp의 원래 주소 값

push ecx


mov ecx,[ebp-28] ;esi

push ecx


mov ecx,[ebp-32] ;edi

push ecx


mov ecx,[ebp+4] ;eip

push ecx

mov ecx, [ebp-40] ;efl

push ecx

mov esp, eax ;다시 원래의 주소로 되돌리기


popf

popad


mov esp,ebp

pop ebp

ret

      

        

_linux ENDP


END












길다......


<결 과>








728x90