Quellcode durchsuchen

Wydanie R2022.04.1

Jan Potocki vor 3 Jahren
Ursprung
Commit
6fee8ccd48
2 geänderte Dateien mit 53 neuen und 0 gelöschten Zeilen
  1. 10
    0
      lab2-v4/Makefile
  2. 43
    0
      lab2-v4/echo.s

+ 10
- 0
lab2-v4/Makefile Datei anzeigen

@@ -0,0 +1,10 @@
1
+all: echo
2
+
3
+echo: echo.o
4
+	ld -melf_i386 echo.o -o echo
5
+
6
+echo.o: echo.s
7
+	as --32 echo.s -o echo.o
8
+
9
+clean:
10
+	rm echo echo.o

+ 43
- 0
lab2-v4/echo.s Datei anzeigen

@@ -0,0 +1,43 @@
1
+# Jan Potocki 2022
2
+
3
+# Definicje numerow funkcji systemowych i ich argumentow
4
+SYSEXIT = 1
5
+SYSREAD = 3
6
+SYSWRITE = 4
7
+STDIN = 0
8
+STDOUT = 1
9
+SYSCALL32 = 0x80
10
+
11
+# Stale
12
+buff_len = 1
13
+end_char = 'Q'
14
+
15
+.global _start
16
+
17
+.bss
18
+# Bufor na czytany znak
19
+buff: .space buff_len
20
+
21
+.text
22
+_start:
23
+mov $SYSREAD, %eax      # Wczytanie znaku ze standardowego wejscia
24
+mov $STDIN, %ebx        # ...funkcja systemowa read
25
+mov $buff, %ecx
26
+mov $buff_len, %edx
27
+int $SYSCALL32
28
+
29
+mov $end_char, %eax     # Sprawdzenie, czy wczytano znak konczacy
30
+cmp %eax, buff
31
+je koniec               # ...jezeli tak, skok na koniec
32
+
33
+mov $SYSWRITE, %eax     # Wypisanie znaku na standardowe wyjscie
34
+mov $STDOUT, %ebx       # ...funkcja systemowa write
35
+mov $buff, %ecx
36
+mov $buff_len, %edx
37
+int $SYSCALL32
38
+jmp _start              # Skok na poczatek (petla)
39
+
40
+koniec:
41
+mov $SYSEXIT, %eax      # Funkcja systemowa exit...
42
+mov $0, %ebx            # ...kod zakonczenia 0
43
+int $SYSCALL32

Laden…
Abbrechen
Speichern