Esta vieja charla de Michael Steil en el 27º encuentro del Chaos Communication del CCC es una de esas joyas que no se pueden dejar de ver: 50 minutos de detalladas explicaciones sobre cómo funcionaba el chip MOS 6502. Esta era la CPU del Commodore 64 y el Apple II, pero también estaba en algunas variantes dentro de los chips de la videoconsola NES de Nintendo o la Atari 2600.
|
etiquetas: ingeniería , 6502 , procesador
Dentro del 6502 había un registro acumulador «A» de 8 bits, dos registros índice «X» e «Y» de 8 bits, un registro de estado «SR» de 8 bits, un puntero de pila «SP» de 8 bits, y un contador de programa «PC» de 16 bits.
Aparte lo que dices de la memoria era un rápido modo de «página directa» o «página cero», pero estaba limitado a 256 bytes.
Z80 arquitectura CISC de 6500 transistores (Complejo)
6502 arquitectura RISC 3510 transistores (Reducido)
De esos 6, puedes usar para programar solo 3. El puntero de pila es para eso ... para apuntar al final de la pila, el contador de programa sigue por donde vas ejecutando y el de estado almacena valores binarios.
A cambio el Z80 tiene dos punteros de 16 bits (IX, IY) 6 de propósito general y el acumulador. También tiene SP, PC y estado, como el 6502.
El Z80 permitía sumar el valor de un registro a un registro indice. También usar el registro puntero de pila para usar su valor al registro HL.
Es más simplón, el Z80 era más sofisticado. En el 6502 había que usar el acumulador:
www.masswerk.at/6502/6502_instruction_set.html#ADC
Un ejemplo segun la IA
; Sumar dos números de 16 bits (Baja en A, Alta en X)
LDA NUM1_L
CLC ; Clear Carry antes de empezar
ADC NUM2_L
STA RESULT_L
LDA NUM1_H
ADC NUM2_H
STA RESULT_H
El Z80 podía sumar en el acumulador, registros e incluso desde la memoria (siempre a un registro)
Ahora lo busco que me ha picado la curiosidad.
Al parecer el 6510 es un 6502 mejorado. A nivel de programación, deben ser practicamente iguales.
es.wikipedia.org/wiki/MOS_6510