Beruflich Dokumente
Kultur Dokumente
Microprocesadores I
Ing. Edwin J. Ortega Z.
Estando as el prompt es posible cambiar el valor del registro que se visualizo tecleando el nuevo valor y a continuacin [Enter], o se puede dejar el valor anterior presionando [Enter] sin teclear ningn valor.
Microprocesadores I
Ing. Edwin J. Ortega Z.
Para ejecutar el programa que escribimos se utiliza el comando "g", al utilizarlo veremos que aparece un mensaje que dice: "Program terminated normally". Naturalmente con un mensaje como ste no podemos estar seguros que el programa haya hecho la suma, pero existe una forma sencilla de verificarlo, utilizando el comando "r" del Debug podemos ver los contenidos de todos los registros del procesador, simplemente teclee: - r [Enter] Aparecer en pantalla cada registro con su respectivo valor actual: AX=0006BX=0004CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000 DS=0C1BES=0C1BSS=0C1BCS=0C1BIP=010A NV UP EI PL NZ NA PO NC 0C1B:010A 0F DB oF
Existe la posibilidad de que los registros contengan valores diferentes, pero AX y BX deben ser los mismos, ya que son los que acabamos de modificar. Otra forma de ver los valores, mientras se ejecuta el programa es utilizando como parmetro para "g" la direccin donde queremos que termine la ejecucin y muestre los valores de los registros, en ste caso sera: g108, esta instruccin ejecuta el programa, se detiene en la direccin 108 y muestra los contenidos de los registros. Tambin se puede llevar un seguimiento de lo que pasa en los registros utilizando el comando "t" (trace), la funcin de ste comando es ejecutar lnea por lnea lo que se ensambla mostrando cada vez los contenidos de los registros. Para salir del Debug se utiliza el comando "q" (quit).
1. Programa hola mundo ste programa mostrar "Hola mundo" en la pantalla, utilizando servicios de DOS. Se entra al Debug y se escribe lo siguiente (Sin utilizar la orden ensamblar) E 1000 'Hola mundo$' "E" significa escribir, se escribe en el segmento de datos (Indicado por DS). La sintaxis de sta orden del debug es la siguiente: E Offset '[Cadena de carcteres]'
Microprocesadores I
Ing. Edwin J. Ortega Z.
El carcter "$" que est a la derecha de la frase "Hola mundo", sirve para que el servicio de DOS que se va a utilizar para mostrar Hola mundo en la pantalla no muestre informacin ms alla del caracter que est a la izquierda del caracter '$', es decir ste caracter limitador es el fin de la cadena, es decir a partir de ste no mostrar ms caracteres. Importante: Si no finaliza la cadena con el carcter '$', al llamar al servicio de DOS para mostrar el caracter, probablemente se bloquear la PC hasta encontrar un carcter '$', inclusive puede ser que nunca lo encuentre. A continuacin ensamblar las siguientes instrucciones (A partir de 0100h): MOV AH, 09 MOV DX, 1000 INT 21 INT 20 Luego ejecutar el ejemplo con la orden "g" El programa mostrar el mensaje "Hola mundo", luego el debug mostrar un mensaje diciendo que el programa ha terminado normalmente. Al provocar la interrupcin 21h se llama a un servicio de DOS, el nmero de servicio est determinado por la parte alta de AX (AH). El servicio 09h muestra la informacin en forma de carcteres a partir del comienzo apuntado por el registro DX (El offset, en ste caso 1000h), muestra la informacin hasta el carcter anterior al carcter '$' (Anteriormente mencionado). Luego se provoca la interrupcin 20h que finaliza el programa.
2. Programa repetir cadena 0C1B:0100 jmp 125 ; brinca a la direccin 125H 0C1B:0102 [Enter] - e 102 'Cadena a visualizar 15 veces 0d 0a '$' - a125 0C1B:0125 MOV CX,000F ; veces que se desplegar la cadena
Universidad Santiago de Cali MP13 4
Microprocesadores I
Ing. Edwin J. Ortega Z.
0C1B:0128 MOV DX,0102 ; copia cadena al registro DX 0C1B:012B MOV AH,09 ; copia valor 09 al registro AH 0C1B:012D INT 21 ; despliega cadena 0C1B:012F LOOP 012D ; si CX>0 brinca a 012D 0C1B:0131 INT 20 ; termina el programa.