Sistemas de numeración

En la vida cotidiana, y cuando se programa en lenguajes de alto nivel como BASIC u otros, lo normal es usar números en base 10. En cambio, cuando se programa en ensamblador, lo más cómodo es usar números en base 16 (hexadecimal) y, en ocasiones, en base 2 (binario).

Por ejemplo, para manejar direcciones de memoria del C64 resultan muy cómodos los números hexadecimales. En cambio, para operar con los bits de una posición de memoria resultan muy cómodos los números binarios.

Al final, todos los sistemas de numeración se rigen por unos principios comunes:

  • La base indica el número de dígitos que se utilizan. En base 10 se utilizan los dígitos del 0 al 9 (10 dígitos); en base 2 el 0 y el 1 (2 dígitos); y en base 16 los dígitos del 0 al 9 además de las letras a, b, c, d, e y f (16 dígitos).
  • Los números se escriben de izquierda a derecha, siendo los dígitos de la izquierda los que más peso tienen (los más significativos) y los de la derecha los que menos peso tienen (los menos significativos).
  • Dado un número de N dígitos en base B, su valor en decimal es D(N-1)*B^(N-1) + D(N-2)*B^(N-2) + … + D(1)*B^(1) + D(0)*B^(0). Obsérvese que lo dígitos se numeran desde 0 (el menos significativo) hasta N-1 (el más significativo). Por ejemplo, el número hexadecimal ffff, que se suele poner como $ffff para marcar que es hexadecimal, vale 15*16^3+15*16^2+15*16+15, es decir, 65.535.
  • Se puede operar con números binarios y hexadecimales de forma similar a cómo se opera con números decimales. Se puede sumar, restar, multiplicar y dividir. Las rutinas para sumar/restar/multiplicar/dividir son similares en todas las bases.

En todo caso, dado que hay mucha documentación en Internet relativa a los sistemas de numeración (ver por ejemplo https://es.wikipedia.org/wiki/Sistema_binario y https://es.wikipedia.org/wiki/Sistema_hexadecimal) no abundaremos más en ello.

Simplemente insistir en que, a la hora de programar en ensamblador, en general, lo que resulta cómodo es usar números hexadecimales y, en algunos casos particulares, números binarios.

En la mayoría de ensambladores, CBM prg Studio incluido, los números hexadecimales llevan el prefijo $, los números binarios el prefijo %, y los números decimales no llevan prefijo.


Programa de ejemplo: Prog02

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