AminetAminet
Search:
84716 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/cross/dis8080_OS4.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Disassembler for Intel 8080 processor
Author:Martin Aberg
Uploader:aGGreSSor (amitrans narod ru)
Type:dev/cross
Version:2022
Requires:InstallerLG
Architecture:ppc-amigaos
Distribution:aminet
Date:2022-01-28
Download:http://aminet.net/dev/cross/dis8080_OS4.lha - View contents
Readme:http://aminet.net/dev/cross/dis8080_OS4.readme
Downloads:315

============================== 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
output.

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

dis8080 tested and worked fine on the following configurations:

- AmigaOS 4.1 Final Edition (Kickstart 53.70, Workbench 53.14)

================================= 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> dis8080 < example/add.bin

It generates the following output.

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

        L000B   = $000B
        L860A   = $860A

        end
-----------------------------------------------------

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> dis8080 < example/add.bin -d 0x0009 2

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


        end
-----------------------------------------------------

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:
http://aminet.net/package/dev/cross/dis8080

Compiled and improved by

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

                home cross-compilation factory


Contents of dev/cross/dis8080_OS4.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                 9537   11420  83.5% -lh5- 5c58 Jan 28 14:15 dis8080.info
[unknown]                 6017   17336  34.7% -lh5- 2ae4 Jan 28 13:42 dis8080/dis8080
[unknown]                16295   20920  77.9% -lh5- bda3 Jan 17 22:08 dis8080/Docs.info
[unknown]                  923    2417  38.2% -lh5- 5fab Dec  6 00:00 dis8080/Docs/README
[unknown]                 3156    5120  61.6% -lh5- ff2f Oct  1  2020 dis8080/Docs/README.info
[unknown]                 9569   11420  83.8% -lh5- 9bbf Jan 17 22:07 dis8080/Example.info
[unknown]                   14      14 100.0% -lh0- c561 Dec  6 00:00 dis8080/Example/add.bin
[unknown]                  245     701  35.0% -lh5- 893b Jan 28 13:50 dis8080/Install
[unknown]                 1481    1824  81.2% -lh5- 0329 Oct 19  2020 dis8080/Install.info
[unknown]                16178   17408  92.9% -lh5- 2850 Jan 17 22:07 dis8080/Source.info
[unknown]                 3010   12948  23.2% -lh5- a612 Dec  6 00:00 dis8080/Source/dis8080.c
[unknown]                  829    1941  42.7% -lh5- 15f1 Jan 17 22:10 dis8080/Source/Makefile
[unknown]                  134     331  40.5% -lh5- d221 Dec  6 00:00 dis8080/Source/Makefile.orig
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        13 files   67388  103800  64.9%            Jan 29 04:00

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>