OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 00:41

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 7 ] 
Autor Zpráva
PříspěvekNapsal: 09.03.2017, 10:40 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Jen bych se chtěl ujistit, jestli to správně chápu: když potřebuju zjistit, zda je v reg.A větší číslo, než v reg.B, musím použít instrukci CP a pak postupně prověřit flagy Z, C, a S ? Tedy zhruba takhle:

Kód:
  cp b
  jr z, NENI
  jr c, NENI
  jp p, JE

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 09.03.2017, 10:51 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2192 times
Been thanked: 894 times
Steve's Software to uci takto:
Kód:
ld b,10
ld a,5
cp b
jr z, equal  ;b=a
jr nc, over  ;b>a
jr c, less ; b=<a

_________________
// na co myslím, když sedím u oldkompů: Blood Products from Genetic Vaccine Recipients


Naposledy upravil SCjoe dne 09.03.2017, 10:53, celkově upraveno 1

Nahoru
 Profil  
 
PříspěvekNapsal: 09.03.2017, 10:52 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
Jiiira píše:
Jen bych se chtěl ujistit, jestli to správně chápu: když potřebuju zjistit, zda je v reg.A větší číslo, než v reg.B, musím použít instrukci CP a pak postupně prověřit flagy Z, C, a S ? Tedy zhruba takhle:

Kód:
  cp b
  jr z, NENI
  jr c, NENI
  jp p, JE


V podstate. Ale to posledné jp p, JE už nie je potrebné. Na tomto mieste už je jasné, že A je väčšie ako B.

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
PříspěvekNapsal: 09.03.2017, 11:02 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Jiiira píše:
musím použít instrukci CP a pak postupně prověřit flagy Z, C, a S ?
Flag S nie je potrebny, pri porovnani kladnych cisel (8 bitova hodnota v rozsahu 0..255) si vystacis s flagmi Z a C.

Najlepsi sposob ako si zapametat nastavenie flagov Z a C pri porovnavani je vediet, ze porovnanie sa interne vykona ako normalne odcitanie, podla vysledku sa nastavia flagy ale samotny vysledok sa potom zahodi. Cize instrukcia cp b je z hladiska nastavenia flagov plne ekvivalentna intrukcii sub b. A flagy sa nastavia takto:
Z sa nastavi ak je vysledok odcitania nulovy. Cize ak su odcitavane (a teda aj porovnavane) cisla rovnake.
C sa nastavi ak dojde pri odcitani k preteceniu. Cize ak od mensieho cisla v A odcitavas nejake vecsie cislo.
Takze zhrnute a podciarknute, ak je cislo v A mensie nez to s ktorym ho porovnavas, bude nastavene C, a ak je rovnake, bude nastavene Z. Ak je vecsie, nebude nastavene ani C a ani Z.


Nahoru
 Profil  
 
PříspěvekNapsal: 09.03.2017, 11:06 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
OK, pochopil jsem, děkuju všem za rady :thumbup:

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2017, 13:47 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1100
Has thanked: 100 times
Been thanked: 157 times
Imho je to cele spatne, spravne bys to mel dostat do varianty kdy testujes ze A < B. Proste otocit kde je co, abys mel jen jednu podminku. .)

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
PříspěvekNapsal: 07.04.2017, 19:02 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Ale to je nie vzdy vyhodne. Ked sa neda jednoducho spravit aby si vysledky dostal v tejto variante, a ked ich este navyse takto v registroch potrebujes mat umiestnene aj po porovnani a skoku, tak je vyhodnejsie pouzit dva podmienene skoky.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 7 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz