-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.s
More file actions
104 lines (104 loc) · 1.61 KB
/
test.s
File metadata and controls
104 lines (104 loc) · 1.61 KB
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
92
93
94
95
96
97
98
99
100
101
102
103
104
global main
section .text
main:
call _main
mov rdi, rax
mov rax, 60
syscall
_print:
push rbp
mov rbp, rsp
sub rsp, 64
mov rax, 1
mov -8[rbp], rdi
mov edi, 1
mov rdx, 1
lea rsi, -8[rbp]
syscall
mov r8, 4
mov rax, r8
mov rsp, rbp
pop rbp
ret
_main:
push rbp
mov rbp, rsp
sub rsp, 64
mov r8, 0
mov DWORD -4[rbp], r8d
mov r8, 0
mov DWORD -8[rbp], r8d
jmp L0
L0:
mov edi, DWORD -4[rbp]
add rdi, 65
mov r8d, DWORD -4[rbp]
mov r9, 1
add r8, r9
mov DWORD -4[rbp], r8d
call _print
mov r8, rax
mov r8d, DWORD -8[rbp]
mov r9, 5
mov rax, r8
mov rbx, r9
div rbx
mov r9, rdx
mov r8, 0
cmp r9, r8
setz al
movzx r8, al
cmp r8, 0
je L2
mov rdi, 10
call _print
mov r9, rax
jmp L2
L2:
mov r8d, DWORD -8[rbp]
mov r9, 1
add r8, r9
mov DWORD -8[rbp], r8d
mov r8d, DWORD -8[rbp]
mov r9, 30
cmp r8, r9
setl al
movzx r9, al
cmp r9, 0
jne L0
je L1
L1:
mov rdi, 'H'
call _print
mov r8, rax
mov rdi, 'E'
call _print
mov r8, rax
mov rdi, 'L'
call _print
mov r8, rax
mov rdi, 'L'
call _print
mov r8, rax
mov rdi, 'O'
call _print
mov r8, rax
mov rdi, '\n'
call _print
mov r8, rax
mov rax, 1
mov -8[rbp], 65
mov -7[rbp], 66
mov -6[rbp], 67
mov edi, 1
mov rdx, 3
lea rsi, -8[rbp]
syscall
mov rdi, 10
call _print
mov r8, rax
mov r8d, DWORD -4[rbp]
mov rax, r8
mov rsp, rbp
pop rbp
ret