Skip to content

Commit 4bd3043

Browse files
committed
group3: print first line with newline
1 parent 0efae04 commit 4bd3043

File tree

3 files changed

+56
-27
lines changed

3 files changed

+56
-27
lines changed

group3/group3.s

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ main:
174174
push line(%rip)
175175
push %rax
176176
call write_string
177+
call write_newline
177178
pop %rax
178179
pop %rax
179180

print_int/main.s

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,6 @@
33

44
.include "../print_int/print_int.s"
55

6-
print_char: # debugging
7-
frame_enter
8-
sys_enter
9-
push %rax
10-
push %rcx
11-
push %rdx
12-
push %rsi
13-
push %rdi
14-
mov 16(%rbp), %rax
15-
movb $0x3e, -128(%rbp)
16-
movb %al, -127(%rbp)
17-
movb $0x3c, -126(%rbp)
18-
movb $0xa, -125(%rbp)
19-
lea -128(%rbp), %rsi
20-
mov $WRITE, %rax
21-
mov $STDOUT, %rdi
22-
mov $4, %rdx
23-
syscall
24-
pop %rdi
25-
pop %rsi
26-
pop %rdx
27-
pop %rcx
28-
pop %rax
29-
sys_leave
30-
frame_leave
31-
ret
32-
336
main:
347
mov $0x9084, %rax
358
shl $16, %rax

print_int/print_int.s

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,61 @@
5252
.text
5353
.globl main
5454

55+
write_char_debug:
56+
frame_enter
57+
sys_enter
58+
push %rax
59+
push %rcx
60+
push %rdx
61+
push %rsi
62+
push %rdi
63+
mov 16(%rbp), %rax
64+
movb $0x3e, -128(%rbp)
65+
movb %al, -127(%rbp)
66+
movb $0x3c, -126(%rbp)
67+
movb $0xa, -125(%rbp)
68+
lea -128(%rbp), %rsi
69+
mov $WRITE, %rax
70+
mov $STDOUT, %rdi
71+
mov $4, %rdx
72+
syscall
73+
pop %rdi
74+
pop %rsi
75+
pop %rdx
76+
pop %rcx
77+
pop %rax
78+
sys_leave
79+
frame_leave
80+
ret
81+
82+
write_char:
83+
enter
84+
push %rax
85+
push %rcx
86+
push %rdx
87+
push %rsi
88+
push %rdi
89+
mov 16(%rbp), %rax
90+
movb %al, -64(%rbp)
91+
lea -64(%rbp), %rsi
92+
mov $WRITE, %rax
93+
mov $STDOUT, %rdi
94+
mov $1, %rdx
95+
syscall
96+
pop %rdi
97+
pop %rsi
98+
pop %rdx
99+
pop %rcx
100+
pop %rax
101+
return
102+
103+
write_newline:
104+
mov %rsp, %rbp
105+
push $0xa
106+
call write_char
107+
mov %rbp, %rsp
108+
ret
109+
55110
write_string:
56111
enter
57112
mov 24(%rbp), %rsi # param: address

0 commit comments

Comments
 (0)