-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtoDecimal.asm
91 lines (65 loc) · 853 Bytes
/
toDecimal.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
extern printf
extern atoi
SECTION .data
msg: db "Ans : %d",10,0
SECTION .bss
n RESB 64
ans RESB 64
multi RESB 64
SECTION .text
global main
main:
mov rcx,rdi
mov r8,8
mov rdx,qword[rsi+r8]
push rdx
push rcx
push rsi
push r8
mov rdi,rdx
call atoi
mov [n],rax
pop r8
pop rsi
pop rcx
pop rdx
mov rdx,1
mov [multi],rdx
mov rdx,0
mov [ans],rdx
mov rax,[n]
loop:
mov rax,[n]
cmp rax,0
je end
mov rdx,0
mov r9,10
div r9
mov [n],rax
mov rax,rdx
mov r9,[multi]
mul r9
mov r9,[ans]
add rax,r9
mov [ans],rax
mov rax,[multi]
mov r9,2
mul r9
mov [multi],rax
jmp loop
end:
push rdx
push rcx
push rsi
push r8
mov rdi,msg
mov rsi,[ans]
mov rax,0
call printf
pop r8
pop rsi
pop rcx
pop rdx
mov rax,1
mov eax,0
int 80h