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 x86 tag wiki and x86-16 tag wiki.
Some emu8086 specific links:
8086 assembler tutorial for beginners - emu8086 (MASM/TASM style) 16-bit only, but starts out with some nice intro stuff about hex vs. decimal, what assembly language is, what registers are and how memory is addressed, and how to look at memory in the debugger, before jumping into how specific instructions work.
Why operand must have size in one line but not the other in x86 assembly - emu8086