Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Język asemblera i koncepcja von Neumanna

Podobne prezentacje


Prezentacja na temat: "Język asemblera i koncepcja von Neumanna"— Zapis prezentacji:

1 Język asemblera i koncepcja von Neumanna
(c) Jerzy Nawrocki Wprowadzenie do informatyki Wykład 3 Język asemblera i koncepcja von Neumanna Copyright, 2003 © Jerzy R. Nawrocki Wprowadzenie do informatyki, Wykład 5

2 J.Nawrocki, TPI, Język asemblera i ..
Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku J.Nawrocki, TPI, Język asemblera i ..

3 J.Nawrocki, TPI, Język asemblera i ..
Prosty program Rejestry AX 3 BX CX 7 DX 1 SI 8 DI 2 var ax, bx, cx, dx, si, di: integer; Pascal J.Nawrocki, TPI, Język asemblera i ..

4 J.Nawrocki, TPI, Język asemblera i ..
Prosty program Instrukcja p := p + z Pascal ADD p, z ax := ax + bx + 2 add ax, bx add ax, 2 J.Nawrocki, TPI, Język asemblera i ..

5 Struktura najprostszego programu
Prosty program Struktura najprostszego programu Czasami najwięcej rzucają cienia właśnie wyjaśnienia. Dlaczego tak? code segment assume cs: code start: instrukcje code ends end start J.Nawrocki, TPI, Język asemblera i ..

6 J.Nawrocki, TPI, Język asemblera i ..
Prosty program Przykład programu ax := ax + bx + cx prog segment assume cs: prog start: add ax, bx add ax, cx int 3 prog ends end start Koniec pracy J.Nawrocki, TPI, Język asemblera i ..

7 Prosty program Kompilacja – pierwszy krok
Zapisz program w pliku prog.asm J.Nawrocki, TPI, Język asemblera i ..

8 Uproszczony schemat kompilacji J.Nawrocki, TPI, Język asemblera i ..
Prosty program Uproszczony schemat kompilacji prog.obj MASM LINK prog.exe prog.asm prog.lst J.Nawrocki, TPI, Język asemblera i ..

9 J.Nawrocki, TPI, Język asemblera i ..
Prosty program Kompilacja - MASM Polecenie Błędy Ostrzeżenia J.Nawrocki, TPI, Język asemblera i ..

10 Kompilacja – Listing kompilacji J.Nawrocki, TPI, Język asemblera i ..
Prosty program Kompilacja – Listing kompilacji prog.lst Numer wiersza Adres względny Tekst programu Kod przekładu J.Nawrocki, TPI, Język asemblera i ..

11 Nieistotne ostrzeżenie J.Nawrocki, TPI, Język asemblera i ..
Prosty program Kompilacja - LINK Polecenie Nieistotne ostrzeżenie J.Nawrocki, TPI, Język asemblera i ..

12 J.Nawrocki, TPI, Język asemblera i ..
Prosty program Uruchomienie - DEBUG J.Nawrocki, TPI, Język asemblera i ..

13 J.Nawrocki, TPI, Język asemblera i ..
Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku J.Nawrocki, TPI, Język asemblera i ..

14 Najważniejsze komendy J.Nawrocki, TPI, Język asemblera i ..
DEBUG Najważniejsze komendy R rejestr (Register) G (Go) Q (Quit) J.Nawrocki, TPI, Język asemblera i ..

15 Tekst programu raz jeszcze
prog segment assume cs: prog start: add ax, bx add ax, cx int 3 prog ends end start J.Nawrocki, TPI, Język asemblera i ..

16 J.Nawrocki, TPI, Język asemblera i ..
DEBUG - przykład sesji - rax AX 0000 : 1 - rbx BX 0000 2 : Wynik - 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 J.Nawrocki, TPI, Język asemblera i ..

17 J.Nawrocki, TPI, Język asemblera i ..
DEBUG - przykład sesji MS DOS DEBUG MS DOS J.Nawrocki, TPI, Język asemblera i ..

18 Częściowe podsumowanie
Hura! Ale to proste! Umiemy już: napisać program, skompilować go, uruchomić. J.Nawrocki, TPI, Język asemblera i ..

19 J.Nawrocki, TPI, Język asemblera i ..
DEBUG - inna sesja Dziwne! = 18 czy 12? J.Nawrocki, TPI, Język asemblera i ..

20 J.Nawrocki, TPI, Język asemblera i ..
Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku J.Nawrocki, TPI, Język asemblera i ..

21 Arytmetyka heksadecymalna
System szesnastkowy 12316 1*162 + 2* 161 + 3* 160 = = 29110 1216 = 1* *160 = = 1810 J.Nawrocki, TPI, Język asemblera i ..

22 Arytmetyka heksadecymalna
Dodawanie metodą pośrednią 28F16 + 37F16 + 155010 11 2* * 65510 3* * 89510 60E16 6* * J.Nawrocki, TPI, Język asemblera i ..

23 Arytmetyka heksadecymalna
Dodawanie metodą bezpośrednią F16 + F16 = = 3010 3010 : 1610 = 1 reszta 1410= 1 reszta E16 1 28F + 37F E J.Nawrocki, TPI, Język asemblera i ..

24 Arytmetyka heksadecymalna
Dodawanie metodą bezpośrednią = = 1610 1610 : 1610 = 1 reszta 010= 1 reszta 016 11 28F + 37F 0E J.Nawrocki, TPI, Język asemblera i ..

25 Arytmetyka heksadecymalna
Dodawanie metodą bezpośrednią = = 610 610 : 1610 = 0 reszta 610= 0 reszta 616 011 28F + 37F 60E J.Nawrocki, TPI, Język asemblera i ..

26 Arytmetyka heksadecymalna
ax:= ax + bx + cx 011 28F + 37F 60E J.Nawrocki, TPI, Język asemblera i ..

27 Arytmetyka heksadecymalna
ax := bx + cx prog segment assume cs: prog start: mov ax, bx add ax, cx int 3 prog ends end start MOV c, z move c := z Pascal J.Nawrocki, TPI, Język asemblera i ..

28 Arytmetyka heksadecymalna
ax:= bx + cx 011 28F + 37F 60E J.Nawrocki, TPI, Język asemblera i ..

29 Arytmetyka heksadecymalna
ax := bx - cx prog segment assume cs: prog start: mov ax, bx sub ax, cx int 3 prog ends end start subtract SUB c, z c := c - z Pascal J.Nawrocki, TPI, Język asemblera i ..

30 J.Nawrocki, TPI, Język asemblera i ..
Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku J.Nawrocki, TPI, Język asemblera i ..

31 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne Uzupełnienie do 2 b jeśli b  0 2n - |b| jeśli b < 0 kod (b) = n bitów daje przedział: [-2n-1 , 2n-1 - 1] J.Nawrocki, TPI, Język asemblera i ..

32 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne 4 bity kod(b) 15 b 7 J.Nawrocki, TPI, Język asemblera i ..

33 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne 3 bity Liczba Kod 23 - |b| J.Nawrocki, TPI, Język asemblera i ..

34 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne 16 bitów FFF FFFF 1111 FFFF + 2 0001 -1 + 2 1 = J.Nawrocki, TPI, Język asemblera i ..

35 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne ax:= bx + cx 1111 FFFF + 2 0001 J.Nawrocki, TPI, Język asemblera i ..

36 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne Zmiana znaku 5  -5 -7  7 0  F 1  E 2  D 3  C 4  B 5  A 6  9 7  8 F - cyfra 1. Zaneguj bity (0 1, 1 0) 2. Dodaj 1 FFFF = -1 0000 0001 J.Nawrocki, TPI, Język asemblera i ..

37 J.Nawrocki, TPI, Język asemblera i ..
Liczby ujemne ax := - ax prog segment assume cs: prog start: neg ax int 3 prog ends end start NEG c negation c := -c Pascal J.Nawrocki, TPI, Język asemblera i ..

38 J.Nawrocki, TPI, Język asemblera i ..
Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku J.Nawrocki, TPI, Język asemblera i ..

39 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) J.Nawrocki, TPI, Język asemblera i ..

40 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. J.Nawrocki, TPI, Język asemblera i ..

41 Koncepcja von Neumanna
Przykładowe kody rozkazów Kod Rozkaz Przykład 1 MovRegCon(R, C) R1  1 2 MovRegReg(Rd, Rs) R2  R1 3 AddRegReg(Rd, Rs) R1  R1+R2 4 SubRegReg(Rd, Rs) R2  R2–R1 5 NegReg(R) R2  - R2 6 Int(C) J.Nawrocki, TPI, Język asemblera i ..

42 Koncepcja von Neumanna
ax := bx - cx 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 J.Nawrocki, TPI, Język asemblera i ..

43 Koncepcja von Neumanna
ax := bx - cx 10 2 MovRegReg ax ax bx cx 1 bx 5 3 13 4 SubRegReg ax 10 2 cx 16 6 Int Licznik rozkazów 3 1. Ściągnięcie rozkazu z pamięci 18 J.Nawrocki, TPI, Język asemblera i ..

44 Koncepcja von Neumanna
ax := bx - cx 10 2 MovRegReg ax ax bx cx 1 bx 5 3 13 4 SubRegReg ax 5 13 2 cx 16 6 Int Licznik rozkazów 3 1. Ściągnięcie rozkazu z pamięci 18 J.Nawrocki, TPI, Język asemblera i ..

45 J.Nawrocki, TPI, Język asemblera i ..
Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku J.Nawrocki, TPI, Język asemblera i ..

46 J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skoki warunkowe SF ZF . . . PSW if c = z then begin . . . end; Pascal compare CMP c, z JNE e . . . e: jump if not equal J.Nawrocki, TPI, Język asemblera i ..

47 J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skoki warunkowe Pascal if c <> z then ... jump if equal JE e jump if not less JNL e if c < z then ... jump if greater JG e if c <= z then ... jump if not greater JNG e if c > z then ... jump if less JL e if c >= z then ... J.Nawrocki, TPI, Język asemblera i ..

48 Skoki warunkowe - przykład J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skoki warunkowe - przykład ax := min {bx, cx} mov ax, bx cmp ax, cx jle ok mov ax, cx ok: int 3 ax:= bx; if ax > cx then ax:= cx J.Nawrocki, TPI, Język asemblera i ..

49 J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skok bezwarunkowy while c = z do begin . . . end; Pascal pocz: CMP c, z JNE kon . . . JMP pocz kon: c = z . . . Tak Nie jump J.Nawrocki, TPI, Język asemblera i ..

50 J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skok bezwarunkowy if c = z then ins1 else ins2 Pascal CMP c, z JNE els ins1 JMP kon els: ins2 kon: c = z ins1 Tak Nie ins2 J.Nawrocki, TPI, Język asemblera i ..

51 Skok bezwarunkowy - przykład J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skok bezwarunkowy - przykład ax := nwd {ax, bx} ax  bx ax > bx ax:=ax-bx bx:=bx-ax Tak Nie while ax <> bx do begin if ax > bx then ax:= ax - bx else bx:= bx - ax end; J.Nawrocki, TPI, Język asemblera i ..

52 Skok bezwarunkowy - przykład J.Nawrocki, TPI, Język asemblera i ..
Rozkazy skoku Skok bezwarunkowy - przykład 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 do begin if ax > bx then ax:= ax - bx else bx:= bx - ax end; J.Nawrocki, TPI, Język asemblera i ..

53 J.Nawrocki, TPI, Język asemblera i ..
Podsumowanie Rejestr - rodzaj zmiennej DEBUG - interfejs z użytkownikiem Reprezentacja heksadecymalna Pisanie programów w języku asemblera jest trudniejsze niż w języku wysokiego poziomu Wreszcie! J.Nawrocki, TPI, Język asemblera i ..

54 J.Nawrocki, TPI, Język asemblera i ..
Literatura J.Nawrocki, Programowanie komputerów IBM PC w języku asemblera metodą systematyczną, WPP, 1991. J.Nawrocki, TPI, Język asemblera i ..


Pobierz ppt "Język asemblera i koncepcja von Neumanna"

Podobne prezentacje


Reklamy Google