Instrucciones para operaciones aritméticas (multiplicación y división)

El 6510 no tiene instrucciones específicas para multiplicar o dividir. Estas operaciones tienen que implementarse mediante rutinas.

En el caso de querer multiplicar por dos esto puede hacerse con la instrucción de desplazamiento de bits “asl”. Esta instrucción mueve los bits del acumulador (o de una posición de memoria) hacia la izquierda e introduce un bit 0 por la derecha. Por tanto, es el equivalente en el mundo binario (multiplicar por dos) a poner un cero por la derecha en el mundo decimal (multiplicar por 10).
Repitiendo la operación varias veces se puede multiplicar por cuatro, por ocho, etc., siempre con cuidado de no desbordar la capacidad del acumulador (8 bits).

Contrariamente, también es posible dividir por dos, cuatro, ocho, etc., con la instrucción “lsr”, que desplaza los bits del acumulador (o de una posición de memoria) hacia la derecha. Nuevamente, es el equivalente en el mundo binario (dividir por dos) a quitar dígitos por la derecha en el mundo decimal (dividir por 10). Lógicamente estamos hablando de divisiones enteras, sin decimales.

En todo caso, “asl” y “lsr” se consideran instrucciones de desplazamiento de bits, no instrucciones aritméticas, aunque sirvan para hacer algunas multiplicaciones y divisiones simples. Se consideran de la misma familia que “rol” y “ror”, y las veremos en su entrada específica.


Programa de ejemplo: Prog15

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s