Hot answers tagged

57 votes
Accepted

What did the 8086 (and 8088) do upon encountering an illegal instruction?

Illegal opcodes were just instructions that hadn't been fully defined by the chip designers – a little like Undefined Behaviour in C, but much more predictable. Many people called these "undocumented ...
wizzwizz4's user avatar
  • 18.5k
46 votes

What did the 8086 (and 8088) do upon encountering an illegal instruction?

It might be better to think about it this way: On the 80186 and above, a new thing was defined called an "illegal instruction", and this new thing came with a new behavior -- a #UD exception that was ...
Ken Gober's user avatar
  • 11.4k
41 votes
Accepted

How much did IBM save by limiting the PC to 4.77 MHz?

Worshipping at the altar of color clock Back in that day, everything was built around the NTSC color clock frequency of 3.579545 MHz. Everything from the Atari VCS to the C64 made ample use of it, ...
Harper - Reinstate Monica's user avatar
33 votes
Accepted

What was the IBM PC cost saving for using the 8088 vs 8086?

According to Wikipedia, a number of reasons contributed to IBM’s using the 8088 instead of the 8086: Intel offered them a better price for the 8088 and was able to supply more of the chips; the 8-bit ...
Stephen Kitt's user avatar
33 votes
Accepted

Why did the 8087 need a special socket?

But why was the 8087 designed such that it needed a special socket? Because the 8087 is a processor EXTENSION, not another CPU. The 8087 has, except for a few lines, exactly the same signals and ...
Raffzahn's user avatar
  • 213k
30 votes
Accepted

Why the "jmp" instruction is not working?

Your code runs through the data ("Hello World" string) interpreting it as (nonsense) machine code - and very probably crashes before it even reaches the jmp instruction. You need to move the jmp ...
tofro's user avatar
  • 33k
29 votes

How much did IBM save by limiting the PC to 4.77 MHz?

For many kinds of parts, there's a substantial gap between specified maximum/minimum timings and typical timings. The 8088 specification requires that the clock be high for a minimum of 69 ns every ...
supercat's user avatar
  • 34.7k
26 votes

What was the IBM PC cost saving for using the 8088 vs 8086?

This is not a complete answer because it doesn't answer what the exact cost savings were, but I think it's worthwhile to have an informed primary source for the claim that there were cost-savings and ...
Cody Gray - on strike's user avatar
24 votes
Accepted

Did the Intel 8086/8088 not guarantee the value of SS:SP immediately after RESET?

Your reading is correct, SP is undefined after a reset and the stack has to be set up appropriately by the initialisation code before it can be used. Interrupts are disabled after reset so there’s no ...
Stephen Kitt's user avatar
24 votes
Accepted

Help porting nasm code down from 386 to 8088 (shifts by more than 1 bit)

For sar and sal (and the other shift instructions), you need to use the cl register if you are shifting by more than one bit. So: mov cl, 4 sar al, cl
Greg Hewgill's user avatar
  • 6,849
20 votes

Did the IBM PC use the 8088's NMI line?

In a 100% compatible PC, NMI is used only to communicate unrecoverable errors — normally a RAM parity failure, but possibly something else, which should reveal itself via one of the system control ...
Tommy's user avatar
  • 35.9k
19 votes

How much did IBM save by limiting the PC to 4.77 MHz?

Quartz used in colour TVs such as 3.579545MHz or 14.31818MHz used to be much cheaper than other frequencies. It was important for home computers and game consoles (8/16 bits), which used the same ...
TEMLIB's user avatar
  • 3,447
19 votes

Intel 80188 & 8087 clock frequency differences

The 8087 datasheet specifies which versions can be used with the 80188/80186. There were three versions of the 8087: the 5MHz 8087, the 8MHz 8087-2, and the 10MHz 8087-1. The recommended NPU for use ...
Stephen Kitt's user avatar
15 votes

Why the "jmp" instruction is not working?

All right, I was curious what actually happened when you tried to execute that code. Because it crashes, obviously something is wrong, but what exactly is wrong. After some digging, I finally found a ...
user's user avatar
  • 5,246
15 votes

Help porting nasm code down from 386 to 8088 (shifts by more than 1 bit)

8086/8088 has imul but only in the one-operand widening form, just like mul where it does DX:AX = AX * r/m. Note that's r/m, not imm16, so you will have to mov your constant into a register first (...
Nate Eldredge's user avatar
14 votes

Do I have to use an 8284 chip with the 8088?

Caveat: I can't confirm that this works acceptably, as I haven't been able to find any references to anyone who has done it, but by reading the datasheet of the 80C88 it seems it should work there, ...
Jules's user avatar
  • 12.8k
14 votes
Accepted

How to keep the instruction prefetcher filled up

My understanding is that the Intel 8088 has this buffer which reads ahead in the instruction stream whenever it has a spare bus cycle or two, so that when the time comes to execute that instruction, ...
Raffzahn's user avatar
  • 213k
12 votes

What was the IBM PC cost saving for using the 8088 vs 8086?

8-bit data bus designs were generally dramatically cheaper than 16-bit designs because they required half as many RAM chips: DRAMs of the time conventionally stored a single bit per address. So an 8-...
Tommy's user avatar
  • 35.9k
12 votes
Accepted

IBM PC memory map - why RAM at the bottom?

[This Answer focuses on the reason why RAM at low address and ROM at high address, as the usual ramblings about the 640Ki border have been made in other places and amasse (*1)] Why was the ...
Raffzahn's user avatar
  • 213k
12 votes

Did the IBM PC use the 8088's NMI line?

As indicated by e.g. this description of the Phoenix BIOS, possible NMI sources are Memory parity errors x87 Coprocessor errors I/O card NMI (for whatever reason the I/O card decides to invoke it) ...
dirkt's user avatar
  • 26k
12 votes

Did the IBM PC use the 8088's NMI line?

On the IBM PCJr, the NMI was used by the keyboard device to signal the CPU. (Source: “The Peter Norton Programmer’s Guide to the IBM PC”, chapter 3, under “Changing Interrupt Vectors” while ...
Euro Micelli's user avatar
  • 2,655
12 votes

Help porting nasm code down from 386 to 8088 (shifts by more than 1 bit)

https://pushbx.org/ecm/doc/insref.htm is a corrected + improved version of the appendix of the NASM manual that documents the CPU required for each form of each instruction, along with English ...
Peter Cordes's user avatar
  • 2,925
11 votes
Accepted

Did multiplexed address/data lines make memory access slower?

In general: memory needs stable address for a while. So the real access time is "time to address available + memory access time". If you use the CPU with a full address bus (Z80, 6502, ...), it can ...
Martin Maly's user avatar
  • 5,487
10 votes

Did the IBM PC use the 8088's NMI line?

The original IBM 5150 Personal Computer (the IBM PC) connected the Non-Maskable Interrupt to the I/O Check signal, which could be driven by an add-in card, or by the on-board memory. If the systems ...
Trapgate's user avatar
  • 236
10 votes
Accepted

8088 CPU A16-A19 address lines go crazy with nop test after 0FFFF address

It's simply how the 8086 works. it's a straight 16 bit CPU, isn't it? The CPU sees memory not as an 20 bit address space, only the BIU does (*1) when generating an access, but a 16 bit segment number, ...
Raffzahn's user avatar
  • 213k
10 votes

Intel 80188 & 8087 clock frequency differences

Looking at the mentioned page (3-5) it clearly states that it's a 'Typical System Diagram': It is not in any way detailed schematic to be built nor suggesting or even listing specific components. It'...
Raffzahn's user avatar
  • 213k
10 votes

Difference between the 8255 and 8042 PPIs

The 8042 is no PIO chip at all, but essentially a (very small) full-blown computer on a chip - a microcontroller. It contains a small amount of RAM (256 Bytes), ROM (4K, One-time-programmable or ...
tofro's user avatar
  • 33k
9 votes

Did the Intel 8086/8088 not guarantee the value of SS:SP immediately after RESET?

Yes, it might seem somewhat odd that Intel added extra logic to set the segment registers but not not the stack pointer; this means that even though you don't need to set up both the stack segmeent ...
cjs's user avatar
  • 24.6k
9 votes
Accepted

8086 pinout and address space limit

TLDR: Yes, it would have been possible to extend it up to 22 bit with minimal changes, 21 or 23 bit by moving two 8086 specific signals and 24 with breaking 8086/88 hardware compatibility. The Long ...
Raffzahn's user avatar
  • 213k
9 votes
Accepted

Did any 8-bit CPUs use dynamic memory for registers?

One thing to note – the 8088 registers are made from dynamic memory cells – they have to be refreshed. This was unexpected (at least to me), Same to me. And I guess to anyone else as well. Ken ...
Raffzahn's user avatar
  • 213k

Only top scored, non community-wiki answers of a minimum length are eligible