Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Tłumaczenie: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
IN A,(n) |
INPUT DATA = Wczytaj dane |
|||||||||||||||||||
Operacja: | A ← (n) | |||||||||||||||||||
Mnemonik: | IN | |||||||||||||||||||
Argumenty |
A,(n)
|
|||||||||||||||||||
Opis: |
Argument n jest umieszczany na dolnej połówce (od A0
do A7) magistrali adresowej w celu wybrania urządzenia we/wy na
jednym z dostępnych 256 portów. Zawartość Akumulatora również pojawia
się w tym samym czasie na górnej połówce (A8 do A15)
magistrali adresowej. Następnie jeden bajt z wybranego portu jest
umieszczany przez adresowane urządzanie na magistrali danych, skąd
mikroprocesor odczytuje go do rejestru A.
|
|||||||||||||||||||
Zmieniane znaczniki: | Żaden | |||||||||||||||||||
Przykład: | Jeśli Akumulator ma zawartość 23H , a bajt
7BH jest dostępny w urządzeniu zewnętrznym, które zostało
skojarzone z portem we/wy 01H , to po wykonaniu instrukcji
IN A,(01H) do akumulatora trafi 7BH . |
IN r,(C) |
INPUT DATA = Wczytaj dane |
|||||||||||||||||||||||||||||||||||||||||||
Operacja: | r ← (C) | |||||||||||||||||||||||||||||||||||||||||||
Mnemonik: | IN | |||||||||||||||||||||||||||||||||||||||||||
Argumenty |
r,(C)
|
|||||||||||||||||||||||||||||||||||||||||||
Opis: |
Zawartość rejestru C jest umieszczana na dolnej połówce
(A0 - A7) magistrali adresowej w celu wybrania
urządzenia we/wy na jednym z 256 możliwych portów. Zawartość rejestru B
jest również w tym samym czasie umieszczana na górnej połówce
(A8 - A15) magistrali adresowej. Następnie
jeden bajt z wybranego portu zostaje umieszczony na magistrali danych
przez zaadresowane urządzenie we/wy, skąd mikroprocesor pobiera go do
rejestru r, który może być dowolnym z dostępnych rejestrów 8-bitowych.
Poniższa tabela przedstawia sposób kodowania tych rejestrów w kodzie
operacyjnym instrukcji.
|
|||||||||||||||||||||||||||||||||||||||||||
Zmieniane znaczniki: | S jest ustawiany na jeden zgodnie z bitem nr 7
wczytanych danych Z jest ustawiany na 1, jeśli wczytany bajt ma wartość zero, inaczej jest zerowany H jest zerowany P / V jest ustawiany na 1, jeśli wczytany bajt posiada parzystą liczbę bitów o stanie 1, inaczej jest zerowany N jest zerowany C nie jest zmieniany |
|||||||||||||||||||||||||||||||||||||||||||
Przykład: | Jeśli zawartością rejestru C jest 07H , a w
urządzeniu zewnętrznym skojarzonym z portem 07H znajduje
się gotowy do odczytu bajt 7BH , to po wykonaniu instrukcji
IN D,(C) w rejestrze D znajdzie się 7BH . |
OUT (n),A |
OUTPUT DATA = Wyślij dane |
|||||||||||||||||||
Operacja: | (n) ← A | |||||||||||||||||||
Mnemonik: | OUT | |||||||||||||||||||
Argumenty |
(n),A
|
|||||||||||||||||||
Opis: |
Argument n jest umieszczany na dolnej połówce (od A0
do A7) magistrali adresowej w celu wybrania urządzenia we/wy na
jednym z dostępnych 256 portów. Zawartość Akumulatora również pojawia
się w tym samym czasie na górnej połówce (A8 do A15)
magistrali adresowej. Następnie bajt z Akumulatora zostaje umieszczony
na magistrali danych i zapisany w wybranym urządzeniu we/wy.
|
|||||||||||||||||||
Zmieniane znaczniki: | Żaden | |||||||||||||||||||
Przykład: | Jeśli Akumulator ma zawartość 23H , to po
wykonaniu instrukcji OUT (01H),A bajt 23H
zostaje zapisany w urządzeniu we/wy podłączonym do portu we/wy o adresie
01H . |
OUT (C),r |
OUTPUT DATA = Wyślij dane |
|||||||||||||||||||||||||||||||
Operacja: | (C) ← r | |||||||||||||||||||||||||||||||
Mnemonik: | OUT | |||||||||||||||||||||||||||||||
Argumenty |
(C),r
|
|||||||||||||||||||||||||||||||
Opis: |
Zawartość rejestru C jest umieszczana na dolnej połówce
(A0 - A7) magistrali adresowej w celu wybrania
urządzenia we/wy na jednym z 256 możliwych portów. Zawartość rejestru B
jest również w tym samym czasie umieszczana na górnej połówce
(A8 - A15) magistrali adresowej. Następnie bajt
z rejestru r jest umieszczany na magistrali danych i zapisany do
wybranego urządzenia zewnętrznego. Rejestr r może być dowolnym rejestrem
8 bitowym danych mikroprocesora. Poniższa tabela przedstawia sposób
kodowania tych rejestrów w kodzie operacyjnym instrukcji.
|
|||||||||||||||||||||||||||||||
Zmieniane znaczniki: | Żaden | |||||||||||||||||||||||||||||||
Przykład: | Jeśli zawartością rejestru C jest 01H , a w
rejestrze D znajduje się 5AH , to przy wykonaniu instrukcji
OUT (C),D bajt 5AH jest zapisywany do
urządzenia peryferyjnego przydzielonego do portu we/wy o adresie
01H . |
INI |
INPUT DATA AND INCREMENT HL = Wczytaj dane i zwiększ HL |
|||||||||||||||||||
Operacja: | (HL) ← (C), B ← B-1, HL ← HL+1 | |||||||||||||||||||
Mnemonik: | INI | |||||||||||||||||||
Kod operacyjny |
|
|||||||||||||||||||
Opis: |
Zawartość rejestru C jest umieszczana na dolnej połówce
(A0 - A7) magistrali adresowej w celu wybrania
urządzenia we/wy na jednym z 256 możliwych portów. Rejestr B może być
używany jako licznik bajtów, a jego zawartość jest również w tym samym
czasie umieszczana na górnej połówce (A8 - A15)
magistrali adresowej. Następnie bajt z zaadresowanego urządzenia we/wy
jest umieszczany na magistrali danych, skąd pobiera go mikroprocesor.
Pobrany bajt jest umieszczany w komórce pamięci wskazywanej przez
zawartość pary rejestrów HL. Na koniec licznik w rejestrze B jest
zmniejszany o 1, a zawartość pary rejestrów HL jest zwiększana o 1.
|
|||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1, jeśli B-1 = 0, inaczej jest zerowany H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
|||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , B zawiera
10H , HL zawiera 1000H , a bajt 7BH
jest dostępny do odczytu w urządzeniu peryferyjnym współpracującym z
portem o adresie 07H , to po wykonaniu instrukcji INI
komórka pamięci o adresie 1000H będzie zawierała 7BH ,
para rejestrów HL przyjmie zawartość 1001H , a w rejestrze B
znajdzie się 0FH . |
INIR |
INPUT DATA, INCREMENT HL AND REPEAT = Wczytaj dane, zwiększ HL i powtarzaj |
||||||||||||||||||||||
Operacja: | (HL) ← (C), B ← B-1, HL ← HL+1 i powtarzaj dopóki B ≠ 0 | ||||||||||||||||||||||
Mnemonik: | INIR | ||||||||||||||||||||||
Kod operacyjny |
|
||||||||||||||||||||||
Opis: |
Zawartość rejestru C jest umieszczana na dolnej połówce
(A0 - A7) magistrali adresowej w celu wybrania
urządzenia we/wy na jednym z 256 możliwych portów. Rejestr B może być
używany jako licznik bajtów, a jego zawartość jest również w tym samym
czasie umieszczana na górnej połówce (A8 - A15)
magistrali adresowej. Następnie bajt z zaadresowanego urządzenia we/wy
jest umieszczany na magistrali danych, skąd pobiera go mikroprocesor.
Pobrany bajt jest umieszczany w komórce pamięci wskazywanej przez
zawartość pary rejestrów HL. Licznik w rejestrze B jest zmniejszany o 1,
a zawartość pary rejestrów HL jest zwiększana o 1. Jeśli po zmniejszeniu
rejestr B osiągnie wartość 0, to instrukcja jest przerywana. Jeśli
rejestr B nie zawiera zera, to licznik rozkazów PC
(ang. Program Counter) zostaje zmniejszony o 2 i instrukcja jest
powtarzana. Po każdym przesłaniu danych rozpoznawane są przerwania oraz
wykonywane dwa cykle odświeżania. Uwaga: Jeśli B
zostanie ustawiony na 0 przed wykonaniem instrukcji, to nastąpi
pobranie 256 bajtów danych.
|
||||||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1 H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
||||||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , B zawiera
03H , HL zawiera 1000H , a w urządzeniu
peryferyjnym współpracującym z portem we/wy o adresie 07H
są dostępne do odczytu następujące bajty:51H to po wykonaniu instrukcji 1000H zawiera 51H 1001H zawiera 0A9H 1002H zawiera 03H |
IND |
INPUT DATA AND DECREMENT HL = Wczytaj dane i zmniejsz HL |
|||||||||||||||||||
Operacja: | (HL) ← (C), B ← B-1, HL ← HL-1 | |||||||||||||||||||
Mnemonik: | IND | |||||||||||||||||||
Kod operacyjny |
|
|||||||||||||||||||
Opis: |
Zawartość rejestru C jest umieszczana na dolnej połówce
(A0 - A7) magistrali adresowej w celu wybrania
urządzenia we/wy na jednym z 256 możliwych portów. Rejestr B może być
używany jako licznik bajtów, a jego zawartość jest również w tym samym
czasie umieszczana na górnej połówce (A8 - A15)
magistrali adresowej. Następnie bajt z zaadresowanego urządzenia we/wy
jest umieszczany na magistrali danych, skąd pobiera go mikroprocesor.
Pobrany bajt jest umieszczany w komórce pamięci wskazywanej przez
zawartość pary rejestrów HL. Na koniec licznik w rejestrze B oraz para
rejestrów HL są zmniejszane o 1.
|
|||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1, jeśli B-1 = 0, inaczej jest zerowany H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
|||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , B zawiera
10H , HL zawiera 1000H , a bajt 7BH
jest dostępny do odczytu w urządzeniu peryferyjnym współpracującym z
portem o adresie 07H , to po wykonaniu instrukcji IND
komórka pamięci o adresie 1000H będzie zawierała 7BH ,
para rejestrów HL przyjmie zawartość 0FFFH , a w rejestrze B
znajdzie się 0FH . |
INDR |
INPUT DATA, DECREMENT HL AND REPEAT = Wczytaj dane, zmniejsz HL i powtarzaj |
||||||||||||||||||||||
Operacja: | (HL) ← (C), B ← B-1, HL ← HL-1 i powtarzaj dopóki B ≠ 0 | ||||||||||||||||||||||
Mnemonik: | INDR | ||||||||||||||||||||||
Kod operacyjny |
|
||||||||||||||||||||||
Opis: |
Zawartość rejestru C jest umieszczana na dolnej połówce
(A0 - A7) magistrali adresowej w celu wybrania
urządzenia we/wy na jednym z 256 możliwych portów. Rejestr B może być
używany jako licznik bajtów, a jego zawartość jest również w tym samym
czasie umieszczana na górnej połówce (A8 - A15)
magistrali adresowej. Następnie bajt z zaadresowanego urządzenia we/wy
jest umieszczany na magistrali danych, skąd pobiera go mikroprocesor.
Pobrany bajt jest umieszczany w komórce pamięci wskazywanej przez
zawartość pary rejestrów HL. Licznik w rejestrze B i para rejestrów HL
są zmniejszane o 1. Jeśli po zmniejszeniu rejestr B osiągnie wartość 0,
to instrukcja jest przerywana. Jeśli rejestr B nie zawiera zera, to
licznik rozkazów PC (ang. Program Counter)
zostaje zmniejszony o 2 i instrukcja jest powtarzana. Po każdym
przesłaniu danych rozpoznawane są przerwania oraz wykonywane dwa cykle
odświeżania. Uwaga: Jeśli B zostanie ustawiony na 0
przed wykonaniem instrukcji, to nastąpi pobranie 256 bajtów danych.
|
||||||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1 H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
||||||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , B zawiera
03H , HL zawiera 1000H , a w urządzeniu
peryferyjnym współpracującym z portem we/wy o adresie 07H
są dostępne do odczytu następujące bajty:51H to po wykonaniu instrukcji 0FFEH zawiera 51H 0FFFH zawiera 0A9H 1000H zawiera 03H |
OUTI |
OUTPUT DATA AND INCREMENT HL = Wczytaj dane i zwiększ HL |
|||||||||||||||||||
Operacja: | (C) ← (HL), B ← B-1, HL ← HL+1 | |||||||||||||||||||
Mnemonik: | OUTI | |||||||||||||||||||
Kod operacyjny |
|
|||||||||||||||||||
Opis: |
Zawartość pary rejestrów HL jest umieszczana na magistrali adresowej,
aby wybrać komórkę pamięci z danymi. Bajt zawarty w tej komórce zostaje
pobrany i tymczasowo przechowany przez mikroprocesor. Następnie, po
zmniejszeniu o 1 zawartości rejestru B, zawartość rejestru C jest
umieszczana na dolnej połówce (A0 - A7)
magistrali adresowej w celu wybrania urządzenia we/wy współpracującego z
jednym z 256 możliwych portów. Rejestr B może być wykorzystywany jako
licznik bajtów, a jego zmniejszona o 1 zawartość jest umieszczana na
górnej połówce (A8 - A15) magistrali adresowej.
Pobrany wcześniej bajt z pamięci jest teraz umieszczany na magistrali
danych i zapisywany do wybranego urządzenia peryferyjnego. Na koniec
para rejestrów HL jest zwiększana o 1.
|
|||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1, jeśli B-1 = 0, inaczej jest zerowany H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
|||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , B zawiera
10H , HL zawiera 1000H , a komórka pamięci o
adresie 1000H przechowuje bajt 59H , to po
wykonaniu instrukcji OUTI rejestr B będzie zawierał
0FH , para rejestrów HL przyjmie zawartość 1001H , a
bajt 59H zostanie zapisany do urządzenia peryferyjnego w
porcie we/wy o adresie 07H . |
OTIR |
OUTPUT DATA, INCREMENT HL AND REPEAT = Wczytaj dane, zwiększ HL i powtarzaj |
||||||||||||||||||||||
Operacja: | (C) ← (HL), B ← B-1, HL ← HL+1 i powtarzaj dopóki B ≠ 0 | ||||||||||||||||||||||
Mnemonik: | OTIR | ||||||||||||||||||||||
Kod operacyjny |
|
||||||||||||||||||||||
Opis: |
Zawartość pary rejestrów HL jest umieszczana na magistrali adresowej,
aby wybrać komórkę pamięci z danymi. Bajt zawarty w tej komórce zostaje
pobrany i tymczasowo przechowany przez mikroprocesor. Następnie, po
zmniejszeniu o 1 zawartości rejestru B, zawartość rejestru C jest
umieszczana na dolnej połówce (A0 - A7)
magistrali adresowej w celu wybrania urządzenia we/wy współpracującego z
jednym z 256 możliwych portów. Rejestr B może być wykorzystywany jako
licznik bajtów, a jego zmniejszona o 1 zawartość jest umieszczana na
górnej połówce (A8 - A15) magistrali adresowej.
Pobrany wcześniej bajt z pamięci jest teraz umieszczany na magistrali
danych i zapisywany do wybranego urządzenia peryferyjnego. Na koniec
para rejestrów HL jest zwiększana o 1. Jeśli zmniejszony o 1 rejestr B
osiągnie wartość 0, to instrukcja jest przerywana. Jeśli rejestr B nie
zawiera zera, to licznik rozkazów PC (ang. Program
Counter) zostaje zmniejszony o 2 i instrukcja jest powtarzana. Po
każdym przesłaniu danych rozpoznawane są przerwania oraz wykonywane dwa
cykle odświeżania. Uwaga: Jeśli B zostanie ustawiony na
0 przed wykonaniem instrukcji, to nastąpi zapis 256 bajtów danych.
|
||||||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1 H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
||||||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , rejestr B
zawiera 03H , para rejestrów HL zawiera 1000H ,
a poniższe komórki pamięci posiadają następującą zawartość:1000H zawiera 51H 1001H zawiera 0A9H 1002H zawiera 03H to po wykonaniu instrukcji 51H |
OUTD |
OUTPUT DATA AND DECREMENT HL = Wczytaj dane i zmniejsz HL |
|||||||||||||||||||
Operacja: | (C) ← (HL), B ← B-1, HL ← HL-1 | |||||||||||||||||||
Mnemonik: | IND | |||||||||||||||||||
Kod operacyjny |
|
|||||||||||||||||||
Opis: |
Zawartość pary rejestrów HL jest umieszczana na magistrali adresowej,
aby wybrać komórkę pamięci z danymi. Bajt zawarty w tej komórce zostaje
pobrany i tymczasowo przechowany przez mikroprocesor. Następnie, po
zmniejszeniu o 1 zawartości rejestru B, zawartość rejestru C jest
umieszczana na dolnej połówce (A0 - A7)
magistrali adresowej w celu wybrania urządzenia we/wy współpracującego z
jednym z 256 możliwych portów. Rejestr B może być wykorzystywany jako
licznik bajtów, a jego zmniejszona o 1 zawartość jest umieszczana na
górnej połówce (A8 - A15) magistrali adresowej.
Pobrany wcześniej bajt z pamięci jest teraz umieszczany na magistrali
danych i zapisywany do wybranego urządzenia peryferyjnego. Na koniec
para rejestrów HL jest zmniejszana o 1.
|
|||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1, jeśli B-1 = 0, inaczej jest zerowany H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
|||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , B zawiera
10H , HL zawiera 1000H , a komórka pamięci o
adresie 1000H przechowuje bajt 59H , to po
wykonaniu instrukcji OUTD rejestr B będzie zawierał
0FH , para rejestrów HL przyjmie zawartość 0FFFH , a
bajt 59H zostanie zapisany do urządzenia peryferyjnego w
porcie we/wy o adresie 07H . |
OTDR |
OUTPUT DATA, DECREMENT HL AND REPEAT = Wczytaj dane, zmniejsz HL i powtarzaj |
||||||||||||||||||||||
Operacja: | (C) ← (HL), B ← B-1, HL ← HL-1 i powtarzaj dopóki B ≠ 0 | ||||||||||||||||||||||
Mnemonik: | OTDR | ||||||||||||||||||||||
Kod operacyjny |
|
||||||||||||||||||||||
Opis: |
Zawartość pary rejestrów HL jest umieszczana na magistrali adresowej,
aby wybrać komórkę pamięci z danymi. Bajt zawarty w tej komórce zostaje
pobrany i tymczasowo przechowany przez mikroprocesor. Następnie, po
zmniejszeniu o 1 zawartości rejestru B, zawartość rejestru C jest
umieszczana na dolnej połówce (A0 - A7)
magistrali adresowej w celu wybrania urządzenia we/wy współpracującego z
jednym z 256 możliwych portów. Rejestr B może być wykorzystywany jako
licznik bajtów, a jego zmniejszona o 1 zawartość jest umieszczana na
górnej połówce (A8 - A15) magistrali adresowej.
Pobrany wcześniej bajt z pamięci jest teraz umieszczany na magistrali
danych i zapisywany do wybranego urządzenia peryferyjnego. Na koniec
para rejestrów HL jest zmniejszana o 1.. Jeśli zmniejszony o 1 rejestr B
osiągnie wartość 0, to instrukcja jest przerywana. Jeśli rejestr B nie
zawiera zera, to licznik rozkazów PC (ang. Program
Counter) zostaje zmniejszony o 2 i instrukcja jest powtarzana. Po
każdym przesłaniu danych rozpoznawane są przerwania oraz wykonywane dwa
cykle odświeżania. Uwaga: Jeśli B zostanie ustawiony na
0 przed wykonaniem instrukcji, to nastąpi pobranie 256 bajtów
danych.
|
||||||||||||||||||||||
Zmieniane znaczniki: | S - stan nieokreślony Z - jest ustawiany na 1 H - stan nieokreślony P / V - stan nieokreślony N - jest ustawiany na 1 C - stan nieokreślony |
||||||||||||||||||||||
Przykład: | Jeśli rejestr C zawiera 07H , rejestr B
zawiera 03H , para rejestrów HL zawiera 1000H ,
a poniższe komórki pamięci posiadają następującą zawartość:0FFEH zawiera 51H 0FFFH zawiera 0A9H 1000H zawiera 03H to po wykonaniu instrukcji 51H |
Znacznik N jest kopią bitu nr 7 ostatniej danej zapisanej lub odczytanej z portu we/wy. Może zatem przyjmować wartości 0 lub 1.
Znaczniki C i H są ustawiane następująco:
Weź rejestr C, dodaj do niego 1 (rachunki prowadzimy osobno, dane w rejestrach nie są zmieniane), jeśli instrukcja zwiększa HL, inaczej odejmij od rejestru C 1. Teraz dodaj do rejestru C daną odczytaną lub zapisaną do portu we/wy i przeniesienie z tego dodawania wstaw do znaczników C i H (zatem znaczniki C i H posiadają taką samą wartość). Jest to bardzo dziwne, ale wszelkie testy potwierdzają tę regułę!!!Pedro Gimeno (pgimeno@geocities.com) rozpracował znacznik P / V. Wynik zależy od rejestru B, 3 młodszych bitów rejestru C oraz 3 młodszych bitów danej odczytanej lub zapisanej do portu we/wy. Wszystko, co jest prawdziwe dla INI/INIR i IND/INDR, prawdziwe również jest dla OUTI/OTIR oraz OUTD/OTDR. W opisie stosowana jest notacja C.2 do oznaczania bitu nr 2 rejestru C. "inp" to odczytany (lub wysłany) bajt.
Najpierw spójrz na bity 1 i 0 zarówno rejestru C jak i wczytanego bajtu i wg nich w poniższej tabeli wybierz tymczasowy wynik temp1
C.1 | C.0 | inp.1 | inp.0 | Temp1 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 |
Potrzebny ci również będzie dodatkowy wynik tymczasowy, który zależy od rejestru B (od wszystkich jego bitów), zgodnie z poniższym pseudokodem:
Jeśli B.3 = B.2 = B.1 = B.0 = 0, to niech Temp2 = Parity(B) xor (B.4 or (B.6 and not B.5))Postać funkcji (B.0 or (B.2 and not B.1)) otrzymano z tablic Karnaugha:
B.2 B.1 B.0 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Wartość | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 |
Dla zamknięcia tematu poniżej jest pełna tablica wartości Temp2 zgodnie z B:
0123456789ABCDEF |
← (młodsze 4 bity) | |
00 |
0011010011001011 |
|
10 |
0100101100110100 |
|
20 |
1100101100110100 |
|
30 |
1011010011001011 |
|
40 |
0100101100110100 |
|
50 |
1011010011001011 |
|
60 |
0011010011001011 |
|
70 |
0100101100110100 |
|
80 |
1100101100110100 |
|
90 |
1011010011001011 |
|
A0 |
0011010011001011 |
|
B0 |
0100101100110100 |
|
C0 |
1011010011001011 |
|
D0 |
0100101100110100 |
|
E0 |
1100101100110100 |
|
F0 |
1011010011001011 |
|
↑ (starsze 4 bity) |
Na koniec znacznik P / V otrzymuje wartość:
P / V = Temp1 xor Temp2 xor C.2 xor inp.2Operacje mające na celu otrzymanie wartości znacznika P / V są takie same jak dla INI/INIR, lecz tablica dla Temp1 jest inna:
C.1 | C.0 | inp.1 | inp.0 | Temp1 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.