Suma De Dos Números De Un Digito En Lenguaje Ensamblador
Suma de Dos Números de un Dígito en Lenguaje Ensamblador
Gómez Vázquez Exal Alejandro/Rito Avila Rodrigo/Vázquez Bravo Alejandro /Santos del Carpio Gammaliel alex_zxo@hotmail.com, alex_zxo@hotmail.com, alex_zxo@hotmail.com
Resumen—Haciendo la suma de dos números de un dígito utilizando el emulador “Emu8086” detallaremos y comprenderemos algunas de las características básicas del lenguajeensamblador. Como las interrupciones 21h y 10h, así como también algunos de los modos de direccionamiento. Index Terms—int 21h, int10h, Emulador8086, modos de direccionamiento, Microprocesador Intel 8086 y 8088.
1) 2) 3) 4)
Registro - registro Registro - memoria Memoria - registro Memoria - memoria
Nemotécnicos más frecuentes: 1) move: copia el contenido de un registro(o memoria) a otro.2) push: introduce un dato en la cabecera de la pila. (indicada por el SP) 3) pop: saca un dato de la cabecera de la pila. (Indicada por el SP) Instrucciones aritméticas: Son efectuadas por la ALU y suelen cambiar los flags o indicadores de condición. add: Suma. Add with carry: Suma con acarreo. subtract: Resta. subtract with borrow: Resta teniendo en cuenta el adeudo anterior. increment:incrementa en 1 un valor. decrement: decrementa en 1 un valor. multiply: multiplica. divide: divide [1]. C. Movimiento de datos Descrito anteriormente que se han utilizado dos instrucciones que trabajan con la pila; es necesario saber cómo y para qué se utilicen, a continuación se dan detalladamente el manejo de las instrucciones. Como en todo programa es necesario mover datos en la memoria y en losregistros de la UCP; existen diversas formas de hacer esto: puede copiar datos de la memoria a algún registro, de registro a registro, de un registro a una pila, de la pila a un registro, transmitir datos hacia dispositivos externos así como recibir datos de dichos dispositivos. Este movimiento de datos está sujeto a reglas y restricciones. Algunas de ellas son las que se citan a continuación:
•
I.I NTRODUCCIÓN En esta práctica número uno nos familiarizaremos con el uso de las diferentes interrupciones y los diferentes direccionamientos de memoria para obtener un programa funcional, así como poner en práctica lo aprendido durante las clases adaptando la parte visual del programa a nuestro gusto en cuanto a color de fondo y del texto en pantalla, hacemos uso también de la posibilidad derealizar sumas para dos números de un solo digito y así realizar una práctica que sea de provecho en nuestros conocimientos. II. F UNDAMENTOS A. Lenguaje Ensamblador El lenguaje ensamblador, o assembler es un lenguaje de programación de bajo nivel para las computadoras, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de loscódigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento, los registros del procesador,las posiciones de memoria, y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física. Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel que, idealmente son portables [1]. B. Instrucciones Transferencia de datos: Copian datos de un origen a un destino, sin modificar el origen y normalmente sinafectar a los flags o indicadores de condición. Pueden transferir palabras, fracciones de palabras (bytes, media palabra) o bloques completos de n bytes o palabras. Estas operaciones pueden ser:
•
No es posible mover datos de una localidad de memoria a otra directamente, es necesario primero mover los datos de la localidad origen hacia un registro y luego del registro a la localidad...
Regístrate para leer el documento completo.