Autor Thema: Z80 ist doof! (Oder wie geht das??)  (Gelesen 2996 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 446
  • Liked: 118
  • Karma: +16/-0
  • Geschlecht: Männlich
  • :P
Z80 ist doof! (Oder wie geht das??)
« am: 17. Februar 2017, 20:20:49 »
Ich überlege gerade wie man in Z80 ne Addition durchführt.  :motz:

Beispiel:

ld hl,1000
ld d,255
ld b,77

Wie bekommt man ein HL+D+B hin und zwar so das in HL 1332 steht?  :(
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Online TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 3014
  • Liked: 732
  • Karma: +36/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Z80 ist Geil! (Oder das geht ganz einfach!!!)
« Antwort #1 am: 17. Februar 2017, 21:37:32 »
Ich überlege gerade wie man in Z80 ne Addition durchführt.  Beispiel:
ld hl,1000
ld d,255
ld b,77
Wie bekommt man ein HL+D+B hin und zwar so das in HL 1332 steht?  :(

LD HL,1000
LD DE,255
LD BC,77

ADD HL,DE
ADD HL,BC

In diesem Fall wird die 16 Bit Addition des Z80 benutzt. Das Ergebnis befindet sich in HL.  :)
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 446
  • Liked: 118
  • Karma: +16/-0
  • Geschlecht: Männlich
  • :P
Re: Z80 ist doof! (Oder wie geht das??)
« Antwort #2 am: 17. Februar 2017, 22:29:58 »
Mein Problem ist immer noch das ganze mit High/Low Byte, Carry usw.

Habe es jetzt so gelöst:  :irre:

ld hl,1000

 ld d,0
 ld a,(XaltDurch8)
 ld e,a
 add hl,de

 ld d,0
 ld a,(YaltMal3)
 ld e,a
 add hl,de

Mit fehlt ein "ADD HL,wert" und ähnliches im Z80.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Online TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 3014
  • Liked: 732
  • Karma: +36/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Z80 ist einfach nur Spass!
« Antwort #3 am: 01. März 2017, 16:28:04 »
Es geht auch ein bischen schneller...


 ld hl,1000

 ld d,0
 ld a,(XaltDurch8)
 ld e,a
 add hl,de

 ld a,(YaltMal3)
 ld e,a
 add hl,de


Oder alternativ...


 xor a,a              ;A = 0 (doppelt so schnell wie ld a,0)

 ld  hl,1000

 ld  de,(XaltDurch8)
 ld  d,a              ;D = 0 setzen
 add hl,de

 ld  de,(YaltMal3)
 ld  d,a
 add hl,de
« Letzte Änderung: 01. März 2017, 16:36:03 von TFM »
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 446
  • Liked: 118
  • Karma: +16/-0
  • Geschlecht: Männlich
  • :P
Re: Z80 ist doof! (Oder wie geht das??)
« Antwort #4 am: 01. März 2017, 23:02:06 »
Danke, werde ich mir demnächst genauer anschauen.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Online TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 3014
  • Liked: 732
  • Karma: +36/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Z80 ist doof! (Oder wie geht das??)
« Antwort #5 am: 30. April 2020, 16:17:46 »
Hier noch ein paar Optimierungen:

http://z80-heaven.wikidot.com/optimization
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)