Wstęp do informatyki. Operandy instrukcji. Tryby adresowania. Programowanie komputera asembler c.d. Cezary Bolek

Podobne dokumenty
Wstęp do informatyki. Operandy instrukcji. Tryby adresowania. Adresowanie natychmiastowe (Immediate) Operand jest podaną liczbą

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Magistrala systemowa (System Bus) Architektura komputera

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Architektura komputerów. Asembler procesorów rodziny x86

Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Magistrala systemowa (System Bus)

Rozszerzalne kody operacji (przykład)

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Programowanie Niskopoziomowe

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Sprzęt i architektura komputerów

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Techniki mikroprocesorowe i systemy wbudowane

Ćwiczenie nr 6. Programowanie mieszane

Ćwiczenie 3. Konwersja liczb binarnych

Architektura komputerów

Sprzęt i architektura komputerów

architektura komputerów w 1 1

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Architektura komputerów

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Programowanie komputera

Mikroprocesor Operacje wejścia / wyjścia

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

Egzamin maturalny z informatyki Poziom rozszerzony część I

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Algorytmy I Struktury Danych Prowadząca: dr Hab. inż. Małgorzata Sterna. Sprawozdanie do Ćwiczenia 1 Algorytmy sortowania (27.02.

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

1.3. Największa liczba naturalna (bez znaku) zapisana w dwóch bajtach to a) b) 210 c) d) 32767

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

PROGRAMOWANIE NISKOPOZIOMOWE

Programowanie Niskopoziomowe

Język programowania: Lista instrukcji (IL Instruction List)

Praktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.

Organizacja typowego mikroprocesora

Wstępdo assemblera MA51

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

Programowanie w Ruby

Struktura i działanie jednostki centralnej

Programowanie mikrokontrolera 8051

Metody Obliczeniowe w Nauce i Technice laboratorium

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Programowanie niskopoziomowe

Ćwiczenie nr 4. Zasady kodowania podprogramów

JAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI

SYSTEM MIKROPROCESOROWY

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Opracowanie danych pomiarowych. dla studentów realizujących program Pracowni Fizycznej

2.1. W architekturze MIPS, na liście instrukcji widzimy dwie instrukcje dotyczące funkcji: .text main: la $a0, string1 # drukuj pierwszy łańcuch

Mikroinformatyka. Wielozadaniowość

SYSTEM OCENY STANU NAWIERZCHNI SOSN ZASADY POMIARU I OCENY STANU RÓWNOŚCI PODŁUŻNEJ NAWIERZCHNI BITUMICZNYCH W SYSTEMIE OCENY STANU NAWIERZCHNI SOSN

Podstawy Informatyki Języki programowania c.d.

Lista Rozkazów: Język komputera

Politechnika Warszawska

architektura komputerów w 1 1

Architektura typu Single-Cycle

EGZAMIN MATURALNY Z INFORMATYKI

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Przerwania w architekturze mikrokontrolera X51

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

Lista instrukcji mikroprocesora Programowanie w assemblerze

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Architektura Systemów Komputerowych

Procesory rodziny x86. Dariusz Chaberski

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Programowanie mikrokontrolerów. 8 listopada 2007

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

Mikroinformatyka. Mechanizmy ochrony pamięci

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Wykład 4. Środowisko programistyczne

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Programowanie mikrokontrolerów (CISC)

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

PRZEWODNIK PO PRZEDMIOCIE

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

kiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,

UCHWAŁA nr XXVIII/532/12 SEJMIKU WOJEWÓDZTWA WIELKOPOLSKIEGO. z dnia 26 listopada 2012 r.

Zasady wykonywania programu drabinkowego w sterowniku

Laboratorium Programowanie Obrabiarek CNC. Nr H7

Wstęp. do języka C na procesor (kompilator RC51)

Przyczyny dwustopniowego tłumaczenia

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Przetworniki analogowo-cyfrowe i cyfrowo- analogowe

Lista rozkazów mikrokontrolera 8051

Transkrypt:

Wstęp do iformatyki Programowaie komputera asembler c.d. Cezary Bolek cbolek@ki.ui.lodz.pl Uiwersytet Łódzki Wydział Zarządzaia Katedra Iformatyki Operady istrukcji Operadem istrukcji azywamy liczbę, której dotyczy wykoywaa operacja. INC AL ; zwiększ wartość rejestru AL operad istrukcji (wartość w rejestrze) Dla operacji wymagających dwóch operadów, 1) pierzy azyway jest operadem przezaczeia, 2) drugi operadem źródłowym. ADD AL,13 ; dodaj do AL wartość 13 h operad przezaczeia operad źródłowy Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 2 Tryby owaia Tryb owaia jest to sposób określeia lokalizacji operadu istrukcji KaŜdy operad istrukcji moŝe być wyraŝoy za pomocą róŝego trybu owaia. Nie zystkie tryby owaia są dozwoloe dla zystkich istrukcji ADD DL, ;dodaj do DL wartość h operad w rejestrze operad - liczba ADD,DL ;??? Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 3 1

Adresowaie atychmiastowe (Immediate) Operad jest podaą liczbą AL, ;załaduj liczbę h do AL operad źródłowy wyraŝoy w trybie atychmiastowym NOT 1 owaie atychmiastowe jest zabroioe dla pojedyczych operadów oraz operadów przezaczeia Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 4 Adresowaie bezpośredie rejestrowe (Register Direct) Operad jest liczbą w podaym rejestrze DEC CL AL, ;załaduj liczbę h do AL operad przezaczeia wyraŝoy w trybie bezpośredim rejestrowym!uwaga AL,BL Przesłaia międzyrejestrowe w trybie bezpośredim rejestrowym ie są dozwoloe w symulatorze stosowaym w laboratorium, (ale zwykle akceptowae przez większość procesorów) Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> Adresowaie bezpośredie pamięci (Memory Direct) Operad jest liczbą w komórce pamięci o podaym [ie] (w awiasach kwadratowych) AL,[1] ; załaduj liczbę z komórki ; o ie 1 h do rejestru AL operad źródłowy wyraŝoy w trybie owaia bezpośredim pamięci [3],BL AL,[3] ; realizacja AL,BL ; w symulatorze Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 6 2

Adresowaie bezpośredie pamięci AL BL CL DL A 33 [1],BL DL,[8] A 33 1 2 3 4 6 7 8 9 A B Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 7 Adresowaie bezpośredie pamięci Dla istrukcji arytmetyczych, logiczych i przesuięć ie jest dozwoloe uŝywaie owaia bezpośrediego pamięci. ADD AL,[2] ;iedozwoloe INC [] ;iedozwoloe OR [],BL ;iedozwoloe NOT [1] ;iedozwoloe ROR [3] ;iedozwoloe Nie jest moŝliwe wykoaie operacji bezpośredio pomiędzy komórkami pamięci [1],[2] ; iedozwoloe Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 8 Adresowaie pośredie rejestrowe (Register Idirect) Operad jest liczbą w komórce pamięci o ie zajdującym się w [rejestrze] AL,[BL] [AL],BL ; załaduj wartość z komórki ; o ie w BL do AL operad źródłowy wyraŝoy w trybie pośredim rejestrowym ; załaduj wartość rejestru BL ; do komórki o ie w AL operad przezaczeia wyraŝoy w trybie pośredim rejestrowym Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 9 3

Adresowaie pośredie rejestrowe AL BL CL DL 6 7B C A [DL],CL BL,[AL] 7B C 1 2 3 4 6 7 8 9 A B Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 1 Adresowaie pośredie rejestrowe Dla istrukcji arytmetyczych, logiczych i przesuięć ie jest dozwoloe uŝywaie owaia pośrediego rejestrowego. ADD AL,[BL] ;iedozwoloe INC [AL] ;iedozwoloe OR [AL],BL ;iedozwoloe NOT [CL] ;iedozwoloe ROR [DL] ;iedozwoloe Nie jest moŝliwe wykoaie operacji bezpośredio pomiędzy komórkami pamięci [AL],[BL] ;iedozwoloe Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 11 Ie tryby owaia Posiadaie wielu owaia komplikuje wewętrzą strukturę procesora, ale moŝe zaczie zwiększać jego wydajość Przykłady trybów owaia (iedostępe w symulatorze) a) pośredie rejestrowe z przesuięciem b) pośredie rejestrowe z ideksem (i przesuięciem) c) pośredie liczikiem programu (z ideksem i przesuięciem) d) pośredie komórką pamięci (z ideksem i przesuięciem) e) pośredie rejestrowe z postikremetacją f) pośredie rejestrowe z predekremetacją a) X,[Y,Z] b) X,[d,Y,Z] c) X,[d,PC,Y] d) X,[d,[X,Y]] e) X,Y+ f) X,-Y X,Y,Z rejestry wewętrze procesora, d liczba Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 12 4

Zaawasoway tryb owaia - przykład A A1 D D1 1 1 2 3 +D 3 9F 4 8 6 7 8 +2 9 A 9F B D1,[2,[A,D]] Adresowaie pośredie komórką pamięci z ideksem i przesuięciem Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 13 Stos Stos jest strukturą daych w pamięci, zorgaizowaą w taki sposób, Ŝe w daej chwili moŝliwy jest dostęp (odczyt lub zapis) tylko do jedego elemetu zajdującego się a wierzchołku. wierzchołek stosu stos rośie stos maleje Stos jest wykorzystyway do przechowywaia pośredich wyików obliczeń, przekazywaia parametrów do procedur realizacji mechaizmu z podprogramu Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 14 Orgaizacja stosu Orgaizacja struktury stosu zaleŝy od typu procesora, a omówioa poiŝej dotyczy symulatora z laboratorium. Stos rośie w kieruku malejących ów PołoŜeie wierzchołka stosu zajduje się w rejestrze (stack poiter). kazuje a pierzy woly bajt a stosie (a ie a ostati zajęty) Zdjęcie (odczytaie) bajtu ze stosu wymaga zwiększeia o 1 i odczytaia komórki o ie [] OdłoŜeie (zapisaie) bajtu a stos wymaga zapisu do komórki o ie [] i zmiejszeia o 1 Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 1

Zapis a stos PUSH X Istrukcja PUSH odkłada a stos wartość rejestru X (AL, BL, CD lub DL). Wartość kaźika stosu jest odpowiedio modyfikowaa, aby kazywała aktualą pozycję wierzchołka po wykoaiu operacji. 77 AL 77 PUSH AL Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 16 Odczyt ze stosu POP Istrukcja POP zdejmuje ze stosu wartość i umieszcza w rejestrze X (AL, BL, CD lub DL). Wartość kaźika stosu jest odpowiedio modyfikowaa, aby kazywała aktualą pozycję wierzchołka po wykoaiu operacji. X A BL A POP BL Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 17 Podprogramy Podprogram jest ciągiem istrukcji, który staowi fukcjoalą całość i moŝe być wywoływay z dowolego miejsca w programie główym, a po zakończeiu swego działaia powraca do miejsca skąd był wywołay. Program główy: Koiec programu Podprogram X: Koiec podprogramu istr3 uruchom podprogram X istr4 istr uruchom podprogram X istr6 STOP istr3 powrót Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 18 6

Mechaizm skoku do podprogramu Podczas skoku do podprogramu a stos odkładay jest (z rejestru IP), tj. istrukcji astępej po istrukcji skoku do podprogramu. Skok realizoway jest poprzez zapis do rejestru IP wartości u początku podprogramu (X) IP X istr3 CALL X istr4 istr END X Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 19 Mechaizm z podprogramu Podczas z podprogramu ze stosu pobieray jest, tj. istrukcji, od której trzeba wzowić wykoywaie programu główego. Powrót realizoway jest poprzez zapis do rejestru IP wartości u odczytaego ze stosu ( ) IP istr3 CALL X istr4 istr END X Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 2 Istrukcje skoku i z podprogramu CALL xxx istrukcja skoku do podprogramu rozpoczyającego się od u xxx istrukcja (zakończeia) z aktualie wykoywaego podprogramu p. ext: CALL wait JMP ext wait: BL,FF cc: DEC BL JNZ cc program główy wywołuje podprogram wait w ieskończoej pętli realizacja pętli opóźiającej jako podprogram wait Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 21 7

Przekazywaie parametrów przez rejestry procesora Podprogramy mogą wykorzystywać wartości umieszczoe w rejestrach procesora jako swoje parametry. Jedyym ograiczeiem tej metody jest ograiczoa liczba rejestrów wewętrzych procesora. CALL... CALL... BL,1 wait BL,9 wait wait: DEC BL JNZ wait Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 22 Przekazywaie parametrów przez komórki pamięci Podprogramy mogą wykorzystywać wartości umieszczoe w komórkach pamięci jako swoje parametry. Zaletą metody jest moŝliwość przekazaia duŝej liczby parametrów, a iedogodością jest koieczość rezerwacji miejsca w pamięci operacyjej. CALL... CALL... AL,1 [8],AL wait AL,9 [8],AL wait wait: BL,[8] cc: DEC BL JNZ cc Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 23 Określaie początku programu lub daych ORG ; origi jest dyrektywą określającą w pamięci, od jakiego będą umieszczae koleje istrukcje lub dae. DB wartość ; defie byte jest dyrektywą rezerwującą 1 bajt pamięci i wypełiającą go podaą wartością (pomoce przy rezerwacji pamięci) ORG ORG DB 1F DB 1F Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 24 8

Deklaracja apisów w pamięci DB apis jeśli argumetem dyrektywy DB będzie łańcuch tekstowy, to koleje bajty zostaą wypełioe kodami ASCII liter tego łańcucha ORG ORG DB hello DB 48 4 4C 4C 4F Wstęp do iformatyki Cezary Bolek <cbolek@ki.ui.lodz.pl> 2 9