본문 바로가기
코스웨어/13년 스마트컨트롤러

기초 어셈블리 0923 -임기준

by 알 수 없는 사용자 2013. 9. 23.
728x90
반응형



smart.asm



;DATA: 09/23


.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 EAX, _EFL ; EAX = &_EFL

PUSH EAX

MOV EAX, 0

CALL _LINUX

ADD ESP, 4 ; 인자가 하나라서 4

INVOKE ExitProcess, 0


END



Linux.asm



;DATA: 09/23


.386

.MODEL FLAT


PUBLIC _LINUX


.CODE

_LINUX PROC NEAR32

PUSH EBP

MOV EBP, ESP


MOV ESP, [EBP + 8]

MOV DWORD PTR [ESP], 0FFFFFFFFh

ADD ESP, 36

MOV DWORD PTR [ESP], 0AAAAAAAAh

MOV ESP, EBP

POP EBP

RET

_LINUX ENDP


END



실행결과





728x90