6502.org
http://forum.6502.org/

[21] Help :comparing the 6502 with 8086
http://forum.6502.org/viewtopic.php?f=7&t=279
Page 1 of 1

Author:  ianchizzy [ Tue Feb 01, 2000 3:49 pm ]
Post subject:  [21.1] Help :comparing the 6502 with 8086

Help,
I'm a college student and i nedd some help.
I need to compare two processors one is the 8086 and the other the 6502, under the following headings:
1)programmable registers
2)jump and call instructions
3)addressing modes.

I can compare the addressing modes easily but i have no idea about programmable registers or jump and call instructions.
Can someone please help me or tell me where i can find the data i need.
Many thanks
Ian Coulson

Author:  WizWom [ Sat Feb 05, 2000 12:54 am ]
Post subject:  [21.2] Help :comparing the 6502 with 8086

>1)programmable registers

The 6502 had (3):
A - Accumulator, 8 bits
X - Index 1, 8 bits
Y - Index 2, 8 bits

>2)jump and call instructions

The 6502 had only

JSR (absolute 16 bit)
JMP (absolute 16 bit)
JMP (indirect 16 bit - i.e. absolute 16 bit address is used as the location to read the target location from)

There were also the Branch-on instructions, all relative signed 8-bit:
BMI (minus)
BPL (plus)
BVC (overflow clear)
BVS (overflow set)
BCC (carry clear)
BCS (carry set)
BNE (not equal)
BEQ (equal)

And, not quite "instructions", the 6502 processor had a single interrupt line with a hard-coded vector, and a single non-maskable interrupt with a hard-coded vector.

>3)addressing modes.

These were:
zp = $00 Zero Page
zpx = $00,X Zero page, indexed
zpy = $00,Y
izx = ($00,X) Zero page, indirect (final address read in from target + x)
izy = ($00),Y Zero page, indirect (final address from target read in, then y added)
abs = $0000 Absolute
abx = $0000,X Absolute plus X
aby = $0000,Y Absolute plus Y
ind = ($0000) Indirect (final address read in from target)
rel = $0000 (PC-relative)

WizWom - wandering kernel of happiness
~~~> http://pages.ripco.net/~wizwom <~~~

Author:  Terri416 [ Sun Feb 13, 2000 11:20 am ]
Post subject:  [21.3] Help :comparing the 6502 with 8086

Don't forget the break instruction.
IIRC this triggered the NMI (non-maskable interrupt) and was a 2 byte instruction, the first (I think) zero, and the second undefined.

It's been - eew - 15 years since I used one of those beasties.

Author:  uli_E [ Sun Feb 27, 2000 2:29 am ]
Post subject:  [21.4] Help :comparing the 6502 with 8086

well, you just might be mistaken. IIRC the BRK generates a call to the interrupt vector. It's often used to splice interrupt service calls into a debugger thereby acting as a breakpoint. What a surprise . . . it is called a break . . . and it generates a call to the breakpoint . . . hmmmmm.

Uli

Author:  WizWom [ Sun Mar 05, 2000 6:06 pm ]
Post subject:  [21.5] Help :comparing the 6502 with 8086

You're right! I forgot to compare processor interrupts:

The 6502 has (3) - 3 hardware and one software.

RST - Reset line
IRQ - Interrupt request, maskable
NMI - non-maskable interrrupt
BRK - software interrupt

All forced jumps to distinct memory locations, hard-wired into the CPU.

Author:  ThomasHarte [ Thu Apr 13, 2000 3:21 pm ]
Post subject:  [21.6] Help :comparing the 6502 with 8086

>RST - Reset line

>IRQ - Interrupt request, maskable

>NMI - non-maskable interrrupt

>BRK - software interrupt

>
>All forced jumps to distinct memory locations, hard-wired >into the CPU.

I thought they read addresses to jump to from hard-wired memory locations - namely the last six bytes of address space?

Author:  WizWom [ Thu Apr 13, 2000 11:41 pm ]
Post subject:  [21.7] Help :comparing the 6502 with 8086

The BRK is a JMP 0000; this is hard-coded.
The IRQ, NMI and RST are, as you note, to vectors stored at FFFE; FFFA and FFFC respectively.
http://www.6502.org/datazip/r650x.pdf was my source.

Author:  ratboy666 [ Thu Nov 23, 2000 9:38 pm ]
Post subject:  [21.8] Help :comparing the 6502 with 8086

Whoa there!

BRK is not a jump to 0000! It generates an IRQ, with the BRK bit
enabled in the status register (to distinguish it from a real IRQ).
The address pushed is BRK+2. Yep... the RST, NMI and IRQ (BRK)
use vectors in the highest location of memory... but (and its a
big but), while the vectors are being accessed, the address can
be munged with an external circuit.

Ratboy.

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/