Ejercicios: 1.- Introducir el siguiente código para la suma de 2 números: Código de Máquina: 01! "signar a "#$% "signar a $'
2.-
Introducir el siguiente código para la resta de 2 números: Código de Máquina: 2()! "signar a "#$% "signar a $'
3.-
Introducir el siguiente código para la multiplicación de 2 números: Código de Máquina: )*E' "signar a "#$% "signar a $'
4.-
Introducir el siguiente código para la di+isión de 2 números: Código de Máquina: )*)' "signar a "#$! "signar a $,
5.-
tiliando los ejercicios del 1 al , realice un programa que genere secuencialmente
la suma/ resta/ multiplicación di+isión/ en ese orden/ los +alores originales del registro "# son los que deseen.
Ensamblando un programa
Para crear al instante un programa en ensamblador con debugger se utiliza el comando “A” (Assemble), este comando permite introducir código en forma de nemónicos y su sintaxis es “A[dirección]”, donde dirección es la ubicación de memoria a partir de la cual se empezara a ensamblar, sino se especifica la dirección inicial a partir de la cual se debe ensamblar, ensambla a partir de la localidad especificada por !"#P$ %&ecutado el comando “A”, debug preguntar' en forma sucesia y secuencial por la siguiente instrucción a ensamblar, cada instrucción se ensambla en el momento de ser digitada y cada byte generado se almacena en la memoria en la dirección inicial y en s ecuencia sucesia$
igite “A [enter]”, como resultado se obtiene"
*A +A-".+.. ebug se encuentra listo para aceptar las instrucciones" mo a/, 0 [enter] add a/, - [enter]
sub a/, 1 [enter] int 2. [enter] [enter] 3as localidades de memoria o segmento pueden ser distinto en cada P$ Para e&ecutar el programa anterior se usa el comando “4 [dirección]”, 5ue e&ecuta instrucciones a partir de una dirección$ !e obsera 5ue nuestro programa comienza en el segmento +A-".+.. y termina en el segmento +A-".+.0, si se desea e&ecutar todas las instrucciones a partir de !"#P (+A-".+..) /asta la instrucción en +A-".+.0, s e digita “g+.0”, como resultado se obtiene"
ebug despliega los registros con los resultado intermedios, se obsera comparando el estado inicial y final de los registros con respecto a A6 en su parte alta, es decir, A7 5ue tiene un alor inicial A68...., pasando por A68.0.., sumando -, A68.9.. y restando 1, A68... 5ue es el resultado final de este programa$ ebug e&ecuta la interrupción 2. “int 2.” termina el programa y regresa el control al :!$
Desensamblar
Para desensamblar un programa 5ue se acaba de escribir se utiliza el comando “;” 5ue desensambla lo 5ue se digita partiendo de la localidad de memoria especificada y la cantidad de bytes especificados con “3” 5ue significa longitud (lengt/), lo 5ue muestra tanto el código digitado con nemot
%xiste tambi
4uardar y cargar un programa 3o /ec/o /asta a/ora /a sido operar un programa en memoria, para gua rdarlo en disco y recuperarlo despue la longitud del programa restando la dirección final (ultima instrucción del programa) de la dirección inicial (primera instrucción del programa), la longitud se expresa en /exadecimal$ * / +.A +.., lo 5ue resulta en “.2.A ...A”$
2$ rear un nombre para el programa, 5ue incluya la ?a y la extensión$ oc/o caracteres para el nombre$
* n c"primprog$com$ no m's de
-$ Poner la longitud del programa en el registro 6$ * rcx, lo 5ue despliega el contenido del registro 6, 6 ...., se coloca la longitud del programa restando la dirección final .+.A de la inicial .+.. 5ue se obtiene ...A, se digita “"...A”$
1$ arla orden de escritura$ 3a orden d e escritura se da con “@”, * @ aparece el mensa&e “@riting ...A bytes”, escribe la cantidad de byte en el registro 6$
Para cargar el arc/io anterior u otro arc/io, se debe seguir los siguientes pasos" +$ Proporcionar el nombre del programa 5ue se cargar' usando el comando “n”$ 2$ argarlo mediante comando (3) load$
*n c" primprog$com
*l
-$ Para erificar 5ue fue cargado, desensamble a partir de la localidad +..7$
*u +.. 3B$
Para estar seguro de la ubicación antes de entrar a debug e&ecute el comando “dir” para mostrar los arc/ios presentes en el lugar donde guardo el arc/io$
!alir de debug, para salir de debug digite el comando “5”, es decir, *5
•
eleccione un arci+o peque3o .e4e o .com de má4. ,56 desensám6lelo con el E&7
•
8isualie porciones datos/ i.e. comando
de
código/ i.e. comando /
porciones
de
eleccione/ analie reporte una su6rutina de m9n. '2 instrucciones/ i.e. comando •
•
;repare
="CE< > ;7<"M" @E ME ?" A" ;">"AA" A" AE<" "BM"CA"D.
Código "CII Aa letra " maúscula es igual a B% decimalD B,1 en =e4adecimalD Como de6ug solo usa el sistema e4adecimal usaremos "$,1 egmento de memoria de la pantalla: Esta es igual a &!00 donde la letra " se encontrar9a en la dirección lógica &!00:00,1