Forum: PC-Programmierung 8088 - NEC V20


von Heinz F. (jump-at96)


Lesenswert?

brauche eure nette hilfe !
ich habe zwei BIOS ROM ics mit nur ein verschiedenes byte !
nur das zweite byte im rom ist unterschiedlich.

es geht dabei um daten und befehle für ein 8088 prozessor oder (NEC V20) 
in
zusammmenhang mit DOS 5.0 betriebssystem.

leider habe ich keine daten zu dem MASCHINENCODE / ASSEMBLERCODE des 
8088
gefunden. ich benötige die übersetzung in den ASSEMBLERCODE !
hier die ersten fünf bytes aus beiden ROMS !

1tes ROM: 00 00 40 00 00

2tes ROM: 00 30 40 00 00

ich weiß das es im DOS 5.0 ein short oder near JUMP sein muß !
leider finde ich im internet keine übersetzungstabelle.

vielen dank für eure hilfe

von Volker Z. (vzavza)


Lesenswert?

Suche nach "8088 opcode table"

von Pandur S. (jetztnicht)


Lesenswert?

Der 8088 ist mit dem 8086 kompatibel, identisch im Instruktionssatz. 
Also allenfalls nach 8086 schauen, oder IAPX86, iAPX8086

von Mario M. (thelonging)


Lesenswert?

Das sind Daten. Der Einsprung in BIOS-ROMs erfolgt 16 Bytes vom Ende.

von Volker Z. (vzavza)


Lesenswert?

Und nach einem Reset startet er an der Adresse  FFFF0H. Zu Spät.

: Bearbeitet durch User
von Angsthase (Gast)


Lesenswert?

AUf Adresse steht die Einsprungadresse für IRQ 0

von Angsthase (Gast)


Lesenswert?

die Beschreibung der InterruptVectortabelle

https://www.eeeguide.com/interrupt-structure-of-8086/

von Heinz F. (jump-at96)


Lesenswert?

vielleicht weiß von euch ja jemand wo ich einen DISASSEMBLER programm 
für
den 8088 oder NEC V20 bekommen kann.
danke im vorraus !

von 2⁵ (Gast)


Lesenswert?

Du arbeitest mit DOS 5? Da sollte doch DEBUG dabei sein - 
https://de.wikipedia.org/wiki/DEBUG

von Percy N. (vox_bovi)


Lesenswert?

Heinz F. schrieb:
> vielleicht weiß von euch ja jemand wo ich einen DISASSEMBLER
> programm für
> den 8088 oder NEC V20 bekommen kann.
> danke im vorraus !

Google kaputt?
https://www.chip.de/downloads/c1_downloads_hs_getfile_v1_29744273.html

http://eji.com/a86/

: Bearbeitet durch User
von Mario M. (thelonging)


Lesenswert?

Angsthase schrieb:
> AUf Adresse steht die Einsprungadresse für IRQ 0

Nö. Die Interrupt-Tabelle liegt im RAM und wird vom BIOS initialisiert.

von Pandur S. (jetztnicht)


Lesenswert?

Das mit dem Debuggen ist nicht ganz so trivial. Befehle koennen bis zu 6 
byte lang sein, und man kann auch Leerplaetze im code haben. Dann weiss 
man nicht mehr wo eine Instruktion beginnt.

von Heinz F. (jump-at96)


Lesenswert?

erst einmal vielen dank an alle netten spezialisten.
das ida pro free programm ist einfach extrem irre gut !
aber ich habe noch ein problem mit der speicheradressierung beim
8088. ich weiß, das er mit segmenten und zeigern arbeitet.
aber beim debugger blick ich nicht durch !

mein computer hat ROM Bios, RAM, FLASH ROM, CMOS RAM und STATIC RAM
speicher eingebaut.
ich würde gerne mit dem DEBUGGER einmal in diesen Speichern, den
inhalt anschauen.
beim ROM BIOS habe ich den inhalt in eine BINÄR datei kopiert und ihn
auf zwei PCs untersucht. denn das konnte ich ja ausbauen und auslesen.
nach dem start des debuggers konnte ich auf dem einem pc,
ab Adresse 0E46:0100 die Daten und op codes sehen.
aber wie finde ich die daten und op codes in den anderen speicher
einheiten. die kann ich ja nicht mit einem externen ROM READER auslesen.
ich verstehe das adressensystem nicht, beim 8088.
mit einem anderen PC , war beim DEBUGGER der erste bereich der adresse
(0E46:) anders. nur der zweite bereich (:0100) war gleich.
vieleicht kann mir in dieser sache ja auch jemand von euch helfen.

vielen dank im vorraus.

von MaWin (Gast)


Lesenswert?

Heinz F. schrieb:
> beim ROM BIOS habe ich den inhalt in eine BINÄR datei kopiert

Na ja, nicht jeder Chip muss mit A0..An und D0..D7 oder D15 des 
Prozessors verbunden sein, die Leitungen können auch vertauscht sein.

Daher ist es schlau, den Prozessor zu entfernen und von dort aus auf die 
Speicher lesend zuzugreifen  z.B. mit einem ICE in circuit emulator.

Das nützt aber auch nichts, wenn extern noch Banking Register oder 
ähnliche Adressumschaltung betrieben wird, die muss man dann gezielt 
ansprechen.

von Dirk B. (dirkb2)


Lesenswert?

Das CMOS-RAM sind ein paar Speicherstellen (meist) im Uhren-Chip (RTC).
Diese wird mit einer Batterie gepuffert, damit die Uhr weiter läuft wenn 
der PC aus ist und der Speicherinhalt wird erhalten.

Im Real-Mode besteht dei Adresse aus zwei Teilen. Dem Segment und dem 
Offset.
Beide sind 16-Bit groß.
Um die Echte Adresse zu bekommen, muss man das Segment mit 16 (0x10) 
multiplizieren und den Offset addieren.
So kommt man auf einen Adressbereich von 20 Bit, was 1 MB entspricht

* 16 entspricht links-shift um 4 Bit (oder eine Hexstelle)

0E46:0100 = 0E460 + 0100 = 0E560

Eine Adresse hat somit mehrere Darstellungen.
Der Offset überdeckt einen Bereich von 64 kB

Interressant ist auch die Segmente ab FF01 da man damit auch wieder auf 
die Bereiche ab 0000 zugreifen kann.

von Percy N. (vox_bovi)


Lesenswert?

Dirk B. schrieb:
> Interressant ist auch die Segmente ab FF01 da man damit auch wieder auf
> die Bereiche ab 0000 zugreifen kann.

Naja - fast ...

von rbx (Gast)


Lesenswert?

Heinz F. schrieb:
> leider habe ich keine daten zu dem MASCHINENCODE / ASSEMBLERCODE des
> 8088
> gefunden. ich benötige die übersetzung in den ASSEMBLERCODE !
> hier die ersten fünf bytes aus beiden ROMS !
>
> 1tes ROM: 00 00 40 00 00
>
> 2tes ROM: 00 30 40 00 00

Sowas geht in debug (s.o.) ganz einfach, man gibt beispielsweise bei 
Adresse 100 e "Hallo Asm-World" ein oder eben die Hexwerte, die 
übersetzt werden sollen.
Meistens hilft das, und das geht da z.B. mit

u100

u steht für unassemble.
Den assemblercode selbst kann man mit (in diesem Beispiel) a100 neu 
schreiben.

Interrupts werden mit p (proceed) übergangen.

man kann auch im Speicher herumnavigieren, aber wenn man ein paar 909090 
Reichen überspringen möchte, geht das mit g (go) Adresse.

Speichereinsicht mit d wie dump

http://www.eng.uerj.br/~raul/micro/DEBUG%20Manual.pdf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.