¿Por qué son necesarios los registros de índice?

0

En una cpu, ¿por qué son necesarios los registros de índice? Por supuesto, puedes vivir sin ellos, pero ¿para qué los quieres? Wikipedia dice que se usan para operaciones de vector / array, pero no estoy realmente seguro de lo que eso significa. (Estoy decidiendo sobre la arquitectura de mi CPU casera)

    

2 respuestas

0
variable = array[index];

(donde el índice es una variable cuyo valor se desconoce en el momento de la compilación) es algo común en C. Puedes hacer algo similar en el ensamblaje x86:

mov edx, [ebx + 4 * eax]

Aquí, eax contiene el valor de la variable de índice, y llamamos a eax un registro de índice en esta instrucción. Si ebx tiene la dirección de la matriz, y la matriz es de un tipo que tiene un tamaño de 4 bytes, entonces eax = n almacenará la matriz [n] en edx.

Sin las variables de índice, sería complicado hacerlo.

    
respondido por el Ruben
1

Observar:

     LDX #0
     LDB #5
     LDA #0
loop STA buf,X
     INX
     DEB
     BNZ loop
     RTS

buf  RESB 5

Este ejemplo simple borra 5 bytes en un búfer. Sin indexar, la operación STA buf,X requeriría modificar el código en sí, lo que, como sabe cualquier programador experimentado, es malo, y ni siquiera es posible en algunas plataformas.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas