Write an assembly language function int toKilometers int mil
Write an assembly language function int toKilometers (int miles) that takes distance as miles and returns the distance in kilometers.
Solution
.LC0:
.string \"Enter miles\"
.LC1:
.string \"%d\"
.LC3:
.string \"%d miles=%d kilometers\"
main:
push rbp
mov rbp, rsp
sub rsp, 16
mov edi, OFFSET FLAT:.LC0
mov eax, 0
call printf
lea rax, [rbp-8]
mov rsi, rax
mov edi, OFFSET FLAT:.LC1
mov eax, 0
call scanf
mov eax, DWORD PTR [rbp-8]
cvtsi2sd xmm0, eax
movsd xmm1, QWORD PTR .LC2[rip]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov DWORD PTR [rbp-4], eax
mov eax, DWORD PTR [rbp-8]
mov edx, DWORD PTR [rbp-4]
mov esi, eax
mov edi, OFFSET FLAT:.LC3
mov eax, 0
call printf
mov eax, 0
leave
ret
.LC2:
.long 3229815407
.long 1073324490
