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

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

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

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

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

Architektura komputerów. Asembler procesorów rodziny x86

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

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Architektura systemów komputerowych Laboratorium 10 Symulator SMS32 Urządzenia wejścia i wyjścia

Ćwiczenie 3. Konwersja liczb binarnych

Architektura komputerów

Sterowanie pracą programu

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu

Programowalne układy logiczne

Sprzęt i architektura komputerów

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

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

Sprzęt i architektura komputerów

Architektura komputerów

Struktura i działanie jednostki centralnej

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

1. Operacje logiczne A B A OR B

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

Programowanie komputera

Metody Realizacji Języków Programowania

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Programowanie mikrokontrolera 8051

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

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

Architektura typu Single-Cycle

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

Lista rozkazów mikrokontrolera 8051

Programowanie niskopoziomowe

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

PROGRAMY REZYDENTNE Terminate and State Resident, TSR

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Architektura Systemów Komputerowych

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

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Magistrala systemowa (System Bus)

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Przerwania w architekturze mikrokontrolera X51

Lista instrukcji mikroprocesora Programowanie w assemblerze

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

Programowanie Niskopoziomowe

Instytut Teleinformatyki

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Wstęp do Reverse engineeringu

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

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

Jerzy Nawrocki, Wprowadzenie do informatyki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Zasady wykonywania programu drabinkowego w sterowniku

Programowanie mikrokontrolerów. 8 listopada 2007

Mikrooperacje. Mikrooperacje arytmetyczne

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Metody obsługi zdarzeń

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

Programowanie mikrokontrolerów (CISC)

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Systemy wbudowane. Przykłady kodu Assembler

Programowanie Niskopoziomowe

Programowanie w asemblerze Architektura procesora

Lista Rozkazów: Język komputera

Mikroprocesor Operacje wejścia / wyjścia

Organizacja typowego mikroprocesora

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

Podstawy Informatyki

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Instytut Teleinformatyki

Ćwiczenie nr 4. Zasady kodowania podprogramów

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

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

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

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

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

2. Architektura mikrokontrolerów PIC16F8x... 13

Programowanie Niskopoziomowe

Procesory rodziny x86. Dariusz Chaberski

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Algorytm mnożenia sekwencyjnego (wariant 1)

Adam Kotynia, Łukasz Kowalczyk

Opis procedur asemblera AVR

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

organizacja procesora 8086

Architektura systemów komputerowych. Lista instrukcji procesora

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Techniki mikroprocesorowe i systemy wbudowane

WOJSKOWA AKADEMIA TECHNICZNA

Podstawy programowania w języku C i C++

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

LEKCJA TEMAT: Współczesne procesory.

Kod hex Instrukcja Opis 37 AAA Koryguj AL po dodawaniu BCD

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

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

Transkrypt:

Marcin Stępniak Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów 1. Informacje Poniższe laboratoria zawierają podsumowanie najważniejszych informacji na temat symulatora SMS32. Zadania do rozwiązania będą polegały na zaimplementowaniu wybranych algorytmów z wykorzystaniem zdobytej dotychczas wiedzy. Tabela 1. Rejestry symulowanego mikroprocesora Rejestr AL, BL, CL i DL IP (ang. Instruction pointer) SR (ang. Status Register) SP (ang. Stack Pointer) Funkcja Rejestry ogólnego Zawiera adres instrukcji, która będzie wykonywana lub jest aktualnie wykonywana. Rejestr ten zawiera flagi, które informują o stanie procesora. Flaga "Z" (zera) jest ustawiana na jeden, jeśli obliczenia dały wynik zerowy. Flaga "S" (znaku) jest ustawiana na jeden, jeśli obliczenia dały wynik ujemny. Flaga "O" (przepełnienia) jest ustawiana, jeśli wynik był zbyt duży, aby zmieścić się w rejestrze. Flaga "I" (przerwania) jest ustawiana, jeśli przerwania są włączone. Wskaźnik stosu jest adresem kolejnego wolnego miejsca na stosie. 1

Tabela 2. Podstawowe instrukcje symulowanego mikroprocesora Instr. Operand A Operand B Działanie MOV ADD SUB MUL DIV INC DEC CMP lub adres w pamięci. konkretna wartość, rejestr ogólnego lub adres w pamięci rejest rejest rejesti rejestr konkretna wartość, rejestr lub adres pamięci kopiuje B do A. Operand docelowy i źródłowy nie mogą być jednocześnie adresami w pamięci ani rejestrami. sumuje A i B; wynik odejmuje B od A; wynik mnoży A i B; wynik dzieli A przez B; wynik zwiększa A o 1 zmniejsza A o 1 porównuje A i B ustawiając odpowiednio flagi IN numer portu odczytuje dane z portu A i umieszcza je w rejestrze AL OUT numer portu wysyła dane z rejestru AL do portu A 2

Tabela 3. Instrukcje dla operacji bitowych Instr. Operand A Operand B Działanie AND rejestr ogólnego OR rejestr ogólnego XOR rejestr ogólnego NOT rejestr ogólnego ROL rejestr ogólnego ROR rejestr ogólnego SHL rejestr ogólnego SHR rejestr ogólnego konkretna wartość lub rejestr konkretna wartość lub rejestr konkretna wartość lub rejestr Wykonuje operację A AND B. Wynik zapisuje w A. Wykonuje operację A OR B. Wynik zapisuje w A. Wykonuje operację A XOR B. Wynik zapisuje w A. Wykonuje negację (odwraca wszystkie bity) na rejestrze. Obraca bity w rejestrze w lewo. Obraca bity w rejestrze w prawo. Przesuwa bity w rejestrze w lewo. Przesuwa bity w rejestrze w prawo. Tabela 4. Instrukcje skoku symulowanego mikroprocesora Instr. JMP JZ JNZ JS JNS JO JNO Działanie skok bezwarunkowy; zawsze skacze do wskazanej etykiety skacze do wskazanej etykiety jeżeli flaga "Z" jest ustawiona skacze do wskazanej etykiety jeżeli flaga "Z" nie jest ustawiona skacze do wskazanej etykiety jeżeli flaga "S" jest ustawiona skacze do wskazanej etykiety jeżeli flaga "S" nie jest ustawiona skacze do wskazanej etykiety jeżeli flaga "O" jest ustawiona skacze do wskazanej etykiety jeżeli flaga "O" nie jest ustawiona Instrukcja CMP AL,BL Tabela 5. Przykłady działania instrukcji CMP Działanie Ustawia flagę Z jeżeli AL = BL Ustawia flagę S jeżeli AL < BL CMP BL,13 Ustawia flagę Z jeżeli BL = 13 Ustawia flagę S jeżeli BL < 13 CMP CL,[20] Ustawia flagę Z jeżeli CL = [20] Ustawia flagę S jeżeli CL < [20] 3

Tabela 6. Instrukcje operujące na stosie Instr. Operand A Działanie PUSH POP PUSHF POPF odkłada (kopiuje) wartość rejestru na sos zdejmuje wartość ze stosu i zapisuje do rejestru odkłada wartość rejestru flag na stos pobiera wartość rejestru flag ze stosu Tabela 7. Instrukcje (dyrektywy asemblera) związane z organizacją danych Instr. Operand A Działanie ORG adres dyrektywa assemblera powodująca, że kod będzie generowany od adresu A DB wartość bajtu zapisuje wartość podaną jako operand A w pamięci RAM DB "tekst" zapisuje kody ASCII podanego ciągu znaków w kolejnych komórkach pamięci Tabela 8. Instrukcje związane z implementacją procedur Instr. Operand Działanie CALL adres procedury zapisuje wartość rejestru IP na stosie i skacze do adresu wskazanego przez operand RET przywraca rejestr IP ze stosu i skacze pod adres tam zawarty Tabela 9. Instrukcje związane z przerwaniami Instr. Operand Działanie INT IRET STI CLI numer przerwania - w symulatorze odpowiada on adresowi komórki pamięci z wektorem przerwania Zapisuje wartość rejestru IP na stosie, odczytuje adres procedury obsługi przerwania z wektora i skacze do tego adresu. Powrót z procedury przerwania. Przywraca rejestr IP ze stosu i skacze pod adres tam zawarty. Ustawia flagę I. Dzięki temu przerwania sprzętowe są obsługiwane. Czyści flagę I. Bez ustawionej flagi przerwania sprzętowe są ignorowane. 4

Tabela 10. Dostępne urządzenia i numery ich portów Numer portu Urządzenie 00 Wczytywanie znaków 01 Światła drogowe 02 Wyświetlacz siedmiosegmentowy 03 Grzałka i termostat 04 Labirynt 05 Silnik krokowy 06 Winda Tabela 11. Przerwania generowane przez urządzenia Numer przerwania Urządzenie 02 Zegar 03 Klawiatura 04 Klawiatura numeryczna 1.1. Dodatkowe informacje 1. http://www.softwareforeducation.com/sms32v50/sms32v50_ manual/index.htm 2. https://pl.wikipedia.org/wiki/algebra_boole a 3. https://pl.wikipedia.org/wiki/palindrom 2. Zadania 2.1. Zadanie 1 Napisać program realizujący funkcję minutnika. Użytkownik wprowadza liczbę sekund do odmierzenia (od 1 do 99). Program pokazuje pozostały czas na wyświetlaczu siedmiosegmentowym. Odmierzanie czasu należy zrealizować z wykorzystaniem przerwania zegarowego. Po upływie wskazanego czasu zapala się światło na sygnalizatorze. Pomocna może okazać się tablica bajtów z listingu 1 2.2. Zadanie 2 Napisać program sprawdzający czy wprowadzony z klawiatury wyraz jest palindromem. 5

Listing 1. Tablica cyfr dla wyświetlacza siedmiosegmentowego DB FA ;0 DB 0A ;1 DB B6 ;2 DB 9E ;3 DB 4E ;4 DB DC ;5 DB FC ;6 DB 8A ;7 DB FE ;8 DB DE ;9 2.3. Zadanie 3 Napisać program, który posortuje wprowadzony ciąg znaków na podstawie ich kodów. Algorytm sortowania może być dowolny. Wczytane znaki należy przechowywać w pamięci wyświetlacza VDU i w tym miejscu je sortować. Pozwoli to na obserwowanie procesu sortowania. 2.4. Zadanie dodatkowe Napisać program wykonujący mnożenie dwóch liczb wczytanych z klawiatury. Każda liczba może składać się od 1 do 10 cyfr. 6