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
2 answers

Print from 1 to < user input in emu8086

I want to get a number (i.e 5) from the user and then print starting from 1 to < input (i.e 1 2 3 4) But my code does not stop in "4" rather than the loop runs till "d" I know that loop runs CX times and as in 8086 MOVZX does not work that is why…
2
votes
1 answer

How to create and draw sprites in emu8086?

I have obtained an assignment where I need to create a game using emu8086. But the problem is I don't know how to draw a sprite. Can anyone help me by explaining sprite creation to me?
s.sundanum
  • 23
  • 6
2
votes
1 answer

SHR command in assembly 8086

I am given a following code and I want to write the observations after every step. The code is: MOV AL,15 MOV AH,0FFH XOR AL,AL MOV CL,3 SHR AX,CL Now the only thing confusing me is the SHR command. I know that it will shift the value of AX 3 times…
2
votes
1 answer

How to count number of vowels in a string in 8086 ALP?

I wrote an assembly program that does the calculation of number of vowels in a string which is read by the user. Reading of string and calculation of length are working fine. But when comparing the characters of the string, it is not working for the…
saketha yellanki
  • 153
  • 2
  • 10
2
votes
1 answer

How to find commands addresses?

I am a beginner in assembly programming and I experience some issues with this problem. So the addresses of the commands below are defined by the contents of CS:IP registers . If CS is equal to 0750h and IP is 047Bh find all the addresses of the…
Chris
  • 71
  • 6
2
votes
1 answer

bedmas process with intel 8086 assembly lanuage

I am trying to solve the equation: 7 * (4 + 10) + (15 / 5) for example in assembly language. I assume the BEDMAS principal still applies, but the code I run is not giving me the correct numerical value? I am not sure where I am going wrong. When we…
2
votes
1 answer

emu 8086 password verfication

I want to make a program that asks the user to input a password and ask for confirmation. It shall then save the entered value to the bx register and put 3 in cx for loop. Then the program will ask the user again for the just created password. If…
foby bus
  • 23
  • 2
  • 9
2
votes
0 answers

Linker operation in assembly 8086

I have read in the text book of assembly language that the linker will determine the program's entry point. For example, the typical linker output is START STOP LENGTH NAME CLASS 00000H 0003FH 0040H …
mahmood
  • 23,197
  • 49
  • 147
  • 242
2
votes
0 answers

Assembly Comparing variables from incloud file

I am building a assembly Ai in TicTacToe game. And I am using eu8086 emuolator. my idea was simple i preaped a table. table db 0 0 0 db 0 0 0 db 0 0 0 and change the value every time the player was playing. now, i created a lot of this…
MikeTMG
  • 57
  • 1
  • 5
2
votes
1 answer

Assembly x86 infinite loop issue MOV CX, 12 after Procedure RET

NUM EQU 3 .MODEL small .STACK .DATA tempi DW 8,27,17,12,21,34,9,41,7,18,15,5 risultato DW NUM DUP (?) .CODE .STARTUP PUSH OFFSET tempi PUSH OFFSET risultato CALL copiaVettore ADD SP,4 MOV CX, 0 MOV CX,12 LEA BX,…
2
votes
1 answer

Error when I try to print number

I learn assembly 8086. I have this code: .model small .stack 100h .data num db 10111111b itr db 7 ;iterations .code mov ax, @data mov ds, ax mov cl,0 ;rolls counter mov ch,0 ;zero counter next: rol num, 1 jnc isZero inc…
Michael
  • 13,950
  • 57
  • 145
  • 288
2
votes
0 answers

Can't open file using int 21h 3Dh

I am trying to open a .TXT file using emu8086 and int 21h ah=3Dh. I moved the file into "C:\emu8086\MyBuild" folder and when I ran my code I got the following error: file does not exist: C:\emu8086\MyBuild\Í interrupt error: 21h/3Dh : cannot open…
Nimrod Naim
  • 145
  • 9
2
votes
2 answers

I have an issue in assembly program emu 8086, when I print the sub result for two number

I Write an assembly program that makes the user enters 2 integers, stores them in a stack and then displays the sub of them: and this my code: .MODEL SMALL .STACK 100H .DATA msg2 db 0dh,0ah, 'Result: ',0dh, 0ah, '$' .CODE MAIN PROC …
developer
  • 53
  • 5
2
votes
2 answers

8086 - Beep until get input

I am new to assembly language and i want to create a program with 8086 assembly. (emu8086) So the program is supposed to continuously beep until key E is pressed. now the first way is to use a simple jump to check input each time and this is the…
Ali Hanifi
  • 408
  • 1
  • 5
  • 18
2
votes
2 answers

How to start an array from different memory location in assembly?

I'm very new to assembly 8086. I need to write a program which copy only the positive numbers in address 0-10h to a memory block which start at 20h and save the amount of positive numbers in dh. I thought that the best way will be to make an array…
Nadav
  • 21
  • 3