PUBLIC _Mm ; // Mm함수를 외부에서 사용할수있게 set
PUBLIC _Md ; // 어셈블리는 함수이름앞에 _를 붙인다
.386
.MODEL FLAT
.CODE
; // Mm 정의 Memory Modify
_Mm PROC NEAR32
push ebp
mov ebp, esp
mov eax, esp ; // 스텍포인터의 이동을 위해 잠시 eax에 넣어둔다
mov esp, [ebp+8] ; // 스텍포인터에 첫 번째 인자값 대입
add esp, 4 ; // 스텍포인터를 0x0012FF04로 옮긴후
push [ebp+12] ; // 두 번째 인자를 push
mov esp, eax ; // eax에 들어있던 원래 ESP의 값을 돌려놓는다
mov esp, ebp
pop ebp
ret
_Mm ENDP
; // Md 정의 Memory Display
_Md PROC NEAR32
push ebp
mov ebp, esp
push ebx ; // ebx를 잠시쓰기위해 push
mov ebx, esp ; // ESP를 ebx에 잠시 넣어놓는다
mov esp, [ebp+8] ; // 첫 번째 인자의 주소를 ESP에 대입
mov eax, [esp] ; // 현재 스텍포인터가 가리키는곳을 eax에 넣는다(자동리턴)
mov esp, ebx ; // 스텍포인터를 원래대로 돌려 놓는다
pop ebx ; // 저장해놓았던 ebx값을 되돌려 놓는다
mov esp, ebp
pop ebp
ret
_Md ENDP
END
|