8086/88 emulator for ubuntu [closed]
Asked Answered
R

5

10

I need to emulate assembly for 8086 program in Ubuntu.

I searched repository and I found 8085 emulator which is not similar to 8086.

Is there any 8086/88 assembly emulator for ubuntu?

Rothermere answered 18/12, 2011 at 21:50 Comment(2)
What exactly do you want to do? What kind of platform would your program run on? What format is the binary in?Uzzi
@Uzzi I wanna to emulate assembly for 8086Rothermere
U
10

I suggest looking at

Edit Found:

  • bcc

    This is a C-compiler for 8086 cpus which is important for the development of boot loaders or BIOS related 8086 code.

    It is possible to run 8086 code under i386 Linux using an emulator, `elksemu', also included in this package.

  • dosbox (runs old-style .com files just fine)

    DOSBox is a x86 emulator with Tandy/Hercules/CGA/EGA/VGA/SVGA graphics, sound and DOS. It's been designed to run old DOS games under platforms that don't support it. (Win2k/XP/FreeBSD/Linux/MAC OS X)

  • dosemu

    DOSEMU is a PC Emulator application that allows Linux to run a DOS operating system in a virtual x86 machine. This allows you to run many DOS applications.

    • Color text and full keyboard emulation (via hotkeys) via terminal.
    • Built-in X support, includes IBM character set font.
    • Graphics capability at the console with most compatible video cards.
    • DPMI support so you can run DOOM.
    • CDROM support.
    • Builtin IPX and pktdrvr support.
  • bochs

    Bochs is a highly portable free IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS.

  • qemu/kvm

    Using KVM, one can run multiple virtual PCs, each running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.

    KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux hosts on x86 (32 and 64-bit) hardware.

Uzzi answered 18/12, 2011 at 21:57 Comment(3)
found bcc which looks to be your best match, allthough I haven't used it beforeUzzi
@chris-l and I quote: "It is possible to run 8086 code under i386 Linux using an emulator, `elksemu', also included in this package." Also, bcc came with TASM.exe if memory serves. This was a full-featured speedy assembler. I loved it more than MASM. But! That was then :)Uzzi
oooh! I heard about elks, read about it like 8 years ago. And I didn't knew they were part of the same thing. I stand corrected then :)Hypertension
A
2

Adrian Cable's 8086tiny: a tiny PC emulator/virtual machine is another system for emulating 8086 systems. It is much smaller than any of the other systems: in its original (IOCCC-winning) form its source was only 4043 bytes (8086 nibbles) long.

Assessment answered 16/3, 2020 at 18:27 Comment(4)
It doesn't support TF, so it doesn't support debuggers. Many people who want this probably want to develop new hand-written assembly for 8086, and for that debugging is essential. BOCHS has a built-in debugger that can debug bootloaders, and code that runs with interrupts disabled. But sure for just using that's an interesting possibility.Incantation
To be fair, the OP (9 years ago) didn't ask about TF and debugging, and no other answers mentioned it. I'm not exactly seeing it as a disqualifying feature. And if you want TF in 8086tiny, there's at least one fork that implements it: ecm-pushbx/8086tinyAssessment
I upvoted your answer, just wanted to point out a limitation for the benefit of future readers deciding which option to try first. Also, /wave @ecm, adding that feature to an emulator seems like your style :)Incantation
@Peter Cordes: True that. I didn't find this from a notification but yeah. Nice to have someone recommend my work ^.^Gaea
T
0

You can use qemu emulator. It works under two modes.

  1. full system mode - In this qemu emulate full PC you can define ran size, disk etc. It image of an os as input .So,you have to write bootloader for it,which will load your 16bit program . You can perform I/O by using BIOS service. 2)only cpu emulation. Whatever instructions you write works well in this but when you need os system call then it becomes tricky since it maps system call in 16bit to host os.
Thionate answered 18/12, 2011 at 21:51 Comment(0)
E
0

To add to @sehe's wonderful answer.

  • VirtualBox is also available for Ubuntu. Complete VM environment.
Evince answered 19/12, 2011 at 0:5 Comment(0)
G
0

You need to be more clear about what you intend to run. There is x86 assembly and then there are all the system calls int 10h int 21h, etc which are not related to assembly but to an operating system. If you are interested in the instruction set I have stripped down pcemu to avoid the confusion of an underlying operating system or bios, leaving just the assembly (for educational purposes).

https://github.com/dwelch67/pcemu_samples

the real pcemu is a good enough 8086/88 assembler to run dos and other things on top of it. There are a number of derivatives to choose from.

I included a copy of the original that I stripped down.

You can easily try bochs or dosbox on ubuntu, just apt-get one or the other or both if you just want to run some old x86 dos programs that wont run in qemu or virtualbox/vmware (because they dont emulate dos).

Genarogendarme answered 19/12, 2011 at 0:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.