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
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