...
tipeVariabel2.c
tipeData.asm
tipeVariabel2.c
#include <stdio.h>
extern int a, b;
extern int c;
extern float f;
int main(){
int a, b;
int c;
float f;
a = 10;
b = 20;
c = a + b;
printf("Value of c: %d\n", c);
f = 70.0/3.0;
printf("Value of f: %f\n", f);
return 0;
}
tipeData.asm
; => ASM
; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv, const char **envp)
public main
main proc near
var_10= dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
var_4= dword ptr -4
push rbp
mov rbp, rsp
sub rsp, 10h
mov [rbp+var_10], 0Ah
mov [rbp+var_C], 14h
mov eax, [rbp+var_C]
mov edx, [rbp+var_10]
add eax, edx
mov [rbp+var_8], eax
mov eax, [rbp+var_8]
mov esi, eax
mov edi, offset format ; "Value of c: %d\n"
mov eax, 0
call _printf
mov eax, cs:dword_400634
mov [rbp+var_4], eax
movss xmm0, [rbp+var_4]
cvtps2pd xmm0, xmm0
mov edi, offset aValueOfFF ; "Value of f: %f\n"
mov eax, 1
call _printf
mov eax, 0
leave
retn
main endp
; => ASM 2 C
; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv, const char **envp)
public main
main proc near
var_10= dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
var_4= dword ptr -4
; int main(){
push rbp
mov rbp, rsp
sub rsp, 10h ; 10
; a = 16
mov [rbp+var_10], 0Ah ; 16
; b = 20
mov [rbp+var_C], 14h ; 20
; c = a + b
mov eax, [rbp+var_C]
mov edx, [rbp+var_10]
add eax, edx
mov [rbp+var_8], eax
; printf("Value of c: %d\n", c)
mov eax, [rbp+var_8]
mov esi, eax
mov edi, offset format ; "Value of c: %d\n"
mov eax, 0
call _printf
; f =
mov eax, cs:dword_400634 ; extern f
mov [rbp+var_4], eax
;
movss xmm0, [rbp+var_4] ; ?
cvtps2pd xmm0, xmm0 ; ?
; print("Value of f: %f\n", f)
mov edi, offset aValueOfFF ; "Value of f: %f\n"
mov eax, 1
call _printf
; return 0
mov eax, 0
leave
retn
main endp
Tidak ada komentar:
Posting Komentar