LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH
Imię i Nazwisko: Adamczuk Mariusz
Grupa: ED 5.3
Data wyk. ćwicz. 23.11.98
Numer ćwiczenia
3B
Temat ćwiczenia:
Ocena:
LJMP START
ORG 100H
START:
LCALL LCD_CLR
CLR A ;zeruj A
CLR C ;zeruj C
LCALL WAIT_KEY
MOV R0,A
LCALL WRITE_HEX
MOV A,#'-'
LCALL WRITE_DATA
MOV A,#10H
MOV A,#'='
MOV A,R0
ADD A,#0F6H ;A <- 0-1 = -1
SJMP $
Zeruj A
Zeruj C
Wczytaj liczbę do ACC
Przepisz ACC do R0
Wypisz znak(-)
Przepisz wartość z R0 do ACC
Sumuj ACC z R0
Wyświetl wynik
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
Lp
MNEM
AC
B
wyświetlacz
1
LJMP 0100H
00
2
LCALL 810CH
3
LCALL 811CH
21
4
MOV B,#0AH
09
5
DIVA B
0A
6
SWAP A
7
ADD A,B
8
9
LCALL 8104H
10
MOV A,#2BH
11
LCALL 8102H
12
09+
tomasz.kubiak.sap