Lenguajes de interfaz
Unidad 1
temario
Macros:
Los macros son funcionalidades que ofrecen los programas de Office, son comandos que se crean y guardan, pudiéndolos ejecutar mediante un botón en la Barra de acceso rápido o una combinación del teclado.
enlace a macros
link ejemplo de macro en word
link lenguaje ensamblador
link ide de ensamblador
El programa fuente que a continuación se lista se denomina FACTOR.ASM.
;*******************************************************************************
; CALCULA EL PRODUCTO DEL FACTORIAL DE DOS NUMEROS QUESE
; ENCUENTRAN EN LAS POSICIONES DE MEMORIA 0 Y 1 DEL SEGMENTODE
; DATOS. EL VALOR DE CADA NUMERO DEBE SER INFERIOR A9. EL RESULTADO
; SE ALMACENA EN DOS PALABRAS DEL SEGMENTO EXTRA, ENLA PRIMERA
; PALABRA EL MENOS SIGNIFICATIVO Y EN LA SEGUNDA EL MAS
; SIGNIFICATIVO. SE UTILIZA UNA RUTINA PARA CALCULAREL FACTORIAL.
;_______________________________________________________________________
;_______________________________________________________________________
; DEFINICION DEL SEGMENTO DE DATOS
; ENCUENTRAN EN LAS POSICIONES DE MEMORIA 0 Y 1 DEL SEGMENTODE
; DATOS. EL VALOR DE CADA NUMERO DEBE SER INFERIOR A9. EL RESULTADO
; SE ALMACENA EN DOS PALABRAS DEL SEGMENTO EXTRA, ENLA PRIMERA
; PALABRA EL MENOS SIGNIFICATIVO Y EN LA SEGUNDA EL MAS
; SIGNIFICATIVO. SE UTILIZA UNA RUTINA PARA CALCULAREL FACTORIAL.
;_______________________________________________________________________
;_______________________________________________________________________
; DEFINICION DEL SEGMENTO DE DATOS
DATOS SEGMENT
DATO_1 DB 0
DATO_2 DB 0
DATO_2 DB 0
DATOS ENDS
;_______________________________________________________________________
;_______________________________________________________________________
;_______________________________________________________________________
;_______________________________________________________________________
; DEFINICION DEL SEGMENTO DE PILA
PILA SEGMENT STACK "STACK"
DB 40H DUP (0)
PILA ENDS
;_______________________________________________________________________
;_______________________________________________________________________
DB 40H DUP (0)
PILA ENDS
;_______________________________________________________________________
;_______________________________________________________________________
; DEFINICION DEL SEGMENTO EXTRA
EXTRA SEGMENT
RESULT DW 0,0 ; 2 PALABRAS ( 4 BYTES )
EXTRA ENDS
;_______________________________________________________________________
;_______________________________________________________________________
; DEFINICION DEL SEGMENTO DE CODIGO
RESULT DW 0,0 ; 2 PALABRAS ( 4 BYTES )
EXTRA ENDS
;_______________________________________________________________________
;_______________________________________________________________________
; DEFINICION DEL SEGMENTO DE CODIGO
CODE SEGMENT
ASSUME CS:CODE, DS:DATOS, ES: EXTRA, SS:PILA
ASSUME CS:CODE, DS:DATOS, ES: EXTRA, SS:PILA
FACT_DATO_1 DW 0
; COMIENZO DEL PROCEDIMIENTO PRINCIPAL
START PROC
;INICIALIZALOS REGISTROS DE SEGMENTO CON SUS VALORES
MOV AX, DATOS
MOV DS, AX
;INICIALIZALOS REGISTROS DE SEGMENTO CON SUS VALORES
MOV AX, DATOS
MOV DS, AX
MOV AX, PILA
MOV SS, AX
MOV SS, AX
MOV AX, EXTRA
MOV ES, AX
MOV ES, AX
; CARGA EL PUNTERODE PILA CON EL VALOR MAS ALTO
MOVSP, 64
MOVSP, 64
; FIN DE LAS INICIALIZACIONES
;COMIENZO DELPROGRAMA
MOV CL, DATO_1
CALL FACTOR
MOV FACT_DATO_1,AX ; ALMACENA EL RESULTADO
MOV CL, DATO_2
CALL FACTOR
MOV BX, FACT_DATO_1
MUL BX ; EN AX ESTA EL RESULTADO DEL FACTORIAL DEL SEGUNDO
CALL FACTOR
MOV FACT_DATO_1,AX ; ALMACENA EL RESULTADO
MOV CL, DATO_2
CALL FACTOR
MOV BX, FACT_DATO_1
MUL BX ; EN AX ESTA EL RESULTADO DEL FACTORIAL DEL SEGUNDO
; ALMACENA EL RESULTADO
MOV RESULT, AX
MOV RESULT+2, DX
MOV RESULT, AX
MOV RESULT+2, DX
; FIN DEL PROGRAMA
MOV AX, 4C00H
INT 21H
MOV AX, 4C00H
INT 21H
START ENDP
;_______________________________________________________________
; SUBRUTINA PARA CALCULAR EL FACTORIAL DE UN NUMERO
; ENTRADA CL=NUMERO
; SALIDA AX=RESULTADO, DX=0 YA QUE CL<=9
;_______________________________________________________________
;_______________________________________________________________
; SUBRUTINA PARA CALCULAR EL FACTORIAL DE UN NUMERO
; ENTRADA CL=NUMERO
; SALIDA AX=RESULTADO, DX=0 YA QUE CL<=9
;_______________________________________________________________
FACTOR PROC NEAR
MOV AX, 1
XOR CH,CH
CMP CX, 0
JE FIN
IR:
MUL CX
DEC CX
JNE IR
FIN:
RET
FACTOR ENDP
MOV AX, 1
XOR CH,CH
CMP CX, 0
JE FIN
IR:
MUL CX
DEC CX
JNE IR
FIN:
RET
FACTOR ENDP
; FIN DEL SEGMENTO DE CODIGO
CODE ENDS
; FIN DEL PROGRAMA INDICANDO DONDE COMIENZA LA EJECUCION
END START
CODE ENDS
; FIN DEL PROGRAMA INDICANDO DONDE COMIENZA LA EJECUCION
END START
FUNCION : Ejemplifica eñ uso de constantes.
FUNCION : ESCRITURA DE UNA FRASE EN PANTALLA HECHA CON PROCEDIMIENTO.
FUNCION : ESCRITURA DE UN CONJUNTO DE DE LINEAS EN
5: ; : PANTALLA CON PROCEDIMIENTO.
FUNCION : Pide tres datos hasta agotar la longitud de cada uno.
; FUNCION : Imprime un texto utilizando colores.
4: ; FUNCION : IMPRIME VALORES NUMÉRICOS DECIMALES Y HEXA
FUNCION : COMVIERTE UN NUMERO ASCII A BINARIO, Y LA CANTIDAD SE CAPTURA.
FUNCION : Convierte hexa a numero binario.
; FUNCION : Convierte hexa a numero binario.
4: ; FUNCION : IMPRIME VALORES NUMÉRICOS DECIMALES Y HEXA.
DIFERENCIAS ENTRE MACROS Y PROCEDIMIENTOS
Las macros son mas rápidas porque se ejecutan en linea en un programa y los procedimientos son mas lentos a la hora de ejecutar el programa.
Las macros pueden pasar y recibir parámetros.La escritura de una macro es simple en cambio la de los procedimientos es mas compleja.
Los procedimientos ayudan a reducir el código y los macros lo hacen mas grande.






































































No hay comentarios:
Publicar un comentario