DSM51 operacje przesylania danych i operacje arytmetyczne strona 1

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

Programowanie mikrokontrolerów (CISC)

Programowanie mikrokontrolera 8051

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

1. Operacje logiczne A B A OR B

Pracownia elektryczno-elektroniczna klasa IV

Lista rozkazów mikrokontrolera 8051

Architektura komputerów. Asembler procesorów rodziny x86

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Architektura komputerów

Politechnika Warszawska

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

architektura komputerów w 1 1

1259 (10) = 1 * * * * 100 = 1 * * * *1

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

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

Pracownia Komputerowa wykład IV

Asembler - język maszynowy procesora

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

Mikrokontroler ATmega32. Język symboliczny

Struktura i działanie jednostki centralnej

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Pracownia Komputerowa wyk ad IV

System Liczbowe. Szesnastkowy ( heksadecymalny)

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

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

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

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

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Programowanie Niskopoziomowe

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Tematyka do egzaminu ustnego z matematyki. 3 semestr LO dla dorosłych

Systemy liczbowe. 1. System liczbowy dziesiętny

Mikrokontrolery 8 bit - wprowadzenie

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051

CPU architektura i rejestry

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Klasa 6. Liczby dodatnie i liczby ujemne

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Sprzęt i architektura komputerów

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

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

Architektura Systemów Komputerowych

Dodawanie liczb binarnych

Programowanie w C++ 1 Opis procesora Sextium II. Opis procesora Sextium. materiały dydaktyczne udostępnione przez Tomasza Wierzbickiego

MIKROKONTROLERY I MIKROPROCESORY

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

Technologie Informacyjne

Technika mikroprocesorowa I Wykład 2

Arkusz kalkulacyjny. Technologia Informacyjna Lekcja 38-39

Technologie Informacyjne Wykład 3

Pracownia Komputerowa wykład V

Zasady wykonywania programu drabinkowego w sterowniku

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Architektura komputerów

Część XII C++ Warunki zagnieżdżone Ćwiczenie 1 nazwisko40 2. nie przepisując komentarzy!

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

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

Ćwiczenie 3. Konwersja liczb binarnych

SYSTEMY LICZBOWE 275,538 =

Skrypt 2. Liczby wymierne dodatnie i niedodatnie. 3. Obliczanie odległości między dwiema liczbami na osi liczbowej

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

organizacja procesora 8086

Klasa 6. Liczby dodatnie i liczby ujemne

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (

Programowanie niskopoziomowe

Przykładowe pytania DSP 1

Laboratorium Wykorzystanie kalkulatora Windows do obliczania adresów sieciowych

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

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

Mikrokontroler 80C51

Metody Realizacji Języków Programowania

Operacje arytmetyczne

Teoretyczne Podstawy Informatyki

ZAMIANA SYSTEMÓW LICZBOWYCH

Kurs Podstawowy S7. Spis treści. Dzień 1

KATEGORIA OBSZAR WIEDZY

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Transkrypt:

DSM51 operacje przesylania danych i operacje arytmetyczne strona 1 Przypomnienie: Plik Otworz (F3) otwieranie pliku z programem.asm Plik Zapisz (F2) zapisywanie pliku z programem.asm do katalogu C:\JAGODA Plik Zapisz jako zapisywanie pliku z programem.asm do innego katalogu Po kaŝdej modyfikacji programu naleŝy wykonac: Uruchom Przerwij prace krokowa (Ctrl+F2) Uruchom Kompiluj (F9) Uruchom Uruchom (Ctrl+F9) Temat: Operacje przesylania danych Dodawanie (rozkaz MOV) Wstawienie wartości liczbowej do akumulatora ; op_mov1.asm ; rozkaz MOV A, #data MOV A, #15 ; do ACC wstaw 15 Otwórz okno Debugger Wewnetrzna pamiec danych IRAM Debugger Rejestry ACC=0F hex Przeslanie wartości liczbowej z rejestru do akumulatora ; op_mov2.asm ; rozkaz MOV A, Rr MOV R4,#10 ; do R4 wstaw 10 MOV A, R4 ; do A wstaw zawartosc rejestru R4 ACC=0A hex

DSM51 operacje przesylania danych i operacje arytmetyczne strona 2 ; op_mov3.asm ; operacje przesylania danych ; rozkaz MOV A, direct MOV 2,#10 ; do komorki o adresie 02 wstaw 10 MOV A, 2 ; do A wstaw zawartosc komorki 02 ACC=0A hex IRAM[2]=0A Hex ; op_mov4.asm ; operacje przesylania danych z adresowaniem posrednim ; za pomoca rejestru R0 lub R1 ; rozkaz MOV A, @R0 MOV 11, #8 ; do komorki o adresie 11 wstaw wartosc 8 MOV R0,#11 ; do R0 wstaw adres komorki MOV A, @R0 ; do A wstaw zawartosc komorki o adresie w R0 IRAM[11]=08 Hex R0=0B Hex ACC=08 Hex ; op_mov5.asm ; operacje przesylania danych do rejestru ; rozkaz MOV R1, direct MOV 01, #255 ; do komorki 01 wstaw 255 MOV R1, 01 ; do R1 wstaw zawartosc komorki o adresie 01 IRAM[1]=FF Hex R1=FF Hex

DSM51 operacje przesylania danych i operacje arytmetyczne strona 3 ; op_mov6.asm ; operacje przesylania danych z adresowaniem posrednim ; za pomoca rejestru R0 ; rozkaz MOV @R0, #data MOV R0, #16 ; do R0 wstaw adres 16 (10 hex) MOV @R0, #13 ; do komorki o adresie w R0 wstaw wartosc 13 R0=10 Hex IRAM[10hex]=0D Hex Temat: Programowanie prostych operacji arytmetycznych Dodawanie (rozkaz ADD) ; wersja A ; dodawanie dwoch komorek pamieci, wynik sumowania ; umieszczamy w trzeciej komorce ; pierwsza liczba - adres 01, druga liczba - adres 02, suma - adres 03 ; Po wykonaniu dodawania dla: 0+254 oraz 254+2 ; sprawdz zawartosc dziesietna: ; KOMORKI o adresie 03, akumulatora oraz flagi CY MOV 1, #254 ; do komórki o adresie 01 wstawiamy liczbę 254 MOV 2, #02 ; do komórki o adresie 02 wstawiamy liczbę 2 MOV A, #0 ; do akumulatora wstawimy liczbę 0 ADD A, 1 ; A = A + komórka 01 ADD A, 2 ; A = A + komórka 02 MOV 3, A ; do komórki o adresie 03 wstawiamy wartość akumulatora Pomoc: Otwórz okno Debugger Wewnetrzna pamiec danych IRAM Debugger Rejestry Debugger Bity ACC=00 hex PSW=80 hex CY=1

DSM51 operacje przesylania danych i operacje arytmetyczne strona 4 IRAM[1]=FE hex IRAM[2]=02 Hex IRAM[3]=00 Hex ; wersja B ; dodawanie dwoch rejestrow R0 i R1, wynik sumowania w rejestrze R2 MOV R0, #200 MOV R1, #55 MOV A,#0 ADD A, R0 ADD A, R1 MOV R2, A ACC=FF hex PSW=00 hex CY=0 IRAM[0]=C8 hex IRAM[1]=37 Hex IRAM[2]=FF Hex Odejmowanie (rozkaz SUBB) ; wersja A ; odejmowanie dwoch komorek pamieci, wynik odejmowania ; umieszczamy w trzeciej komorce ; pierwsza liczba - adres 01, druga liczba - adres 02, roznica - adres 03 ; Po wykonaniu odejmowania dla: 200-199, oraz 200-200 ; sprawdz zawartosc dziesietna: ; KOMORKI o adresie 03, akumulatora oraz flagi CY MOV 1, #200 ; wartosci poczatkowe MOV 2, #199 MOV A, 1 CLR PSW.7 ; zeruj CARRY w PSW SUBB A, 2 MOV 3, A

DSM51 operacje przesylania danych i operacje arytmetyczne strona 5 ACC=01 hex PSW=01 hex IRAM[1]=C8 hex IRAM[2]=C7 Hex IRAM[3]=01 Hex Temat: Programowanie prostych operacji Zerowanie czesci pamieci (rozkaz MOV) ; mem_clr1.asm ; zerowanie czesci pamieci ; rozkaz MOV direct, #data MOV 00, #0 ; do komorki 00 wstaw 00 MOV 01, #0 ; do komorki 01 wstaw 00 MOV 02, #0 ; do komorki 02 wstaw 00 MOV 03, #0 ; do komorki 03 wstaw 00 MOV 04, #0 ; do komorki 04 wstaw 00 IRAM[0]=00 hex IRAM[1]=00 hex IRAM[2]=00 hex IRAM[3]=00 hex IRAM[4]=00 hex Dla zaawansowanych ; mem_clr2.asm ; zerowanie czesci pamieci - zawansowane ; zerowanie KOMOREK od 00 hex do 1F hex ; rozkaz MOV direct, #data MOV A, #31 ; adres koncowy CLEAR: MOV R0, A MOV @R0, #00 ; zeruj komorke o adresie w R0 DEC A ; zmiejsz A o 1 JNZ CLEAR ; jesli A<>0 to skocz do CLEAR

DSM51 operacje przesylania danych i operacje arytmetyczne strona 6 MOV R0, #00 ; zeruj rejestr R0 Temat: Programowanie prostych operacji arytmetycznych Wykonaj 3 wersje programu mnozenia: ; rozkaz MUL AB ; mnozenie dwoch liczb, wynik mnozenia umieszczamy w R3 i R4 ; pierwsza liczba - R1, druga liczba - R2, iloczyn R4 (high), R3 (low) ; Po wykonaniu mnozenia dla: ; a). 4 x 5 ; b). 25 x 10 ; c). 10 x 255 ; sprawdz zawartosc dziesietna, binarną, heksydecymalną: ; rejestrów R3, R4, oraz A, B ; ODP.: (R4,R3): 20 DEC = 00 14 HEX = 0000 0000 0001 0100 BIN ; ODP.: (R4,R3): 250 DEC = 00 FA HEX = 0000 0000 1111 1010 BIN ; ODP.: (R4,R3): 2550 DEC = 63 9C HEX = 0110 0011 1001 1100 BIN MOV R1, #4 ; wartosci argumentów mnoŝenia MOV R2, #5 MOV A, R1 MOV B, R2 MUL AB ; mnozenie MOV R3, A MOV R4, B Wersja a). A = 4, B = 5 B= 00 hex ACC = 14 hex Dziesietnie = 20 Wersja b). A = 25, B = 10 B= 00 hex ACC = FA hex Dziesietnie = 250 Wersja c). A = 10, B = 255 B= 09 hex ACC = F6 hex Dziesietnie = 2550

DSM51 operacje przesylania danych i operacje arytmetyczne strona 7 Wykonaj program dzielenia: ; rozkaz DIV AB wersja a ; dzielenie dwoch liczb, wynik dzielenia umieszczamy w R3 i R4 ; pierwsza liczba - R1, druga liczba - R2, iloraz - R3, reszta z dzielenia - R4 ; Po wykonaniu dzielenia dla: ; a). 10 / 3 ; sprawdz zawartosc dziesietna, binarną, heksydecymalną: ; rejestrów R3, R4, oraz A, B ; ODP.: (R4,R3): 20 DEC = 01 03 HEX = 0000 0001 0000 0011 BIN MOV R1, #10 ; wartosci argumentów dzielenia MOV R2, #3 MOV A, R1 MOV B, R2 DIV AB ; dzielenie MOV R3, A MOV R4, B Wersja a). A = 10, B = 3 B= 01 hex ACC = 03 hex