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 |