Este documento presenta dos programas básicos en código de máquina que realizan operaciones aritméticas. El primer programa suma dos números almacenados en registros, dando un resultado de 9A. El segundo programa multiplica otros dos números, dando un resultado de 12. El objetivo es mostrar el funcionamiento interno de la computadora a bajo nivel y apreciar cómo se programan cálculos básicos directamente en código de máquina.
3. Se presentarán varios programas con los procedimientos y
resultados de su ejecución. Los cálculos son básicos y
servirán para tener una idea sobre la forma de programar la
computadora en el bajo nivel.
OBJETIVO
4. El código de máquina nos permite apreciar el funcionamiento
interno de la computadora. Aunque se puede considerar como
obsoleto, un viaje hacia las entrañas mismas de la maquina para
verla funcionar siempre es estimulante para quieres estamos
interesado en este campo de la ciencia.
INTRODUCCIÓN
5. El programa 1 realiza una simple suma:
DESARROLLO
Para correr el programa se debe
entrar al debug del sistema
operativo.
Una vez ahí se teclea: rip
Con este comando se actualiza
el valor del registro IP que con
tiene la próxima dirección a
ejecutar.
Se le asigna el valor de 100.
6. Se edita esta localidad de memoria mediante el
comando e100 y se almacena el valor 01, luego se
edita la siguiente dirección: e101 y se almacena el
valor d8. Esto le dice al procesador que debe sumar
las cantidades que se almacenarán en los registros de
trabajo AX y BX mediante los comandos rax y rbx, no
importa si son mayúsculas o minúsculas.
PROCEDIMIENTO
7. RESULTADO
Los valores 5d y 3d escritos en hexadecimal, dan como resultado 9A al
hacer la suma.
5d + 3d = 9a
Lo cual queda almacenado en el registro ax de la memoria y se puede
observar con el comando t.
9. El programa 2 hace una multiplicación:
DESARROLLO
Igual que en el caso anterior, se
debe entrar al debug del sistema
operativo.
Una vez ahí se teclea: rip
Con este comando se actualiza
el valor del registro IP que con
tiene la próxima dirección a
ejecutar.
Se le asigna el valor de 100.
10. Se edita esta localidad de memoria mediante el
comando e100 y se almacena el valor F7, luego se
edita la siguiente dirección: e101 y se almacena el
valor E3. Esto le dice al procesador que debe
multiplicar las cantidades que se almacenarán en los
registros de trabajo AX y BX mediante los comandos
rax y rbx, no importa si son mayúsculas o minúsculas.
PROCEDIMIENTO
11. RESULTADO
Los valores 3 y 6, dan como resultado 18 al hacer el producto.
6 x 3 = 18 = 12 en hexadecimal
Lo cual queda almacenado en el registro ax de la memoria y se puede
observar con el comando t.
13. CONCLUSIONES.
El código de máquina nos permite ver la
manera en que trabaja la computadora
internamente en la memoria, asignando
códigos, datos y relaciones entre ellos.
La automatización de estas actividades da como
resultado los lenguajes de alto nivel.