2 커밋

작성자 SHA1 메시지 날짜
  Jan Potocki f2242fdb42 Aktualizacja README (semestr letni 2022) 3 년 전
  Jan Potocki 6fee8ccd48 Wydanie R2022.04.1 3 년 전
3개의 변경된 파일55개의 추가작업 그리고 2개의 파일을 삭제
  1. 2
    2
      README.md
  2. 10
    0
      lab2-v4/Makefile
  3. 43
    0
      lab2-v4/echo.s

+ 2
- 2
README.md 파일 보기

@@ -1,12 +1,12 @@
1 1
 # AK2 - lab 2019+
2
-Trochę różnych programów napisanych przy pomocy z rozwiązywaniem zadań od mgr Aleksandry Postawki, mgra Tomasza Serafina, dra Tadeusza Tomczaka (i innych) na zajęciach laboratoryjnych z Architektury komputerów 2, w formie materiałów dydaktycznych – kod szczegółowo opisany w komentarzach.  
2
+Trochę różnych programów napisanych przy pomocy z rozwiązywaniem zadań od mgr Aleksandry Postawki, mgra Tomasza Serafina, prof. Tadeusza Tomczaka (i innych) na zajęciach laboratoryjnych z Architektury komputerów 2, w formie materiałów dydaktycznych – kod szczegółowo opisany w komentarzach.
3 3
 Repozytorium powstało w 2019 i będzie na bieżąco aktualizowane.
4 4
 
5 5
 Przydatne linki:  
6 6
 * Intel 64 and IA-32 Architectures Software Developer’s Manual (Combined Volumes) – opis architektury procesorów x86 i spis wszystkich rozkazów asemblera:  
7 7
 https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf
8 8
 * Linux System Call Table – spis funkcji systemowych Linuxa dla 32- i 64-bitowej wersji x86 w przejrzystej formie:  
9
-https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md
9
+https://chromium.googlesource.com/chromiumos/docs/+/HEAD/constants/syscalls.md
10 10
 * System V Application Binary Interface AMD64 – opis 64-bitowej konwencji wywołań x86 używanej w systemach z rodziny Linux:  
11 11
 https://www.uclibc.org/docs/psABI-x86_64.pdf
12 12
 * System V Application Binary Interface i386 – opis 32-bitowej konwencji wywołań x86 używanej w systemach z rodziny Linux:  

+ 10
- 0
lab2-v4/Makefile 파일 보기

@@ -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 파일 보기

@@ -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

Loading…
취소
저장