-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!.POSTED!epsilon.rdc.pl!not
-for-mail
From: Mariusz Kruk <M...@e...eu.org>
Newsgroups: pl.comp.programming
Subject: Re: Do osób znających instrukcje procesora Z80
Date: Sun, 19 Jun 2011 20:50:40 +0200
Organization: Denied!
Lines: 76
Message-ID: <s...@e...rdc.pl>
References: <5...@n...onet.pl>
NNTP-Posting-Host: epsilon.rdc.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1308509461 6200 77.252.106.53 (19 Jun 2011 18:51:01 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Sun, 19 Jun 2011 18:51:01 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
Xref: news-archive.icm.edu.pl pl.comp.programming:191049
[ ukryj 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
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
Najnowsze wątki
- 2025-07-25 Re: Boeing Bad Dream (Koszmar) Liner rozbity w Delhi ...
- 2025-07-24 Re: Wypadek kolejowy na stacji Wiesiółka- analiza tragicznego zdarzenia z czerwca 2001 roku.
- 2025-07-23 Re: Tysiące wypadków na niebezpiecznych przejazdach kolejowych a Polskie Linie Kolejowe nic nie robią odlat, bo kierowca pociągu nie ginie
- 2025-07-23 Re: Tysiące wypadków na niebezpiecznych przejazdach kolejowych a Polskie Linie Kolejowe nic nie robią odlat, bo kierowca pociągu nie ginie
- 2025-07-23 Teoria Organizacji w Ujęciu Totaliztycznym - NOWA MONOGRAFIA
- 2025-07-24 Warszawa => MENA New Business Manager <=
- 2025-07-24 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-24 Fundacja Wolność od Religii domaga się wyjaśnień ws zawierzenia Powiatu Wschowskiego Maryi Królowej Polski
- 2025-07-23 Teoria Organizacji w Ujęciu Totaliztycznym - NOWA MONOGRAFIA
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=