Files
AK2-stuff/lab2-v4/echo.s
T
2022-04-04 23:09:51 +02:00

44 lines
924 B
ArmAsm

# Jan Potocki 2022
# Definicje numerow funkcji systemowych i ich argumentow
SYSEXIT = 1
SYSREAD = 3
SYSWRITE = 4
STDIN = 0
STDOUT = 1
SYSCALL32 = 0x80
# Stale
buff_len = 1
end_char = 'Q'
.global _start
.bss
# Bufor na czytany znak
buff: .space buff_len
.text
_start:
mov $SYSREAD, %eax # Wczytanie znaku ze standardowego wejscia
mov $STDIN, %ebx # ...funkcja systemowa read
mov $buff, %ecx
mov $buff_len, %edx
int $SYSCALL32
mov $end_char, %eax # Sprawdzenie, czy wczytano znak konczacy
cmp %eax, buff
je koniec # ...jezeli tak, skok na koniec
mov $SYSWRITE, %eax # Wypisanie znaku na standardowe wyjscie
mov $STDOUT, %ebx # ...funkcja systemowa write
mov $buff, %ecx
mov $buff_len, %edx
int $SYSCALL32
jmp _start # Skok na poczatek (petla)
koniec:
mov $SYSEXIT, %eax # Funkcja systemowa exit...
mov $0, %ebx # ...kod zakonczenia 0
int $SYSCALL32