Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5

Slides:



Advertisements
Podobne prezentacje
Programowanie w PMC.
Advertisements

Wprowadzenie do informatyki Wykład 6
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Wykład 3: Jak działa typowy mikroprocesor?
Mikroprocesory i procesory sygnałowe
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
CPU.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
ARCHITEKTURA KOMPUTERÓW definicja komputera PROCESOR PAMIĘĆ OPERACYJNA URZĄDZENIA ZEWNĘTRZNE.
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rozmieszczanie zadań czasu rzeczywistego w pamięci notatnikowej
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
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
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Budowa komputera Wstęp do informatyki Wykład 15
Team Building Copyright, 2003 © Jerzy R. Nawrocki Requirements Engineering Lecture.
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.
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.
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Wprowadzenie do informatyki Wykład 5
Mikroprocesory i procesory sygnałowe
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Jerzy F. Kotowski1 Informatyka I Wykład 15 PIERWSZE KROKI.
Informatyka I Wykład 4 Stałe Stałe liczbowe Stałe znakowe Stałe tekstowe Jerzy Kotowski Politechnika Wroclawska var = 5L - 0xA; -5.
Gramatyki i translatory
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Procesor, pamięć, przerwania, WE/WY, …
PWSW Mechatronika Wykład 7 Matlab cd.
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.
Zasady arytmetyki dwójkowej
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.
METODY REPREZENTOWANIA IFORMACJI
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Lista Rozkazów: Język komputera Większość slajdów do tego wykładu to tłumaczenia i przeróbki oficjalnych sladjów do podręcznika Pattersona i Hennessy’ego.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Zapis prezentacji:

Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

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

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

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.

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

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja – pierwszy krok Zapisz program w pliku prog.asm

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exe prog.asmprog.lst

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exe prog.asmprog.lst

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - MASM Polecenie

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - MASM Polecenie Błędy Ostrzeżenia

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exeprog.asm prog.lst

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja – Listing kompilacji Numer wiersza Tekst programu Kod przekładu Adres względny prog.lst

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uproszczony schemat kompilacji MASMLINK prog.obj prog.exeprog.asm prog.lst

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - LINK Polecenie

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Kompilacja - LINK Nieistotne ostrzeżenie Polecenie

J.Nawrocki, Asembler i koncepcja von Neumanna Prosty program Uruchomienie - DEBUG

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG Najważniejsze komendy R rejestr (Register) G (Go) Q (Quit)

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

J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG - przykład sesji Wynik - rax AX rbx BX rcx CX : : : - g AX=0006 BX=0002 CX=0003 DX=0000 SP=0000 DS=198C ES=198C SS=199C CS=199C IP= C:0004 CC INT 3 - q Nast. instrukcja

J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG - przykład sesji DEBUG MS DOS

J.Nawrocki, Asembler i koncepcja von Neumanna Częściowe podsumowanie Umiemy już: napisać program, skompilować go, uruchomić. Hura! Ale to proste!

J.Nawrocki, Asembler i koncepcja von Neumanna DEBUG - inna sesja = 18 czy 12? Dziwne !

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

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

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna System dziesiętny = * * *10 2 +

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna System szesnastkowy = = * * * = 1* *16 0 = = 18 10

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna = Aha!

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą pośrednią 28F F 16 28F F * * * * * * E 16

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią 28F + 37F 28F + 37F

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 = = : = 1 reszta = 1 reszta E 16

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 = = : = 1 reszta = 1 reszta E 16

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F F E F F E

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F F E F F E = = : = 1 reszta 0 10 = 1 reszta 0 16

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F F 0E F F 0E = = : = 1 reszta 0 10 = 1 reszta 0 16

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F F 0E F F 0E

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F + 3 7F 0E F + 3 7F 0E = = : = 0 reszta 6 10 = 0 reszta 6 16

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F + 3 7F 60E F + 3 7F 60E = = : = 0 reszta 6 10 = 0 reszta 6 16

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna Dodawanie metodą bezpośrednią F + 3 7F 60E F + 3 7F 60E

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna ax= ax + bx + cx; F + 3 7F 60E F + 3 7F 60E

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna ax= ax + bx + cx; Nie można prościej ?

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

J.Nawrocki, Asembler i koncepcja von Neumanna Arytmetyka heksadecymalna ax= bx + cx; F + 3 7F 60E F + 3 7F 60E

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

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?

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

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]

J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne 4 bity 15 kod(b) b 7

J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne 3 bity Liczba Kod |b|

J.Nawrocki, Asembler i koncepcja von Neumanna Liczby ujemne 16 bitów 7FFF FFF FFFF -1 FFFF FFFF FFFF =

J.Nawrocki, Asembler i koncepcja von Neumanna 1111 FFFF FFFF Liczby ujemne ax= bx + cx;

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 =   7 F - cyfra

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  = -2 FFFD FFFE F - cyfra

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

J.Nawrocki, Asembler i koncepcja von Neumanna ax = - ax; Liczby ujemne

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna John Luis von Neumann Ur.: w Budapeszcie Zm.: w Waszyngtonie 1930: Princeton University 1933: Institute for Advanced Studies

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)

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.

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna 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) 5 2 R2  - R2 6 Int(C) 6 3 Przykładowe kody rozkazów

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

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx SubRegReg 3 16Int 18 ax cx axbx 50 cx 3 ax = bx – cx; 10 Licznik rozkazów

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx 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

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx SubRegReg 3 16Int 18 axbx 13 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 1a. Ustawienie licznika na następny rozkaz

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx SubRegReg 3 16Int 18 axbx 13 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; 5 2. Wykonanie rozkazu

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx 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

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx 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

J.Nawrocki, Asembler i koncepcja von Neumanna Koncepcja von Neumanna MovRegReg ax bx SubRegReg 3 16Int 18 axbx 16 Licznik rozkazów 50 ax cx cx 3 ax = bx – cx; Wykonanie rozkazu

J.Nawrocki, Asembler i koncepcja von Neumanna Plan wykładu Prosty program DEBUG Arytmetyka heksadecymalna Liczby ujemne Koncepcja von Neumanna Rozkazy skoku

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

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;

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; }

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

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

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

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

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

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; }

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; }

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; }

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; }

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; }

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; }

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; }

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; }

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; }

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

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

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

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

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

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

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)...

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

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

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

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; }

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!

J.Nawrocki, Asembler i koncepcja von Neumanna Literatura J.Nawrocki, Programowanie komputerów IBM PC w języku asemblera metodą systematyczną, WPP, 

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?