831


POLITECHNIKA LUBELSKA

w LUBLINIE

Laboratorium techniki mikroprocesorowej

Ćwiczenie Nr 3B

Wykonujący:

Paweł Sobotka

Krzysztof Waśkowicz

Semestr:

V

Grupa:

ED5.2

Rok akademicki:

1999/2000

Temat: Operacje arytmetyczne

Data: 18.10.1999

Ocena

ZADANIE NR.1

Modyfikacja programu z zad.1

Program dodaje liczbę - 10 do wartości pobranej z klawiatury

*****************************************

LEKCJA 3B - OPERACJE ARYTMETYCZNE

ZAD.1- LICZBY UJEMNE U2

**********************************************

START:

CLR A ;zeruj A

CLR C ;zeruj C

SUBB A,#0AH ;A <- 0-10 = -10

MOV R1,A ;zapamiętaj w R1

LCALL WRITE_HEX

LCALL WAIT_KEY ;wczytaj z klawiatury

ADD A,R1 ;A <- A+10 =-10+key

LCALL WRITE_HEX

SJMP $

0x08 graphic
Schemat algorytmu programu

W zapisie uzupełnienia do 2 wszystkie ujemne liczby mają najstarszy bit ustawiony na 1, natomiast najstarszy bit liczb dodatnich ustawiony jest na 0. Liczby w kodzie uzupełnienia do 2 są z zakresu -128...127. Przy dodawaniu liczb z tego zakresu, których suma jest większa od 127 powstaje problem, gdyż suma tych liczb odczytywana jest jako liczba ujemna. Aby zasygnalizować to zdarzenie używa się specjalnej flagi OV, która sygnalizuje wystąpienie tego problemu

ZADANIE NR.2

Program dokonuje mnożenia liczb w postaci BCD

;******************************************* ; LEKCJA 3B - OPERACJE ARYTMETYCZNE ; ZAD.2 - MNOŻENIE LICZB W FORMACIE BCD

;*******************************************

LJMP START

ORG 100H

START:

LCALL LCD_CLR

LCALL WAIT_KEY ;pobierz pierwszy czynnik

PUSH ACC

LCALL NKB_BCD ;wypisz na LCD

MOV A,#'*' ;znak iloczynu

LCALL WRITE_DATA ;wyświetl jako znak

LCALL WAIT_KEY ;pobierz drugi czynnik

PUSH ACC

LCALL NKB_BCD ;wypisz na LCD

MOV A,#'=' ;znak równości

LCALL WRITE_DATA ;wyświetl jako znak

POP ACC

POP B

MUL AB ;pomnóż czynniki

LCALL BIN1_BCD1 ;wypisz wynik na LCD

SJMP $

;************************************************************************

;Podprogram zamiany NKB na BCD

NKB_BCD:

MOV B,#10 ;zamień liczby na BCD

DIV AB ;dzieląc przez 10

SWAP A

ADD A,B

LCALL WRITE_HEX ;wypisz na LCD

RET

ALGORYTM PROGRAMU

0x08 graphic

Wynik wyprowadź na LCD

Dodaj do tej liczby

wartość z R1

Wczytaj liczbę z klawiatury

Wprowadź do rejestru R1

z ACC (-10)

START

Pobierz 1 czynnik i połóż na stosie

Podprogram NKB_BCD

Pobierz 2 czynnik i

połóż nastosie

START

Wyświetl znak (+)

Wyświetl znak (=)

Pobierz ze stosu do B i ACC

Pomnóż ACC iB

Podprogram NKB_BCD

Podprogram zamiany liczby NKB na BCD i wyświetlanie jej na LCD

Podprogram NKB_BCD



Wyszukiwarka

Podobne podstrony:
831
870 831 4 przewodowa z czka przelotowa
(12) Cechy indyw uczniaid 831 ppt
Projekt SNAKE Snake Game id 831 Nieznany
2 Teksty do pracy w grupachid 831
831
831
skrypt - wersja II, 822-831, ROZDZIAŁ X
831
831
831
831
831
Budowa rozk PW 831
831
akumulator do lancia delta i 831 abo 13 15 16 gt 16 gt ie 1
831

więcej podobnych podstron