33 lines
469 B
ArmAsm
33 lines
469 B
ArmAsm
.text
|
|
.global _start
|
|
_start:
|
|
mov $buf, %rsi
|
|
readloop:
|
|
## Read character in.
|
|
mov $0, %rax
|
|
mov $0, %rdi
|
|
mov $1, %rdx
|
|
syscall
|
|
|
|
## Check return value; exit if not equal to one.
|
|
cmp $1, %rax
|
|
jne exit
|
|
|
|
## Move read character into RAX and increment buffer position.
|
|
movzx (%rsi), %rax
|
|
inc %rsi
|
|
|
|
## Loop if read character wasn't a line feed.
|
|
cmp $0x0a, %rax
|
|
jne readloop
|
|
|
|
exit:
|
|
## Exit with code 0
|
|
mov $60, %rax
|
|
mov $0, %rdi
|
|
syscall
|
|
|
|
.bss
|
|
buf:
|
|
.skip 100
|