martes, 26 de febrero de 2019

ejercicios del dia 26 de febrero del 2019

Utlilizacion de la libreria em8086.inc



emu8086.inc define las siguientes macros :

PUTC char - macro con 1 parámetro, imprime un carácter
 ASCII en la posición actual del cursor.

GOTOXY col, fila - macro con 2 parámetros,
 establece la posición del cursor.


PRINT string - macro con 1 parámetro,
 imprime una cadena.





PRINTN string - macro con 1 parámetro, imprime una cadena
. Lo mismo que PRINT pero agrega automáticamente "retorno de carro"
 al final de la cadena.


CURSOROFF - apaga el cursor de texto.

CURSORON - enciende el cursor de texto.


Para usar cualquiera de las macros anteriores, simplemente
 escriba su nombre en algún lugar de su código y, si es necesario,
 los parámetros.

emu8086.inc también define los siguientes procedimientos :


PRINT_STRING : procedimiento para imprimir una cadena terminada en nulo en la posición actual del cursor, recibe la dirección de la cadena en el registro DS: SI . Para usarlo declare: DEFINE_PRINT_STRING antes de la directiva END .


PTHIS : procedimiento para imprimir una cadena terminada en nulo en la posición actual del cursor (igual que PRINT_STRING), pero recibe la dirección de la cadena desde la Pila. La cadena TERMINADA A CERO debe definirse justo después de la instrucción CALL. Por ejemplo:


CALL PTHIS


db 'Hello World!', 0


Para usarlo declare: DEFINE_PTHIS antes de la directiva END .





GET_STRING : procedimiento para obtener una cadena terminada en nulo de un usuario, la cadena recibida se escribe en el búfer en DS: DI , el tamaño del búfer debe estar en DX . El procedimiento detiene la entrada cuando se presiona 'Enter'. Para usarlo declare: DEFINE_GET_STRING antes de la directiva END .





CLEAR_SCREEN : procedimiento para borrar la pantalla (que se realiza al desplazar la ventana completa de la pantalla) y establecer la posición del cursor en la parte superior. Para usarlo declare: DEFINE_CLEAR_SCREEN antes de la directiva END .





SCAN_NUM : procedimiento que obtiene el número FIRMADO de varios dígitos del teclado y almacena el resultado en el registro CX . Para usarlo declare: DEFINE_SCAN_NUM antes de la directiva END .





PRINT_NUM : procedimiento que imprime un número firmado en el registro AX . Para usarlo declare: DEFINE_PRINT_NUM y DEFINE_PRINT_NUM_UNS antes de la directiva END .





PRINT_NUM_UNS : procedimiento que imprime un número sin firma en el registro AX . Para usarlo declare: DEFINE_PRINT_NUM_UNS antes de la directiva END .





Para utilizar cualquiera de los procedimientos anteriores, primero debe declarar la función en la parte inferior de su archivo (pero antes de END ), y luego usar la instrucción CALL seguida de un nombre de procedimiento.








ejemplo 1:

#1 Hola mundo con librería emu8086






; You may customize this and other start-up templates;


; The location of this template is c:\emu8086\inc\0_com_template.txt


name 'ejemplo de hola mundo'


include 'emu8086.inc' ;esta libreria nos permite ir letra por letra


org 100h





.data





suma db 2 dup (?)





.code

print 'hola munndo'

ret

ejecucion:









ejemplo2:
PROGRAMA HECHO EN EMU8086 INC DEL DIA 26 DE FEBRERO 2019








name 'hola mundo'


include 'emu8086.inc'


org 100h


.code





gotoxy 5,5


print "hola mundo"





gotoxy 5,6


printn "hola mundo"





gotoxy 5,7


print


call scan_num





;call print_string 'esta es la cadena'








;define_print_string


define_scan_num


putc 'A'


ret










#3 los numeros ingresados son impresos aabajo con una cadena que te confirma lo que acabas de escribir en este ejemplo.





include 'emu8086.inc'


org 100h


.code





Cursoroff ;apaga el cursor


call scan_num ;define la funcion





define_scan_num





putc 'a'


gotoxy 5,7


print 'dame un numero'


call scan_num


mov ax,cx


gotoxy 5,7


call print_num





define_print_num


define_print_num_uns


end


ret

No hay comentarios.:

Publicar un comentario

Unidad 3-ejemplo con macros

Programa que que imprime valores numericos en hexadecimales pero haciendo la utilizacion de macros. include 'emu8086.inc' Mostra...