3 ms·
The 6800, 6502, 6809, 68000 and ARM instruction sets were all heavily influenced by the PDP-11. The auto post-increment/pre-decrement addressing modes of the 6
by jhallenworld 5y ago
The 6800, 6502, 6809, 68000 and ARM instruction sets were all heavily influenced by the PDP-11.
The auto post-increment/pre-decrement addressing modes of the 6809, 68000 and ARM exist on the PDP-11.
The set of 2's complement branch instructions and related flags for all of them is pretty much exactly the same (well 6502 does not implement the full set).
It didn't have to be this way- for example, the instruction mnemonics could have been the IBM 360 ones..
- retrac 5y agoEven x86 was basically a glorified, oversized and rather inelegant clone of the PDP-11. Though most of the inelegance was a concession to practicality, or backwards compatibility. (Do you really need the complexity of memory-memory moves?) Or maybe they modelled it after the VAX. Hmm. Intel's employees would have been using some VAXen at the time they designed the 8086. Anyway. Very similar. Both by mnemonics, and the general architecture. This is the start of a decompression routine for LZSA compression for both architectures. (I don't think the PDP-11 code was even modelled after the 8086. Just convergent implementation?) Source here: https://github.com/emmanuel-marty/lzsa https://github.com/emmanuel-marty/lzsa The only difference of note is the PDP-11 doesn't have string array operations (but it doesn't really need them with addressing modes like (r1)+) and so does an explicit check for end of input, that is implicit on the x86 before it loops back to ReadToken. Otherwise there is a near one-to-one translation of each instruction, often with the same mnemonics. ReadToken: .decode_token: movb (r1)+,r0 mov ax,cx mov r0,r5 lodsb mov dx,cx bic #177617,r0 beq NoLiterals asr r0 mov cl,4 asr r0 shr al,cl asr r0 asr r0 cmp #7,r0 cmp al,07H bne m1 jne .got_literals ... ... With that said, they had similar design goals. Minimal (but not minimalist) hardware requirements, compact and expressive instruction set suitable both for direct assembly programming (as that was still dominant in the 70s) as well as a tolerably clean target for simple compilers. System/360 did not really have these design goals. So while even if designers had drawn inspiration from the System/360 instead, the architecture of minis like the PDP-11 in the 70s, and microprocessors of the the 80s, would probably still have been different from System/360. Folks wanted a hardware stack in 1978! Of course... maybe they only wanted it because they'd gotten used to having it on machines like the PDP-11.
- ibiza 5y ago> So DEC's PDP-8 and OS-8 directly inspired the entire PC-compatible industry, the whole x86 computer industry. I disagree w/ the claim that the PDP-8 directly inspired x86. At the operating system level, maybe: OS/8 -> CP/M -> DOS. At the architecture level, no: PDP-8 -> 8080? The x86 architecture is _nothing_ if not a slavish progression from 8080, 8085, 8086, 80186, 80286, 80386, ... https://en.wikipedia.org/wiki/PDP-8#Description https://en.wikipedia.org/wiki/PDP-8#Description https://en.wikipedia.org/wiki/Intel_8080#Registers https://en.wikipedia.org/wiki/Intel_8080#Registers
- retrac 5y agoI said the 8086 is somewhat like the PDP-11, not the PDP-8! The PDP-8 was an extremely simple machine and quite unlike anything from the 70s really, mini or micro. I would definitely agree the 8080 itself was not inspired or influenced by the PDP-11. The timing is just wrong for that, if nothing else. The earliest ancestor to the 8080 was designed in the late 60s, before the PDP-11 came out. And of course the 8086 was designed in the 8080's lineage, even source level compatible somewhat. I think you just misread me, but since I thought more about it I'll outline my argument more clearly. Nearly all the changes from the 8080 to the 8086 were changes that, in practice, made it more like the PDP-11s: * The 8080 was an accumulator machine. While the 8086 retains some specialized registers and the superficial register file of the 8080, it's largely a general register machine. It can, for example add any two registers together, or add any register and memory together. It can use any of several registers for an index register. * Segmentation is basically a poor man's split I/D + paging on the PDP-11. While there's no protection, it's similar enough that the 8086 was the first microcomputer UNIX was ported to. * The 8080 had a single stack intended pretty much just for subroutine call/returns. Annoyingly it limited what you could push. The 8086 has a general stack, and a second stack pointer too. This is mimicking a common programming model on the PDP-11. As such, C is easy to implement on the 8086 and rather hard on the 8080. (Though Intel explicitly cited Pascal as the intent there at release, so this isn't that strong of a point, I suppose.) * Similar orthogonal byte and word operations for most instructions. * Even the 8086 assembly mnemonics were very similar to the PDP-11 (or VAX) mov/movb/bne/beq/cmp/inc/dec compared to mov/mov.b/jne/jeq/cmp/inc/dec.