http://119.201.123.184/30stair/area/area.php?pname=area


# include <stdio.h>


int main(void) {

int v1 = 0;

int v2 = 0;

int v3 = 0;

char* scanfPrompt = "%d %d";

char* printfPrompt = "%d x %d = %d\n";


__asm {

lea eax, v1; // eax = &v1;

lea ebx, v2; // ebx = &v2;


push ebx; // ( , ,&v2);

push eax; // ( ,&v1 ,&v2);

push scanfPrompt; // ("%d %d" ,&v1 ,&v2);

call dword ptr[scanf]; // scanf("%d %d" ,&v1 ,&v2);

pop ebx; // scanf("%d %d" ,&v1, );

pop ebx; // scanf("%d %d" ,  , );

pop ebx; // scanf( ,  , );


mov eax, v1; // eax = v1

imul v2; // eax *= v2

mov v3, eax; // v3 = eax


push v3; // ( , , ,v3);

push v2; // ( , ,v2 ,v3);

push v1; // ( ,v1 ,v2 ,v3);

push printfPrompt; // (%d x %d = %d,v1 ,v2 ,v3);

call dword ptr[printf]; // printf(%d x %d = %d,v1 ,v2 ,v3);

pop ebx;

pop ebx;

pop ebx;

pop ebx;


xor eax, eax;

leave;

retn;

}

}

'어셈블리' 카테고리의 다른 글

어셈블리 최소값 추출  (0) 2017.09.26
어셈블리 배열 출력  (0) 2017.09.26
jz ==> zero flag  (0) 2017.09.23
대소관계  (0) 2017.09.23
어셈블리 계산기(더하기, 빼기, 나누기, 곱하기)  (0) 2017.07.30