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/ |