Questions tagged [emu8086]

8086 source editor, assembler, disassembler, and software emulator (a virtual PC with MSDOS Interface)

Emu8086 is an old, unmaintained, and sometimes buggy IDE / simulator for an 8086 PC system with MS-DOS. The built-in assembler itself is TASM/MASM style, has some quirks like defaulting to an operand size in ambiguous cases like add [mem], immediate instead of warning or erroring like better assemblers do.

It's nominally shareware, by "Simulation Soft", with a "trial" version available for free from various download sites. It's official web site, https://www.emu8086.com/ has been dead for a while, with the last snapshot in the wayback machine being from August 2018 (not counting some domain-squatter ad sites.)

Most DOS int 21h system calls work, as do some BIOS int 10h and others. Installing your own interrupt handlers does work for some things, like timer interrupts, but the emulation may not include a PS/2 keyboard controller chip for using in/out instructions to read the keyboard. (TODO: check on this; this paragraph may not be fully accurate.)

Other emulators exist, such as DOSBox (which aims for enough accuracy to run old games, but doesn't always accurately emulate every corner case), and Bochs (which does aim for a high-accuracy emulation, but doesn't come with a DOS "user-space" install out of the box).


For more about 8086 in general, not specific to emu8086's assembler or the machine it emulates, see the tag wiki and tag wiki.

Some emu8086 specific links:

760 questions
2
votes
1 answer

Adding 8 bit numbers in two registers (8 bit as well, 16 bit not allowed to use)

I'm doing a homework where I need to add x numbers of 8 bits and the result has to be stored in two registers (in case of overflow). How can I set the result in two registers? (I fill the data using memory) Sorry I'm new in assembly, any guidance is…
Pepo Papo
  • 65
  • 6
2
votes
1 answer

I want to get the reversal of a 8-bit binary number and 1's complement of that reversal as a single output

I have written this code, but I only get the reversed string as output. I want the 1's complement of the reversed string too as output. I know how can I get this. When I edit my code and make it ready for 1's complement of reversed string, my…
user11697050
2
votes
2 answers

Finding first and last capital letter in user input

Input is to be taken from a-z or A-Z and the input is ended by an asterisk *. We need to have the first and last Capital letters of the input characters as the output. Also, we should show the input we have taken each time. N.B. We take the inputs…
2
votes
1 answer

How to read hardware input using emu8086

I'm trying to do an assembly code that reads how many hardware devices are connected to the pc/laptop and determine what are they? is it possible using emu8086? I have searched alot but couldnt be able to find something that reads all hardware…
Sam
  • 23
  • 3
2
votes
1 answer

Character reading does not work in graphical mode

I want to read a character and its attribute with ah=8 int 10h interrupt. It works on text mode, but not in graphical mode (16-color 640 x 480). mov ax,0012h int 10h ;graphical mode int 10h mov ah,0Ah mov al,'1' mov cx,200 ;printing '1'…
user8979215
2
votes
1 answer

DosBox how to fix character attribute?

I wrote my assembly code just to write a character with a blue background and white foreground. It works in emu8086's emulator but when I open it on DosBox it does not show the background color. With Emu8086: With DosBox: mov ax,0012h int 10h mov…
user8979215
2
votes
2 answers

Assembler can't open file

After assembling the MINI-44.asm, I tried to run MINI-44.com_. Then it showed "unable to open file". Then I copied all the files in MyBuild to MySource and vdrive\c for just in case. But either it's not locating any files or unable to open files.…
Nemesis
  • 191
  • 1
  • 1
  • 11
2
votes
1 answer

While search each character of a string and change it in emu8086 how to end infinite loop?

When compare and change a character of a string to another character, it is not change last character. But when i change cx to 12 is working but it is stuck infinite loop .model small .stack 64 .data dizi1 db 'bilgisayai' .code …
kek
  • 23
  • 4
2
votes
1 answer

Adding an offset to a memory address

I have some code like so (emu8086) data segment str1 db "hello" len dw 4h data ends code segment ... ... mov si, offset str1 lea di, [si + len] code ends I would expect this to make di point to the address of DS:0004,…
xrisk
  • 3,790
  • 22
  • 45
2
votes
1 answer

Having some problem with getting even number output in assembly

I took input in array. Then I tried to print the even numbers in the array. I got output as expected but I am getting extra numbers after printing the result. Like suppose my array is 1,2,3 output is 200000000000... and continues. My code: include…
Tapu Das
  • 391
  • 2
  • 17
2
votes
1 answer

Join multiple variables into a single string

I have several variables which store the ASCII for a number from a timer, I need to join all the variables into a single string in order to print them on a macro. Example mov number_1, 30h mov number_2,31h mov number_3,32h Join them mov time,…
Jeremy
  • 1,447
  • 20
  • 40
2
votes
1 answer

How to print remainder of a division using the library emu8086.inc

I am trying to print the remainder of division using emu8086.inc library but the remainder shows ascii value when I run the program. What should I write to print the remainder exactly? .MODEL SMALL .STACK 100h .DATA .CODE MAIN PROC INCLUDE…
2
votes
1 answer

Getting output as a character instead of a number in assembly

I'm relatively new to 8086. I was making a 4 function calculator using procedures. When I enter the input as: first number:1 second number:1 choice:1 (1 is for addition) I get the output as 'b'. Getting to my question, can anyone tell me why this…
U. Watt
  • 533
  • 1
  • 5
  • 27
2
votes
1 answer

My Sign flag value is showing wrong? Am I wrong about how sign flag works?

I am adding ax and bx. So if MSB of the result is 1 then the sign flag=1 or else sign flag=0. Am I right? If I'm right why sign flag=0 is showing in output? Shouldn't it be SF=1? If I am wrong please correct me. I am confused mov ax,20h mov…
Tapu Das
  • 391
  • 2
  • 17
2
votes
1 answer

Emu8086 copying values from an array to another

For my coursework, I have to write a program that copies all the values lower than 1000h from an array of signed 16-bit numbers (called inputArray) to another array (called outputArray). In this exercise, I'm required to use the string instructions…