En una entrada anterior vimos la libreria emu8086.inc, el dia hoy veremos unas cuantas cosas mas acerca de esta libreria, veamos unos cuantos programas:
Programa 1: demostración de codigos
codigo:
Resultado:
Programa 2: Hello world
Resultado:
Programa 3: Demostración del uso de print_string y get_string
Resultado:
Programa 4:Uso de scan_num, print_num, pthis
Resultado:
Referencias a:
http://jbwyatt.com/253/emu/asm_tutorial_05.html
Programa 1: demostración de codigos
codigo:
include "emu8086.inc" org 100h .data mensaje1 db 13,10,"print_string imprime un mensaje guardado en el registro SI",0 .code print "Print muestra un mensaje en pantalla" lea si,mensaje1 call print_string gotoxy 6,6 ;esto mueve el cursor a la posicion deseada print "GOTOXY mueve el cursor a la posicion deseada" gotoxy 6,7 print "scan_num solicita un valor por teclado, este se guarda en cl: " call scan_num xor ax,ax mov al,cl gotoxy 6,8 print "print_num imprime en pantalla el valor numerico de al: " call print_num gotoxy 6,9 print "Putc imprime un solo caracter: " putc "a" define_print_num define_scan_num define_print_num_uns define_print_string end
Resultado:
Programa 2: Hello world
include emu8086.inc ORG 100h PRINT 'Hello World!' GOTOXY 10, 5 PUTC 65 ; 65 - is an ASCII code for 'A' PUTC 'B' RET ; return to operating system. END ; directive to stop the compiler.
Resultado:
Programa 3: Demostración del uso de print_string y get_string
; demonstrate get_string and print_string ;---------------------------------------- include 'emu8086.inc' ORG 100h LEA SI, msg1 ; set up pointer (SI) to msg ; to ask for the number CALL print_string ; print message that SI points to LEA DI, buffer ; set up pointer (DI) to input buffer MOV DX, bufSize ; set size of buffer CALL get_string ; get name & put in buffer LEA SI, newln ; point at CR/LF / Hello message CALL print_string ; print message that SI points to RET ; return to operating system. ; data msg1 DB "Enter your name: ", 0 newln DB 13, 10 DB "Hello, " buffer DB 20 DUP (0) ; input buffer for get_string bufSize = $-buffer ; calculates size of buffer DEFINE_GET_STRING DEFINE_PRINT_STRING END ; directive to stop the compiler.
Resultado:
Programa 4:Uso de scan_num, print_num, pthis
; demonstrate scan_num, print_num, pthis ;---------------------------------------- include 'emu8086.inc' ORG 100h LEA SI, msg1 ; ask for the number CALL print_string ; CALL scan_num ; get number in CX. MOV AX, CX ; copy the number to AX. ; print the following string: CALL pthis DB 13, 10, 'You have entered: ', 0 CALL print_num ; print number in AX. RET ; return to operating system. ; data msg1 DB 'Enter the number: ', 0 ; macros to define procs DEFINE_SCAN_NUM DEFINE_PRINT_STRING DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS ; required for print_num. DEFINE_PTHIS END ; directive to stop the compiler.
Resultado:
http://jbwyatt.com/253/emu/asm_tutorial_05.html
Comentarios
Publicar un comentario