-
Data: 2011-06-19 18:50:40
Temat: Re: Do osób znających instrukcje procesora Z80
Od: Mariusz Kruk <M...@e...eu.org> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]epsilon$ while read LINE; do echo \>"$LINE"; done < "Piotrek"
>Załóżmy, że ograniczymy rozważania do operacji na rejestrach 8-bitowych. Moje
>wątpliwości dotyczyły zachowania flag C (przeniesienia, ustawianej gdy nastąpi
>przeniesienie z bitu 7, tzn. wynik nie zmieści się na 8 bitach) i H
>(półprzeniesienia, ustawianej gdy dojdzie do przeniesienia z bitu 3 na 4).
Niezależnie od tego, czy odejmowanie jest tłumaczone, czy nie,
http://www.z80.info/z80code.htm twierdzi, że przy SUB:
[...]
C or carry flag 1 if answer <0 else 0
Z or zero flag 1 if answer = 0 else 0
P flag 1 if overflow in twos complement else 0
S or sign flag 1 if 127<answer<256 else 0
N flag 1
H or half carry flag 1 if borrow from bit 4 else 0
[...]
A przy SBC:
[...]
C or carry flag 1 if <0 else 0
Z or zero flag 1 if result = 0 else 0
P flag 1 if TC >127 or <-128 else 0
S or sign flag 1 if 127 < n <256 else 0
N flag 1
H or half carry flag 1 if borrow from bit 12 else 0
[...]
(w ostatniej linijce oczywisty błąd, powinno być "bit 4"; dalej jest
wersja szesnastobitowa, w której powinno być o bicie dwunastym).
>Rozpatrywane były następujące operacje:
>
>1) działanie 3 - 5 (w praktyce załadowanie pierwszej wartości do rejestru A i
>wykonanie instrukcji SUB 5).
>
>Moim zdaniem nie dojdzie tu do półprzeniesienia, zdaniem mojego dyskutanta-tak.
>Oto jak rozumowałem:
>
>3 - 5 to dla procesora de facto 3 + (-5), 3 to bitowo 00000011,
>-5 to 11111011 (działamy w U2).
>
>Zapisując to jedno pod drugim i rachując pisemnie od prawej do lewej (od
>najmłodszego bitu do najstarszego) i zakładając, że procesor liczy to tak
>samo, dostaję kolejno:
>
>- na pozycji 0 sumę 1 + 1 -> mamy przeniesienie z bitu 0 na 1
>- na pozycji 1 sumę 1 + 1 + 1 (przeniesienie) -> mamy przeniesienie z 1 na 2
>- na pozycji 2 sumę 0 + 0 + 1 (przeniesienie) -> brak przeniesienia z 2 na 3
>
>Ponieważ ostatnie działanie nie wygenerowało nowego przeniesienia, a dalej nie
>mamy już sytuacji, w której sumowalibyśmy dwie jedynki, nie ma bata, żeby
>wygenerowało nam się nowe przeniesienie, w szczególności przeniesienie z bitu
>3 na 4. Zdaniem mojego dyskutanta jednak występuje. Gdzie tu błądzę?
Najwyraźniej jednak nie ma zamiany na dodawanie, tylko jest od 00000011
odjęcie 00000101. Wtedy jak najbardziej będziemy pożyczać od bitu
trzeciego aż do przepełnienia.
Reszta przypadków idzie analogicznie.
>Zastanawiające jest to, że mój tok rozumowania we wszystkich przypadkach
>prowadzi do stwierdzenia będącego negacją stanu faktycznego. Wygląda na to, że
>nie myślę źle, tylko moje rozumowanie opiera się na jakiejś błędnej
>przesłance.
Czyżby jednak zamiana odejmowania na dodawanie nie była słusznym
posunięciem?
W każdym razie, http://www.z80.info/zip/z80cpu_um.pdf wcale nie mówi o
zamianie odejmowania na dodawanie, a wręcz przeciwnie, pokazuje na
przykład na stronie 78 odejmowanie i jego skutki dla sygnalizacji
przepełnienia.
--
\------------------------/
| K...@e...eu.org | http://www.nieruchomosci.pl/mieszkanie,38804171
| http://epsilon.eu.org/ |
/------------------------\
Następne wpisy z tego wątku
- 19.06.11 21:06 Artur Muszyński
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-17 Nieustający podziw...
- 2025-01-17 zawsze parkuj tyłem do ulicy
- 2025-01-16 nie będzie naprawy pod blokiem?
- 2025-01-16 korytarz zycia
- 2025-01-16 Katowice => Key Account Manager (ERP) <=
- 2025-01-16 Środa Wielkopolska => Specjalista ds. public relations <=
- 2025-01-16 Poznań => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-16 Gdańsk => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-16 Re: Bodnatura BARDZO tanio wyceniła Owsiaka. HAŃBA!
- 2025-01-16 Warszawa => Software .Net Developer <=
- 2025-01-15 Gdańsk => System Architect (Java background) <=
- 2025-01-15 Żerniki => Specjalista ds. Employer Brandingu <=
- 2025-01-15 Kraków => User Experience Designer <=
- 2025-01-15 CYA: Minister Finansów odbija piłeczkę do PKW :-) [obiektywny brak możliwości wykonania wewnętrznie sprzecznej uchwały]
- 2025-01-15 Gdańsk => Solution Architect (Java background) <=