코스웨어/13년 스마트컨트롤러
13.09.23 어셈블리 과제 이도윤
알 수 없는 사용자
2013. 9. 23. 19:50
SMART.ASM
.386 .MODEL FLAT
.STACK 4096 PUBLIC _SMART EXTRN _LINUX: NEAR32 ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
.DATA _EFL DWORD 0H _EIP DWORD 0H _EDI DWORD 0H _ESI DWORD 0H _EBP DWORD 0H _ESP DWORD 0H _EBX DWORD 0H _EDX DWORD 0H _ECX DWORD 0H _EAX DWORD 0H
.CODE _SMART: LEA EBX,_EFL; EBX = &_EFL PUSH EBX CALL _LINUX MOV ESP,4; 인자 때문
INVOKE EXITPROCESS, 0 END |
LINUX.ASM
.386 .MODEL FLAT
PUBLIC _LINUX
.CODE
_LINUX PROC NEAR32 PUSH EBP;ENTRY 포인트 MOV EBP,ESP ;========================================================================= MOV EAX, [ESP+8] ; EAX = &_EFL MOV DWORD PTR [EAX], 0FFFFFFFFH MOV DWORD PTR [EAX+36], 0AAAAAAAAH
;========================================================================= MOV ESP,EBP;EXIT 포인트 POP EBP RET
_LINUX ENDP
|

원했던곳에 값이 들어간것을 볼수 있다
EFL 에 FFFFFFFF
EAX 에 AAAAAAAA