Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.

Slides:



Advertisements
Podobne prezentacje
Systemy czasu rzeczywistego
Advertisements

Wprowadzenie do informatyki Wykład 6
Informatyka jako dziedzina wiedzy
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Operacje zmiennoprzecinkowe
Wykład 3: Jak działa typowy mikroprocesor?
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
CPU.
B. znaki alfabetu D. obrazy
Systemy czasu rzeczywistego Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Informatyka jako dziedzina wiedzy Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Rekursja Teoretyczne podstawy informatyki Wykład 5
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wprowadzenie do informatyki Wykład 5
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Budowa komputera Wstęp do informatyki Wykład 15
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Asembler i koncepcja von Neumanna
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Język asemblera i koncepcja von Neumanna
Programowanie imperatywne i język C
Języki formalne i gramatyki
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
Od algebry Boole’a do komputera
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Wprowadzenie do informatyki Wykład 5
Wykład 2: Jak działa typowy mikroprocesor? Budowa procesora rodziny Intel80x86 Architektury CISC i RISC Instrukcje skoków warunkowych Stos Instrukcje operujące.
Wprowadzenie do programowania w języku Turbo Pascal
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Instrukcja warunkowa i wyboru
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Ogólna struktura programu w TP
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Od algebry Boole’a do komputera Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie.
Procesy współbieżne Copyright, 2006 © Jerzy R. Nawrocki Wstęp do informatyki Wykład.
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Procesy współbieżne Copyright, 2007 © Jerzy R. Nawrocki Wstęp do informatyki Wykład.
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Zapis prezentacji:

Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5

J.Nawrocki, Wprowadzenie.., Wykład 5 Plan wykładu Prosty program Kompilacja i uruchomienie DEBUG Arytmetyka heksadecymalna Liczby ujemne Najważniejsze rozkazy

J.Nawrocki, Wprowadzenie.., Wykład 5 Prosty program Rejestry var ax, bx, cx, dx, si, di: integer; var ax, bx, cx, dx, si, di: integer; AX 3 BX 0 CX 7 DX 1 SI 8 DI 2

J.Nawrocki, Wprowadzenie.., Wykład 5 Prosty program Instrukcja p := p + z ADD p, z ax := ax + bx + 2 add ax, bx add ax, 2

J.Nawrocki, Wprowadzenie.., Wykład 5 Prosty program Struktura programu nazwa_seg SEGMENT ASSUME CS: nazwa_seg etyk_pocz: instrukcje nazwa_seg ENDS END etyk_pocz Program: zbiór modułów Moduł: zbiór segmentów Koniec modułu

J.Nawrocki, Wprowadzenie.., Wykład 5 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

J.Nawrocki, Wprowadzenie.., Wykład 5 Plan wykładu Prosty program Kompilacja i uruchomienie DEBUG Arytmetyka heksadecymalna Liczby ujemne Najważniejsze rozkazy

J.Nawrocki, Wprowadzenie.., Wykład 5 Kompilacja i uruchomienie Przykład programu Zapisz program w pliku plik.asm masm pliklink plik debug plik.exe

J.Nawrocki, Wprowadzenie.., Wykład 5 Plan wykładu Prosty program Kompilacja i uruchomienie DEBUG Arytmetyka heksadecymalna Liczby ujemne Najważniejsze rozkazy

J.Nawrocki, Wprowadzenie.., Wykład 5 DEBUG Najważniejsze komendy R rejestr (Register) G (Go) Q (Quit)

J.Nawrocki, Wprowadzenie.., Wykład 5 DEBUG - przykład sesji Wynik - rax AX rbx BX rcx AX : : : - g AX=0006 BX=0002 CX=0003 DX=0000 SP=0000 DS=1A8D ES=1A8D SS=1A9D CS=1A9D IP=0004 1A9D:0004 CC INT 3 - q

J.Nawrocki, Wprowadzenie.., Wykład 5 DEBUG - inna sesja - rax AX rbx BX rcx AX : : : - g AX=0012 BX=0002 CX=0003 DX=0000 SP=0000 DS=1A8D ES=1A8D SS=1A9D CS=1A9D IP=0004 1A9D:0004 CC INT 3 - q 12 czy 18?

J.Nawrocki, Wprowadzenie.., Wykład 5 Plan wykładu Prosty program Kompilacja i uruchomienie DEBUG Arytmetyka heksadecymalna Liczby ujemne Najważniejsze rozkazy

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Cyfry 0 do 9 A 10 B 11 C 12 D 13 E 14 F 15

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna System szesnastkowy = 1* * * 16 0 = = = = 1* *16 0 = = 18 10

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna - rax AX rbx BX rcx AX : : : -g AX=0012 BX=0002 CX=0003 DX=0000 SP=0000 DS=1A8D ES=1A8D SS=1A9D CS=1A9D IP=0004 1A9D:0004 CC INT 3 - q OK = Debug - problem

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie 28F + 37F 28F + 37F

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie 28 F + 37 F 28 F + 37 F F 16 + F 16 = = : = 1 reszta = 1 reszta E 16

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie 1 28 F + 37 F E 1 28 F + 37 F E F 16 + F 16 = = : = 1 reszta = 1 reszta E 16

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F F E F F E

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F F E F F E = = : = 1 reszta 0 10 = 1 reszta 0 16

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F F 0E F F 0E = = : = 1 reszta 0 10 = 1 reszta 0 16

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F F 0E F F 0E

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F + 3 7F 0E F + 3 7F 0E = = : = 0 reszta 6 10 = 0 reszta 6 16

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F + 3 7F 60E F + 3 7F 60E = = : = 0 reszta 6 10 = 0 reszta 6 16

J.Nawrocki, Wprowadzenie.., Wykład 5 Arytmetyka heksadecymalna Dodawanie F + 3 7F 60E F + 3 7F 60E

J.Nawrocki, Wprowadzenie.., Wykład 5 Plan wykładu Prosty program Kompilacja i uruchomienie DEBUG Arytmetyka heksadecymalna Liczby ujemne Najważniejsze rozkazy

J.Nawrocki, Wprowadzenie.., Wykład 5 Liczby ujemne Uzupełnienie do 2 Liczba ujemna -b jest reprezentowana jako: 2 n - b n bitów daje przedział: [-2 n-1, 2 n-1 - 1]

J.Nawrocki, Wprowadzenie.., Wykład 5 Liczby ujemne 3 bity = = = = = = = = Liczba Kod b

J.Nawrocki, Wprowadzenie.., Wykład 5 Liczby ujemne 16 bitów 7FFF FFF FFFF -1 FFFF FFFF FFFF =

J.Nawrocki, Wprowadzenie.., Wykład 5 Zmiana znaku Liczby ujemne 1. Zaneguj bity (0 1, 1 0) 2. Dodaj 1 F - cyfra 0 F 1 E 2 D 3 C 4 B 5 A FFFF =

J.Nawrocki, Wprowadzenie.., Wykład 5 Zmiana znaku Liczby ujemne 1. Zaneguj bity (0 1, 1 0) 2. Dodaj 1 F - cyfra 0 F 1 E 2 D 3 C 4 B 5 A = -2 FFFD FFFE

J.Nawrocki, Wprowadzenie.., Wykład 5 Plan wykładu Prosty program Kompilacja i uruchomienie DEBUG Arytmetyka heksadecymalna Liczby ujemne Najważniejsze rozkazy

J.Nawrocki, Wprowadzenie.., Wykład 5 Rozkazy pomocnicze Najważniejsze rozkazy c := z MOV c, z SUB c, z c := c - z NEG c c := - c ax := bx - cx - 1 mov ax, bx sub ax, cx sub ax, 1 move subtract negation

J.Nawrocki, Wprowadzenie.., Wykład 5 Skoki warunkowe Najważniejsze rozkazy if c = z then begin... end; if c = z then begin... end; CMP c, z JNE e... e: compare jump if not equal SFZF... PSW

J.Nawrocki, Wprowadzenie.., Wykład 5 Skoki warunkowe Najważniejsze rozkazy JE e jump if equal if c <> z then... JNL e jump if not less if c < z then... JG e jump if greater if c <= z then... JNG e jump if not greater if c > z then... JL e jump if less if c >= z then...

J.Nawrocki, Wprowadzenie.., Wykład 5 Skoki warunkowe - przykład Najważniejsze rozkazy ax := min {bx, cx} mov ax, bx cmp ax, cx jg ok mov ax, cx ok: int 3 ax:= bx; if ax <= cx then ax:= cx ax:= bx; if ax <= cx then ax:= cx

J.Nawrocki, Wprowadzenie.., Wykład 5 Skok bezwarunkowy Najważniejsze rozkazy while c = z do begin... end; while c = z do begin... end; pocz: CMP c, z JNE kon... JMP pocz kon: c = z... Tak Nie jump

J.Nawrocki, Wprowadzenie.., Wykład 5 Skok bezwarunkowy Najważniejsze rozkazy if c = z then ins1 else ins2 if c = z then ins1 else ins2 CMP c, z JNE els ins1 JMP kon els: ins2 kon: c = z ins1 TakNie ins2

J.Nawrocki, Wprowadzenie.., Wykład 5 Skok bezwarunkowy - przykład Najważniejsze rozkazy ax := nwd {ax, bx} while ax <> bx do begin if ax > bx then ax:= ax - bx else bx:= bx - ax end; while ax <> bx do begin if ax > bx then ax:= ax - bx else bx:= bx - ax end; ax bx ax > bx ax:=ax-bx Tak Nie

J.Nawrocki, Wprowadzenie.., Wykład 5 Skok bezwarunkowy - przykład Najważniejsze rozkazy 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; while ax <> bx do begin if ax > bx then ax:= ax - bx else bx:= bx - ax end;

J.Nawrocki, Wprowadzenie.., Wykład 5 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, Wprowadzenie.., Wykład 5 Literatura J.Nawrocki, Programowanie komputerów IBM PC w języku asemblera metodą systematyczną, WPP, 1991.

J.Nawrocki, Wprowadzenie.., Wykład 5 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?