C语言代码:
int main(int argc, char* argv[])
{
int* p=NULL;
int i=0;
char ch[] = "%d\n";
p = (int*)malloc(5*sizeof(int));
memset(p,0,5*sizeof(int));
for(i=0;i<5;i++)
{
p[i] = 100 + i;
}
for(i=0;i<5;i++)
{
printf("%d\n",p[i]);;
}
return 0;
}
汇编语言代码:
int main(int argc, char* argv[])
{
int* p=NULL;
int i=0;
char ch[] = "%d\n";
_asm
{
push 14h
call malloc
add esp,4
mov dword ptr [ebp-4],eax
push 14h
push 0
mov eax, dword ptr [ebp-4]
push eax
call memset
add esp,0Ch
mov dword ptr [ebp-8],0
jmp lab1
lab2: mov ecx,dword ptr [ebp-8]
add ecx,1
mov dword ptr [ebp-8],ecx
lab1:cmp DWORD ptr [ebp-8],5
jge labprint
mov edx,dword ptr [ebp-8]
add edx,64h
mov eax,dword ptr [ebp-8]
mov ecx,dword ptr [ebp-4]
mov dword ptr [ecx+eax*4],edx
jmp lab2
labprint:
mov DWORD ptr [ebp-8],0
jmp lab3
lab4: mov eax,dword ptr [ebp-8]
add eax,1
mov dword ptr [ebp-8],eax
lab3:cmp DWORD ptr [ebp-8],5
jge labend
mov ecx,dword ptr [ebp-8] //i
mov edx,dword ptr [ebp-4] //p
mov eax,dword ptr [edx+ecx*4]
push eax
lea ecx,dword ptr [ebp-0Ch]
push ecx
call printf
add esp,8
jmp lab4
}
labend:
return 0;
}