Programa que que imprime valores numericos en hexadecimales pero haciendo la utilizacion de macros.
include 'emu8086.inc'
Mostrar Macro Mensaje
LEA DX,Mensaje ;mandamos el mensaje a leer
MOV AH,9 ;usamos el servicio para mostrar en pantalla
INT 21H
endM
Terminar Macro
MOV AX,4C00H
INT 21H
endM
DATOS SEGMENT
ENCABEZADO DB 13,10,13,09h,09h,"==============================="
DB 13,10,13,09h,09h,"PROGRAMA QUE IMPRIME VALORES NUMERICOS DEC Y HEXA "
DB 13,10,13,09h,09h,"================================",13,10,"$"
ALINEAR DB 13,10,13,09h,09h
VALOR_1 DW 41D,"$"
VALOR_2 DW 42D,"$"
VALOR_3 DW 43D,"$"
VALOR_4 DW 44D,"$"
VALOR_5 DW 45D,"$"
VALOR_6 DW 46,"$"
VALOR_7 DW 47,"$"
VALOR_8 DW 48,"$"
VALOR_9 DW 49,"$"
VALOR_10 DW 50,"$"
DATOS ENDS
valores Macro
Mostrar ALINEAR
Mostrar VALOR_1
Mostrar VALOR_2
Mostrar VALOR_3
Mostrar VALOR_4
Mostrar VALOR_5
Mostrar VALOR_6
Mostrar VALOR_7
Mostrar VALOR_8
Mostrar VALOR_9
Mostrar VALOR_10
endM
Titulo Macro
Mostrar ENCABEZADO
endm
CODIGO SEGMENT
ASSUME CS: CODIGO,DS:DATOS,SS:PILA
Main PROC
MOV AX,DATOS
MOV DS,AX
Titulo
valores
Main ENDP
Terminar
CODIGO ENDS
END Main
captura de la ejecucion del programa:
martes, 7 de mayo de 2019
lunes, 6 de mayo de 2019
Unidad 3-ejemplo de cambio de colores
programa que hace el cambio de cioolor de las letras
Macro a utilizar y mandarlo en un archivo en blanco con extension .inc
COLOR PROC
MOV AH,9 ;Invoco al servicio 09 para imprimir texto con formato
XOR BH,BH ;Limpio bh para indicarle que imprima en la misma pagina
INT BIOS ;Hago la impresion pidiendo la interrupcion 10h
RET ;retorno al programa principal
COLOR ENDP
COLOCA PROC
MOV AH,2 ;Invoco al servicio 02 de 10h para posicionar el cursor
XOR BX,BX ;Limpio bx para decirle que debe ser en la misma pagina
INT BIOS ;Coloco el cursor con 10h en funcion del servicio 02
RET ;retorno al programa principal
COLOCA ENDP
PUT_CURSOR MACRO X,Y
MOV AH,02H ;Para posicionar el cursor
MOV BH,00H ;Coloco en la pagina 0
MOV DH,X ;Establesco las coordenadas, x=dh=renglon
MOV DL,Y ; Establesco las coordenadas y=dl=columna
INT 10H ;ejecuto la interrupción
endm
TERMINA MACRO
MOV AX,4C00H ;Termino el programa
INT 21H ;llamando a la interrupcion 21h
ENDM
----------------------------------------------------------
Codigo que utiliza las macros
CR EQU 13 ;Declaro retorno de carro
LF EQU 10 ;Declaro salto de linea
BIOS EQU 10H ;Declaro interrupcion 10h
DOS EQU 21H ;Declaro interrupcion 21h
TEXTO EQU 3 ;Declaro el servicio 03 para la impresion de texto desde BIOS
FIN EQU 4C00H ;Declaro interrupcion de exit
VARIABLES SEGMENT ;Declaro las variables
include "emu8086.inc"
TITULO DB "JUENITO_XD" ;Un texto
COLORES DB 01001110B ;Una agrupacion de colores
DB 11101111B ;0= cursos parpadeante 000=color de fondo 0000=color del texto
DB 10110001B
DB 01011100B
DB 00110001B
DB 01011111B
DB 01101011B
DB 01011100B
DB 01101111B
DB 01001110B
DB 00110001B
VARIABLES ENDS
VPILA SEGMENT;STACK ;Declaro la pila
DB 64 DUP("PILA")
VPILA ENDS
CODIGO SEGMENT
COLO PROC FAR ;Declaro un procedimiento
ASSUME CS:CODIGO, DS:VARIABLES, SS:VPILA
MOV AX,VARIABLES
MOV DS,AX
MOV AX,TEXTO ;Invoco el servicio de impresion de texto
INT BIOS ;Ejecuto el servicio con 10h
MOV CX,11 ;Declaro el iterador en 11
XOR SI,SI ;Borro SI
BUCLE: ;Llamo al bucle
PUSH CX
MOV DX,SI ;Indico la posicion de la letra a imprimir con SI
ADD DX,35 ;Indico la coordenada en x, la coordenada inicial es x=35
MOV DH,12 ;Indico la coordenada en y
CALL COLOCA ;Llamo al sistema para que coloque el cursor donde yo quiero
MOV AL,[SI+OFFSET TITULO] ;Le indico la letra a imprimir pasandole SI y el texto como parametros
MOV BL,[SI+OFFSET COLORES] ;Le indico los colores a imprimir pasandole SI y el conjunto de colores como parametros
CALL COLOR ;Llamo a la impresion del texto
POP CX
INC SI ;Incremento a SI para modificar la letra a imprimir y la coordenada en x
LOOPNZ BUCLE
MOV AH,8 ;08:Lee un caracter sin imprimir nada en pantalla
INT DOS ;Ejecuto el servicio
XOR DX,DX ;Limpio DX
CALL COLOCA ;Coloco el cursor en las coordenadas x=0 y=0
PUT_CURSOR 10,10
print "Hola mundo"
PUT_CURSOR 20,20
print "Estas son las coordenadas( x=20, y=20)"
TERMINA ;MACRO TERMINA
COLO ENDP
include "C:\Users\CARLOS\Desktop\6 semestre\Lenguajes de Interfaz\Unidad 3\9-ejemplo ambrocio\macroambrocio.inc"
CODIGO ENDS
END COLO
--------------------------------------------------------------------------------------
ejecucion del programa
Unidad 3-Cambiar las letras a colores y un fondo a través de macros
#programa que utiliza macros para desplegar nombre con colores
CUADRO MACRO XI,YI,XF,YF,COLOR
MOV AX, 0600H ;
MOV BH, COLOR ; COLOR DE FONDO Y LETRA
MOV BL, 00H
MOV CH, YI ; Y INICIAL
MOV CL, XI ; X INICIAL
MOV DH, YF ; Y FINAL
MOV DL, XF ; X FINAL
INT 10h
endM
POSICION MACRO X,Y
; **** POSICIONA EL CURSOR ********
MOV DH, Y ; POSICI[ON EN Y
MOV DL, X ; POSICI[ON EN X
MOV AH, 02
MOV BH, 00
INT 10H
ENDM
DESPLEGAR MACRO MENSAJE
MOV AH,09 ;****** MUESTRA MENSAJE *******
MOV DX,OFFSET MENSAJE
INT 21h
ENDM
DATOS SEGMENT ;SEGMENTO DE DATOS
M1 DB "c",'$'
M2 DB "a",'$'
M3 DB "r",'$'
M4 DB "l",'$'
M5 DB "o",'$'
M6 DB "s",'$'
datos ends
cincocuadros macro
cuadro 5,3,10,3,100
posicion 10,3
desplegar M1
cuadro 15,3,20,3,22
posicion 20,3
desplegar M2
cuadro 25,88,30,3,33
posicion 30,3
desplegar M3
cuadro 35,3,40,3,49
posicion 40,3
desplegar M4
cuadro 45,3,50,3,70
posicion 50,3
desplegar M5
cuadro 55,3,60,3,90
posicion 60,3
desplegar M6
endM
CODIGO SEGMENT
ASSUME CS: CODIGO,DS:DATOS,SS:PILA
PRINCIPAL PROC
MOV AX,DATOS
MOV DS,AX
cincocuadros
PRINCIPAL ENDP ;FIN DEL PROCEDIMIENTO
CODIGO ENDS ;FIN DEL SEGMENTO
END PRINCIPAL
ejecucion:
CUADRO MACRO XI,YI,XF,YF,COLOR
MOV AX, 0600H ;
MOV BH, COLOR ; COLOR DE FONDO Y LETRA
MOV BL, 00H
MOV CH, YI ; Y INICIAL
MOV CL, XI ; X INICIAL
MOV DH, YF ; Y FINAL
MOV DL, XF ; X FINAL
INT 10h
endM
POSICION MACRO X,Y
; **** POSICIONA EL CURSOR ********
MOV DH, Y ; POSICI[ON EN Y
MOV DL, X ; POSICI[ON EN X
MOV AH, 02
MOV BH, 00
INT 10H
ENDM
DESPLEGAR MACRO MENSAJE
MOV AH,09 ;****** MUESTRA MENSAJE *******
MOV DX,OFFSET MENSAJE
INT 21h
ENDM
DATOS SEGMENT ;SEGMENTO DE DATOS
M1 DB "c",'$'
M2 DB "a",'$'
M3 DB "r",'$'
M4 DB "l",'$'
M5 DB "o",'$'
M6 DB "s",'$'
datos ends
cincocuadros macro
cuadro 5,3,10,3,100
posicion 10,3
desplegar M1
cuadro 15,3,20,3,22
posicion 20,3
desplegar M2
cuadro 25,88,30,3,33
posicion 30,3
desplegar M3
cuadro 35,3,40,3,49
posicion 40,3
desplegar M4
cuadro 45,3,50,3,70
posicion 50,3
desplegar M5
cuadro 55,3,60,3,90
posicion 60,3
desplegar M6
endM
CODIGO SEGMENT
ASSUME CS: CODIGO,DS:DATOS,SS:PILA
PRINCIPAL PROC
MOV AX,DATOS
MOV DS,AX
cincocuadros
PRINCIPAL ENDP ;FIN DEL PROCEDIMIENTO
CODIGO ENDS ;FIN DEL SEGMENTO
END PRINCIPAL
ejecucion:
Suscribirse a:
Entradas (Atom)
Unidad 3-ejemplo con macros
Programa que que imprime valores numericos en hexadecimales pero haciendo la utilizacion de macros. include 'emu8086.inc' Mostra...
-
#2 Ejemplo de Hola mundo en EMU8086 CODE SEGMENT ASSUME CS:CODE,DS:CODE,SS:CODE,ES:CODE ORG 100H principio: mov ah, 0Fh mov ah...
-
#programa que utiliza macros para desplegar nombre con colores CUADRO MACRO XI,YI,XF,YF,COLOR MOV AX, 0600H ; MOV BH, COLOR ; COLOR DE F...