.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
길다......
<결 과>
'코스웨어 > 13년 스마트컨트롤러' 카테고리의 다른 글
2013_09_23 EFL,EIP,EBP,ESP 레지스터에 값넣기 (한성원) (0) | 2013.09.23 |
---|---|
20130923 이세웅 - 어셈블리 수업내용 (1) (0) | 2013.09.23 |
0923 어셈블리 수업내용 _ 이수현 (0) | 2013.09.23 |
9월 16일 어셈블리 숙제 - 석주원 (0) | 2013.09.17 |
어셈블리 레지스터값 출력하기-한성원 (0) | 2013.09.16 |
어셈블리 과제 0916 -임기준 (0) | 2013.09.16 |
[stack] 코드의 스텍영역 살펴보기 - 0911 정리 (0) | 2013.09.16 |
20130916 어셈블리 - 이수현 (0) | 2013.09.16 |