The AROS Archives(anonymous IP:,342) 


   o Audio (94)
   o Datatype (15)
   o Demo (46)
   o Development (243)
   o Document (61)
   o Driver (19)
   o Emulation (60)
   o Game (519)
   o Graphics (219)
   o Library (22)
   o Network (60)
   o Office (21)
   o Utility (245)
   o Video (18)

Total files: 1642

Full index file
Recent index file

Part of aros exec
 Readme for:  Development » Cross » dis8080.i386-aros.lha


Description: Disassembler for Intel 8080 processor
Download: dis8080.i386-aros.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 68kb
Version: 2022
Date: 28 Jan 22
Author: Martin Aberg
Submitter: aGGreSSor [CPU]
Requirements: ABIv0; i386
Category: development/cross
License: Freeware
Distribute: yes
FileID: 2452
Comments: 0
Snapshots: 0
Videos: 0
Downloads: 29  (Current version)
29  (Accumulated)
Votes: 0 (0/0)  (30 days/7 days)

[Show comments] [Show snapshots] [Show videos] [Show content] [Replace file] 
============================== F E A T U R E S ==============================

dis8080 is an Intel 8080 instruction disassembler. It reads machine
code from standard input and writes the disassembly to standard

============================ R E Q U I R E M E N T ==========================

dis8080 tested and worked fine on the following configurations:

- IcarOS i386               (Kickstart 51.51, Workbench 40.0, AROS ABIv0)
- AROS One i386             (Kickstart 51.51, Workbench 40.0, AROS ABIv0)

================================= U S A G E =================================

dis8080 [-d ADDR COUNT]

The option -d ADDR COUNT tells the disassembler to emit data
definitions instead of instructions for COUNT bytes, starting at
input offset ADDR. This option can be used multiple times.

Output from dis8080 can be assembled with an assembler such as vasm
or asmx.

============================= E X A M P L E S ===============================

To disassemble the file example/add.bin, issue:

1.AROS> dis8080 < example/add.bin

It generates the following output.

                lxi     b,L0009
                lxi     h,L000A
                jmp     L000B
                mov     d,d
                call    L860A

        L000B   = $000B
        L860A   = $860A


This does not look quite right, because:
* The two "lxi" instructions hint that the values at label L0009
  and L000A should be interpreted as data rather than instructions.
* "jmp" is unconditional so the "mov" will not be executed.
* The "jmp" target is inside the "call" instruction.
* "mov d,d" is not a commonly used instruction.

What is happening here is that the disassembler does not know that
following the "jmp" are two bytes of data, after which the program
instruction stream continues at address $000B. In other words, the
disassembler has become "out of phase". It is common to encounter
cases like this in production code.

To get a more realistic disassembly, mark the addresses $0009 and
$000A as data with the -d option:

1.AROS> dis8080 < example/add.bin -d 0x0009 2

                lxi     b,L0009
                lxi     h,L000A
                jmp     L000B
                db      $52             ; 'R'
                db      $cd
                ldax    b
                add     m


Now this looks better as locations $0009 and $000A are interpreted
as data rather than instructions. At label L000B the two data bytes
in memory are added together.

================================ S O U R C E ================================

Aminet backport:

Compiled and improved by

        ______ ______              ______ ______ 
 ______|:: .__|:: .__|_____ ______|:: ___|:: ___|______ _____ 
|: ,   |:  |  |:  |  |:  ,_|:  ,__|:___  |:___  |:  -  |:  ,_|
|__|___|______|______|___|   _____|______|______|______|___|

                home cross-compilation factory

Copyright © 2005 - 2024 The AROS Archives All Rights Reserved