Programas usando la documentación y libreria emu8086
Hola mundo con string
include 'emu8086.inc'
org 100h
.code
printn " "
printn "hola mundo"
ret
Hola mundo con gotoxy
include 'emu8086.inc'
org 100h
.code
gotoxy 5,5
printn "hola mundo"
ret
Hola mundo con putc
include 'emu8086.inc'
org 100h
.code
gotoxy 5,5
printn "hola mundo"
putc 'A'
ret
Hola mundo con cursuron
include 'emu8086.inc'
org 100h
.code
gotoxy 5,5
print "hola mundo"
cursoron
call scan_num
define_scan_num
ret
Hola mundo final
name 'hola mundo'
include 'emu8086.inc'
org 100h
.code
gotoxy 5,5
printn "hola mundo"
gotoxy 5,6
printn "hola mundo 2"
gotoxy 5,7
print "dame un numero:"
call scan_num
define_scan_num
putc "A"
ret
Ejemplo de print_string
include 'emu8086.inc'
org 100h
.code
Cursoroff ;apaga el cursor
call scan_num ;pide un numero
define_scan_num ;define la funcion
gotoxy 2,5
putc 'A' ;imprime un solo caracter
gotoxy 5,7 ;define en donde se ira a la pantalla
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
Hola mundo (en pagina de internet)
nclude 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.
Pide tu nombre desde teclado y muestra un mensaje en consola saludandote(pagina de internet)
; 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.
Pide un numero desde teclado y lo muestra en la consola(pagina de internet)
; 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.
Suma de dos numeros(ambrocio)
; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
name "suma de dos numeros"
include "emu8086.inc"
org 100h
.data
suma db 2 dup (?) ;manera de declarar un arreglo de 2 lugares
.code
sumas proc
print " Introduce el primer numero: " ;macro de la lib
call scan_num ;llamada a un procedimiento para pedir un num
mov suma[0],cl ;mueve el valor de cl a la posicion 0 del array
printn " " ;macro que imprime un espacio
print " Introduce el segundo numero: " ;macro que imprime un letrero
call scan_num ;llamada a un procedimiento para pedir num
mov suma[1],cl ;;mueve el valor de cl a la posicion 1 del array
xor ax,ax ;xor nemonico que limpia registros
add al,suma[0] ;valor de suma pos 0
add al,suma[1] ;valor de suma pos 1
printn " " ;macro de la libreria pone un espacio y retorno de carro
print " La suma es: " ;macro que imprime un letrero
call print_num ;llamada a un procedimiento para imprimir un num del reg ax
sumas endp
exit:
print " "
printn " "
print "Presiona enter para salir..."
mov ah,0 ;servicio de pulsación de teclado
int 16h ;invoca a servicios de taclado
ret
define_print_string ;no se uso
define_print_num ;es del print_num
define_print_num_uns ;conversion a decimal del scan_num
define_scan_num ;procedimiento del scan_num
end
ret
Mayor o menor de edad(ambrocio)
.model small
.stack
.data
include "emu8086.inc"
num1 db 0; variable para la edad
.code
inicio proc far
;poner el primer letrero
print " Ingrese su edad: " ;usa la macro print
;lectura del valor
call scan_num ;llamada al procedimiento de la lib para pedir un valor
mov num1,cl
;lectura segundo valor
xor ax,ax ;limpiar el registro ax
mov al,num1 ;lo que hay en num se pone en al
cmp al,18d ;Si lo que se encuentra en al>18
JGE mayor ;salta a mayor
JMP menor ;sino ve a menor
mayor:
printn " "
print "Eres mayor de edad"
jmp final
menor:
printn " "
print "Eres menor de edad"
jmp final
final:
print " "
printn " "
print "Presiona enter para salir..."
mov ah,0 ;servicios de lectura de una pulsación de teclado
int 16h ;Invoca a servicios de teclado
mov ah,4ch
int 21h
ret
define_print_string
define_print_num
define_print_num_uns ;para recibir num decimales
define_scan_num ;del procedimiento scan_num
endp inicio
end
Aprobado o reprobado(ambrocio)
.MODEL SMALL
.STACK 64
.DATA
include "emu8086.inc"
nota db 0
.CODE
OPERACIONES PROC FAR ;DECLARACION DE PROCEDIMIENTO
;MUESTRO EL MENSAJE
print " " ;usa macro print para un espacio
print "Ingrese la calificacion: "
call scan_num ;Leo el numero proc_scan_num de la libreria
mov nota,cl ;lo guardo en nota
xor ax,ax ;borro el contenido de ax
mov al,nota ;muevo nota a al
CMP AL,70d ;comparo al con 70, puede ser decimal
JGE MAYOR ;si es mayor o igual pasa a mayor
JMP MENOR ;si no a menor
MAYOR:
printn " "
print "Aprobado"
JMP SALIR
MENOR:
printn " "
print "Reprobado"
JMP SALIR
SALIR:
print " "
printn " "
gotoxy 10,10 ;coloco el cursor en las coordenadas 10x,10y
print "Presiona enter para salir..." ;imprimo despues este mensaje
mov ah,0 ;servicio de lectura de pulsacion de tecla
int 16h ;invoca servicios de teclado
mov ah,4ch
int 21h
ret
OPERACIONES ENDP
define_print_string
define_print_num
define_print_num_uns
define_scan_num
END
Comentarios
Publicar un comentario