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

13.09.23 어셈블리 과제 이도윤

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

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

728x90