Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Sonstiges » Arnold Assembler » Themenansicht

Autor Thread - Seiten: -1-
000
07.01.2021, 14:59 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo,

kann es sein das der Assembler beim Z80 einige Befehle nicht kennt?

z.B.:

Quellcode:

  LD   IYL, n
  LD   IYH, n
  LD   IXL, n
  LD   IXH, n
  LD   IYL, a
  LD   IYH, a
  LD   IXL, a
  LD   IXH, a
....
  LD   a, IYL
...



--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
07.01.2021, 15:17 Uhr
Creep



Die Doku sagt dazu:


Quellcode:
4.26. Z80UNDOC

Da es von Zilog naturgemäß keine Syntaxvorgaben für die undokumentierten Befehle gibt und wohl auch nicht jeder den kompletten Satz kennt, ist es vielleicht sinnvoll, diese Befehle hier kurz aufzuzählen:

Wie auch beim Z380 ist es möglich, die Byte-Hälften von IX und IY einzeln anzusprechen. Im einzelnen sind dies folgende Varianten:


INC Rx              LD R,Rx             LD  Rx,n
DEC Rx              LD Rx,R             LD  Rx,Ry
ADD/ADC/SUB/SBC/AND/XOR/OR/CP A,Rx

Dabei stehen Rx bzw. Ry für IXL, IXU, IYL oder IYU. Zu beachten ist jedoch, daß in der LD Rx,Ry-Variante beide Register aus dem gleichen Indexregister stammen müssen.

Die Kodierung von Schiebebefehlen besitzt noch eine undefinierte Bitkombination, die als SLIA- oder SLS-Befehl zugänglich ist. SLIA/SLS funktioniert wie SLA, es wird jedoch eine Eins und nicht eine Null in Bit 0 eingeschoben. Dieser Befehl kann, wie alle anderen Schiebebefehle auch, noch in einer weiteren Variante geschrieben werden:


        SLIA    R,(XY+d)

Dabei steht R für ein beliebiges 8-Bit-Register (aber nicht eine Indexregisterhälfte...), und (XY+d) für eine normale indexregister-relative Adressierung. Das Ergebnis dieser Operation ist, daß das Schiebeergebnis zusätzlich ins Register geladen wird. Dies funktioniert auch bei den RES- und SET-Befehlen:


        SET/RES R,n,(XY+d)

Des weiteren gibt es noch zwei versteckte I/O-Befehle:


        IN      (C) bzw. TSTI
        OUT     (C),0

Deren Funktionsweise sollte klar sein. ACHTUNG! Es gibt keine Garantie dafür, daß alle Z80-Masken alle diese Befehle beherrschen, und die Z80-Nachfolger lösen zuverlässig Traps aus. Anwendung daher auf eigene Gefahr...


--
- Privatnachrichten bitte per Email. Mein Postfach ist immer knapp vor Überlauf -
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
07.01.2021, 16:45 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

use z80undoc
statt
use z80, dann kannst du mit IXL, IXU, IYL oder IYU und neuerdings auch IXH, IYH arbeiten.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
07.01.2021, 17:05 Uhr
PIC18F2550

Avatar von PIC18F2550

Werde ich morgen ausprobieren.

Danke.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
08.01.2021, 10:23 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo volkerp & creep,

eure info war Gold richtig.

Einmal

cpu z80undoc

und

IXU bzw. IYU für den H-Teil


Quellcode:

TXT_Header:    DB    "Tiger Hash implementation for MSX",13,10
        DB    "by Grauw/TNI, 2004",13,10,10,"$"
        
TXT_Explain:    DB    "Syntax:",13,10
        DB    "TIGERSUM <filename>",13,10,"$"
        
TXT_Hashing:    DB    "Hashing$"




-------- TIGERSUM -----------
macro assembler 1.42 Beta [Bld 86]
(i386-unknown-win32)
(C) 1992,2012 Alfred Arnold
Motorola MPC821 Additions (C) 2012 Marcin Cieslak
68RS08-Generator (C) 2006 Andreas Bolsch
Mitsubishi M16C-Generator also (C) 1999 RMS
XILINX KCPSM(Picoblaze)-Generator (C) 2003 Andreas Wassatsch
TMS320C2x-Generator (C) 1994/96 Thomas Sailer
TMS320C5x-Generator (C) 1995/96 Thomas Sailer

assembling TIGERSUM.asm
PASS 1?[K
START #####################################################?[
sboxes.asm(1025)?[K
tiger.asm(813)?[K
TIGERSUM.asm(223)?[K
PASS 2?[K
START #####################################################?[
sboxes.asm(1025)?[K
tiger.asm(813)?[K
TIGERSUM.asm(223)?[K

0.04 seconds assembly time?[K

2061 lines source file?[K
2533 lines incl. macro expansions?[K
2 passes?[K
0 errors?[K
0 warnings?[K
P2BIN/C V1.42 Beta [Bld 86]
(C) 1992,2012 Alfred Arnold
TIGERSUM.p==>>TIGERSUM.bin (10025 Bytes)
PLIST/C V1.42 Beta [Bld 86]
(C) 1992,2012 Alfred Arnold

Code-Type Segment Start-Address Length (Bytes) End-Address
--------------------------------------------------------------
Zx80 CODE 00000100 2729 00002828
creator : AS 1.42 Beta [Bld 86]/i386-unknown-win32

altogether 10025 bytes CODE

Konnte jetzt fehlerfrei Übersetzt werden. Danke.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 08.01.2021 um 10:31 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Sonstiges ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek