Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWłodzimierz Mikołajczyk Został zmieniony 9 lat temu
1
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5 Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/wsb-wdi/
2
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
3
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
4
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Rejestry int ax, bx, cx, dx, si, di; AX 3 BX 0 CX 7 DX 1 SI 8 DI 2
5
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Instrukcja p = p + z; ADD p, z ax = ax + bx + 2; add ax, bx add ax, 2
6
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Struktura najprostszego programu code segment assume cs: code start: instrukcje code ends end start Dlaczego tak? Czasami najwięcej rzucają cienia właśnie wyjaśnienia.
7
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Przykład programu prog segment assume cs: prog start: add ax, bx add ax, cx int 3 prog ends end start ax = ax + bx + cx; Koniec pracy
8
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja – pierwszy krok Zapisz program w pliku prog.asm
9
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exe prog.asmprog.lst
10
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exe prog.asmprog.lst
11
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - MASM Polecenie
12
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - MASM Polecenie Błędy Ostrzeżenia
13
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exeprog.asm prog.lst
14
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja – Listing kompilacji Numer wiersza Tekst programu Kod przekładu Adres względny prog.lst
15
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exeprog.asm prog.lst
16
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - LINK Polecenie
17
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - LINK Nieistotne ostrzeżenie Polecenie
18
J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uruchomienie - DEBUG
19
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
20
J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG Najważniejsze komendy R rejestr (Register) G (Go) Q (Quit)
21
J.Nawrocki, Asembler i koncepcja von Neumanna Tekst programu raz jeszcze prog segment assume cs: prog start: add ax, bx add ax, cx int 3 prog ends end start
22
J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG - przykład sesji Wynik - rax AX 0000 1 - rbx BX 0000 2 - rcx CX 0005 3 : : : - g AX=0006 BX=0002 CX=0003 DX=0000 SP=0000 DS=198C ES=198C SS=199C CS=199C IP=0004 199C:0004 CC INT 3 - q Nast. instrukcja
23
J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG - przykład sesji DEBUG MS DOS
24
J.Nawrocki, Asembler i koncepcja von Neumanna Częściowe podsumowanie Umiemy już: napisać program, skompilować go, uruchomić. Hura! Ale to proste!
25
J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG - inna sesja 6 + 6 + 6 = 18 czy 12? Dziwne !
26
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
27
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Cyfry 0 do 9 A 10 B 11 C 12 D 13 E 14 F 15
28
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna System dziesiętny 123 10 = 100 + 20 + 3 3* 10 0 2* 10 1 +1*10 2 +
29
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna System szesnastkowy 123 16 = 256 + 32 + 3 = 291 10 3* 16 0 2* 16 1 +1*16 2 + 12 16 = 1*16 1 + 2*16 0 = 16 + 2 = 18 10
30
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna 12 16 = 18 10 Aha!
31
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą pośrednią 28F 16 + 37F 16 28F 16 + 37F 16 + + 1550 10 11 2*256 + 8*16 + 15 3*256 + 7*16 + 15 655 10 895 10 6*256 + 0*16 + 14 60E 16
32
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 28F + 37F 28F + 37F
33
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 28 F + 37 F 28 F + 37 F F 16 + F 16 = 15 10 + 15 10 = 30 10 30 10 : 16 10 = 1 reszta 14 10 = 1 reszta E 16
34
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 1 28 F + 37 F E 1 28 F + 37 F E F 16 + F 16 = 15 10 + 15 10 = 30 10 30 10 : 16 10 = 1 reszta 14 10 = 1 reszta E 16
35
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 1 2 8 F + 3 7 F E 1 2 8 F + 3 7 F E
36
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 1 2 8 F + 3 7 F E 1 2 8 F + 3 7 F E 1 + 8 16 + 7 16 = = 16 10 16 10 : 16 10 = 1 reszta 0 10 = 1 reszta 0 16
37
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 11 2 8 F + 3 7 F 0E 11 2 8 F + 3 7 F 0E 1 + 8 16 + 7 16 = = 16 10 16 10 : 16 10 = 1 reszta 0 10 = 1 reszta 0 16
38
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 11 2 8 F + 3 7 F 0E 11 2 8 F + 3 7 F 0E
39
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 11 2 8F + 3 7F 0E 11 2 8F + 3 7F 0E 1 + 2 16 + 3 16 = = 6 10 6 10 : 16 10 = 0 reszta 6 10 = 0 reszta 6 16
40
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 011 2 8F + 3 7F 60E 011 2 8F + 3 7F 60E 1 + 2 16 + 3 16 = = 6 10 6 10 : 16 10 = 0 reszta 6 10 = 0 reszta 6 16
41
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 011 2 8F + 3 7F 60E 011 2 8F + 3 7F 60E
42
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna ax= ax + bx + cx; 011 2 8F + 3 7F 60E 011 2 8F + 3 7F 60E
43
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna ax= ax + bx + cx; Nie można prościej ?
44
J.Nawrocki, Asembler i koncepcja von Neumanna ax = bx + cx; Arytmetyka heksadecymalna c = z; MOV c, z move prog segment assume cs: prog start: mov ax, bx add ax, cx int 3 prog ends end start
45
J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna ax= bx + cx; 011 2 8F + 3 7F 60E 011 2 8F + 3 7F 60E
46
J.Nawrocki, Asembler i koncepcja von Neumanna ax = bx – cx; Arytmetyka heksadecymalna c = c – z; SUB c, z subtract prog segment assume cs: prog start: mov ax, bx sub ax, cx int 3 prog ends end start
47
J.Nawrocki, Asembler i koncepcja von Neumanna ax = bx – cx; Arytmetyka heksadecymalna prog segment assume cs: prog start: sub bx, cx mov ax, bx int 3 prog ends end start A czy można tak?
48
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
49
J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne Uzupełnienie do 2 b jeśli b 0 2 n - |b| jeśli b < 0 kod (b) = n bitów daje przedział: [-2 n-1, 2 n-1 - 1]
50
J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne 4 bity 15 kod(b) b 7
51
J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne 3 bity 3 3 3 2 2 2 1 1 1 0 0 0 7 -1 7 6 -2 6 5 -3 5 4 -4 4 Liczba Kod 2 3 - |b|
52
J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne 16 bitów 7FFF 32767 7FFF......... 1 1 1 0 0 0 FFFF -1 FFFF......... 8001 -32767 8001 8000 -32768 8000 1111 FFFF 2 + 2 0001 1111 FFFF 2 + 2 0001 + 2 1 + 2 1 =
53
J.Nawrocki, Asembler i koncepcja von Neumanna 1111 FFFF 2 + 2 0001 1111 FFFF 2 + 2 0001 Liczby ujemne ax= bx + cx;
54
J.Nawrocki, Asembler i koncepcja von Neumanna Zmiana znaku Liczby ujemne 1. Zaneguj bity (0 1, 1 0) 2. Dodaj 1 0 F 1 E 2 D 3 C 4 B 5 A 6 9 7 8 FFFF = -1 0000 0001 5 -5 -7 7 F - cyfra
55
J.Nawrocki, Asembler i koncepcja von Neumanna Zmiana znaku Liczby ujemne 1. Zaneguj bity (0 1, 1 0) 2. Dodaj 1 0 F 1 E 2 D 3 C 4 B 5 A 6 9 7 8 0002 = -2 FFFD FFFE F - cyfra
56
J.Nawrocki, Asembler i koncepcja von Neumanna ax = - ax; Liczby ujemne c = -c; NEG c negation prog segment assume cs: prog start: neg ax int 3 prog ends end start
57
J.Nawrocki, Asembler i koncepcja von Neumanna ax = - ax; Liczby ujemne
58
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
59
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna John Luis von Neumann Ur.: 28.12.1903 w Budapeszcie Zm.: 8.07.1957 w Waszyngtonie 1930: Princeton University 1933: Institute for Advanced Studies
60
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna Specjalizowane kalkulatory (obliczanie toru pocisku) a uniwersalne komputery Jak zrealizować uniwersalność: program jako łącznice kablowe program jako dane przechowywane w pamięci (koncepcja von Neumanna)
61
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna Dwie fazy: 1. Ściąganie rozkazu i jego dekodowanie 2. Wykonanie rozkazu Specjalny rejestr (licznik rozkazów) pokazuje następny rozkaz do wykonania.
62
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna Kod Rozkaz Przykład 1 MovRegCon(R, C) 1 1 1 R1 1 2 MovRegReg(Rd, Rs) 2 2 1 R2 R1 3 AddRegReg(Rd, Rs) 3 1 2 R1 R1+R2 4 SubRegReg(Rd, Rs) 4 2 1 R2 R2–R1 5 NegReg(R) 5 2 R2 - R2 6 Int(C) 6 3 Przykładowe kody rozkazów
63
J.Nawrocki, Asembler i koncepcja von Neumanna ax = bx – cx; Koncepcja von Neumanna – tu skończyłem prog segment assume cs: prog start: mov ax, bx sub ax, cx int 3 prog ends end start 2 0 1 4 0 2 6 3
64
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 ax cx axbx 50 cx 3 ax = bx – cx; 10 Licznik rozkazów
65
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 axbx 10 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 1. Ściągnięcie rozkazu z pamięci
66
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 axbx 13 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 1a. Ustawienie licznika na następny rozkaz
67
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 axbx 13 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 5 2. Wykonanie rozkazu
68
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 axbx 13 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 5 1. Ściągnięcie rozkazu z pamięci
69
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 axbx 16 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 5 1a. Ustawienie licznika na następny rozkaz
70
J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 2 0 1 MovRegReg ax bx 10 4 0 2 13 6 SubRegReg 3 16Int 18 axbx 16 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 5 2 2. Wykonanie rozkazu
71
J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku
72
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe Rozkazy skoku if (c > z) {... } if (c > z) {... } CMP c, z JLE e... e: CoMPare Jump if Less or Equal SFZF... PSW
73
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; ax = cx; ax = bx; ax = cx;
74
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
75
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; } axbx 5 cx 3
76
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; } axbx 55 cx 3
77
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; } axbx 55 cx 3
78
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; } axbx 55 cx 3 3
79
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; } axbx 55 cx 3 3
80
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
81
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
82
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
83
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
84
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx ok: int 3 ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
85
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok... ok: int 3 ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
86
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok... ok: int 3 ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
87
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
88
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 ax = bx; if (ax > cx) } ax = cx; } ax = bx; if (ax > cx) } ax = cx; }
89
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 axbx 5 cx 3
90
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 axbx 5 cx 3 5
91
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 axbx 5 cx 3 5
92
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx ax, cx cmp ax, cx jle ok mov ax, cx ok: int 3 axbx 5 cx 3 5 Skocz jeśli ax <= cx
93
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 axbx 5 cx 3 5 3
94
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe - przykład Rozkazy skoku ax = min {bx, cx}; mov ax, bx cmp ax, cx jle ok mov ax, cx int 3 ok: int 3 axbx 5 cx 3 5 3
95
J.Nawrocki, Asembler i koncepcja von Neumanna Skoki warunkowe Rozkazy skoku JE e jump if equal if (c != z)... JNL e jump if not less if (c < z)... JG e jump if greater if (c <= z)... JNE e jump if not greater if (c == z)... JL e jump if less if (c >= z)...
96
J.Nawrocki, Asembler i koncepcja von Neumanna Skok bezwarunkowy Rozkazy skoku while (c == z) {... } while (c == z) {... } pocz: CMP c, z JNE kon... JMP pocz kon: c = z... Tak Nie jump
97
J.Nawrocki, Asembler i koncepcja von Neumanna Skok bezwarunkowy Rozkazy skoku if (c > z) { ins1 } else { ins2 } if (c > z) { ins1 } else { ins2 } CMP c, z JNG els ins1 JMP kon els: ins2 kon: c = z ins1 TakNie ins2
98
J.Nawrocki, Asembler i koncepcja von Neumanna Skok bezwarunkowy - przykład Rozkazy skoku ax = nwd (ax, bx); while (ax != bx) { if (ax > bx){ ax-= bx; }else{ bx-= ax; } while (ax != bx) { if (ax > bx){ ax-= bx; }else{ bx-= ax; } } ax bx ax > bx ax=ax-bxbx=bx-ax Tak Nie
99
J.Nawrocki, Asembler i koncepcja von Neumanna Skok bezwarunkowy - przykład Rozkazy skoku ax = nwd (ax, bx); whi: cmp ax, bx je kon jle els sub ax, bx jmp od els: sub bx, ax od: jmp whi kon: int 3 while (ax != bx) { if (ax > bx){ ax-= bx; }else{ bx-= ax; } while (ax != bx) { if (ax > bx){ ax-= bx; }else{ bx-= ax; }
100
J.Nawrocki, Asembler i koncepcja von Neumanna Podsumowanie Rejestr - rodzaj zmiennej DEBUG - interfejs z użytkownikiem Reprezentacja heksadecymalna Podstawowe instrukcje arytmetyki liczb całkowitych Instrukcje skoku Pisanie programów w języku asemblera jest trudniejsze niż w języku wysokiego poziomu Wreszcie!
101
J.Nawrocki, Asembler i koncepcja von Neumanna Literatura J.Nawrocki, Programowanie komputerów IBM PC w języku asemblera metodą systematyczną, WPP, 1991.
102
J.Nawrocki, Asembler i koncepcja von Neumanna Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Zbyt wolno czy zbyt szybko? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak?
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.