semana09_2
DESCRIPTION
jajajaTRANSCRIPT
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 1/19
SEMANA 9_2
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 2/19
INTERFAZ CON LENGUAJES DE ALTO NIVEL
• LA UTILIZACION DEL ENSAMBLADOR CON
LENGUAJES DE ALTO NIVEL ESTAJUSTIFICADA:
CUANDO SE DESEA REALIZAR CIERTA FUNCION
NO SOPORTADA POR EL LENGUAJE DE ALTONIVEL E INCLUIRLA EN EL REPERTORIO DELLENGUAJE
CUANDO SE DESEA MEJORAR LA VELOCIDAD DEEJECUCION DE UNA FUNCION IMPLEMENTADA ENUN LENGUAJE DE ALTO NIVEL.
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 3/19
INTERFAZ CON LENGUAJES DE ALTO NIVEL
• EN LA COMUNICACIÓN LENGUAJE DE ALTO NIVEL-
ENSAMBLADOR INTERVIENEN LOS ELEMENTOS: EL MODULO LLAMADOR
EL MODULO LLAMADO
EL INTERFAZ DE COMUNICACIÓN ENTRE AMBOS
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 4/19
EL INTERFAZ
• ES LO QUE HACE POSIBLE QUE UN PROGRAMA
ESCRITO EN UN LENGUAJE DE ALTO NIVEL SEPUEDA COMUNICAR CON UN MODULOENSAMBLADOR.
• EXISTEN DOS PARTES O ASPECTOS DEL INTERFAZ:
EL INTERFAZ DE CONTROL
EL INTERFAZ DE DATOS
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 5/19
EL INTERFAZ DE CONTROL
• CORRESPONDE A LA LLAMADA A LA SUBRUTINA Y AL
RETORNO DE ESTA.a LA LLAMADAR!"#!$%& a 'a ''a(a)a* $a"+ %&)&" '&" '!,a/!" )! a'%& ,+0!')+"#&,!, )! ,a "!,%!,$+a CALL* !, 'a 1! #!)!, !"#!$+2+$a3"!&#$+&,a'(!,%! ,a "!3+! )! #a34(!%3&".
La ''a(a)a #!)! "!3: NEAR 5)!,%3& )!' "!(!,%& )! $6)+& &FAR 5a &%3& "!(!,%& )+"%+,%&. E, !' #3+(!3 $a"&* "&'& "!%3a,"(+%! !' )!"#'a7a(+!,%&* 8 !, !' "!,)&* 'a )+3!$$+6,$&(#'!%a 5"!(!,%& 8 )!"#'a7a(+!,%&
a EL RETORNO
S! 3!a'+7a 09a +,"%3$$+6, RETP!"%& 1! ,&3(a'(!,%! '&" #a34(!%3&" "! #a"a, a %3a0" )! 'a#+'a* ;a8 1! !"#!$+2+$a3 , a3(!,%& !, RET 1! ;a$! 1! "!3!"%a3! !' #,%!3& )! 'a #+'a a,%!" )! )!0&'0!3 !' $&,%3&'. S+ "!!"#!$+2+$a , 0a'&3 !336,!&* !' #3&3a(a "! 1!)a <$&'a)&=. E,
a',&" '!,a/!" !"%a 3!"%a3a$+6, )!' #,%!3& )! #+'a 'a 3!a'+7a!' #3&#+& (&)'& ''a(a)&3.
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 6/19
EL INTERFAZ DE DATOS
• CORRESPONDE A LOS DATOS QUE SE MANEJAN Y CONOCEN A AMBOS LADOS DEL INTERFAZ. LOS DATOS RESIDEN EN
MEMORIA* NO SE UTILIZAN REGISTROS. EXISTEN MUCHASMANERAS DE PASAR INFORMACION DE UN MODULO A OTRO*PERO LA FORMA MAS SEGURA Y FLEXIBLE ES MEDIANTE LA
COLOCACION DE LOS ARGUMENTOS SOBRE LA PILA.
• OTROS TIPOS DE INTERFAZ DE DATOS SON:
a M!)+a,%! COMMON* 1! !" , 43!a )! (!(&3+aa$$!"+>'! #a3a a(>&" (6)'&" 5C* PASCAL* ETC
> M!)+a,%! 0a3+a>'!" )!$'a3a)a" PUBLIC* 1! #!3(+%! a'(&)'& !,"a(>'a)&3 a$$!)!3 a' $&,%!,+)& #&3 !',&(>3!* (!$a,+"(& +),%+$& a' !?+"%!,%! !,%3!
(6)'&" !,"a(>'a)&3.
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 7/19
LOS !ARAMETROS
• EL PASO DE LOS PARAMETROS SOBRE LA PILA PUEDEHACERSE DE DOS MANERAS:
DIRECTA: SE PASA POR VALOR INDIRECTA: SE PASA LA DIRECCION
EL TIPO DE METODO UTILIZADO DEPENDE DEL LENGUAJE. ALGUNOS LENGUAJES PERMITEN PASAR VALORES* CASITODOS PERMITEN DIRECCIONES Y OTROS PERMITEN
AMBOS SISTEMAS.
ESTE ULTIMO CASO NOS PERMITE ELEGIR UNO U OTROMETODO. @CUL DEBERIAMOS UTILIZAR• EN EL CASO DE QUE LA SUBRUTINA CAMBIE EL
PARAMETRO* ESTAMOS OBLIGADOS A UTILIZAR LADIRECCION 5METODO INDIRECTO.
• SI EL PARAMETRO NO VA HA SER MODIFICADO* PODRIA
PASARSE EL VALOR 5METODO DIRECTO
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 8/19
LOS REGISTROS
• EN GENERAL PUEDE DECIRSE QUE:
• CS APUNTA AL SEGMENTO DE CODIGO DELMODULO LLAMADOR
• SS 8 SP CORRESPONDEN A LA PILA DEL MODULOLLAMADOR
• DS 8& ES APUNTAN AL SEGMENTO DE DATOS DEL
MODULO LLAMADOR
SE DEBEN PRESERVAR LOS REGISTROS UTILIZADOSSALVANDOLOS SOBRE LA PILA Y RECUPERARLOS ANTESDE DEVOLVER EL CONTROL 5CON RET AL MODULO
LLAMADOR.
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 9/19
LA !ILA
• LA SUBRUTINA LLAMADA PUEDE USAR LA PILA DELMODULO LLAMADOR* PERO NO EXISTE MANERA DESABER EL ESPACIO DISPONIBLE.
• SI LO QUE SE NECESITA ES RAZONABLE 5MENOS DE PALABRAS* NORMALMENTE DEBERIA SER
SUFICIENTE.
• SI SE NECESITA MAS ESPACIO* LA SUBRUTINALLAMADA DEBE RESERVAR SU PROPIO ESPACIO EN
MEMORIA
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 10/19
INTERFAZ CON C
• LA COMUNICACIÓN ENTRE UN MODULO ENLENGUAJE C Y UN MODULO ENSAMBLADOR TIENELAS SIGUIENTES CARACTERISTICAS:
LOS ARGUMENTOS SE PASAN POR VALOR O PORREFERENCIA. EL LENGUAJE C INTENTA* A MENOS QUE SE
LE DIGA QUE HAGA OTRA COSA* PONER EL VALOR SOBRELA PILA* EN LUGAR DE SU DIRECCION.PARA FORZAR AL C A QUE SE PASE UNA DIRECCION* SE LEPONE A LA VARIABLE EL PREFIJO <=. POR EJEMPLO:
SUBR5I * J
EL PRIMER PARAMETRO CONTIENE LA DIRECCION DE LAVARIABLE <I= Y EL SEGUNDO EL VALOR DE LA VARIABLE <J=
LAS DIRECCIONES RELATIVAS 5DESPLAZAMIENTO ESTANREFERIDAS AL REGISTRO DS
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 11/19
INTERFAZ CON C
• LA COMUNICACIÓN ENTRE UN MODULO EN LENGUAJE C Y UNMODULO ENSAMBLADOR TIENE LAS SIGUIENTES
CARACTERISTICAS:
COMO TODAS LAS FUNCIONES C RETORNAN UN VALORENTERO EN EL REGISTRO AX* EL MODULO ENSAMBLADORDEBE HACER LO MISMO. SI LA FUNCION SE CALCULO
CORRECTAMENTE* AX DEBE SER CERO.
LAS VARIABLES TIPO CADENA 5STRING USADAS COMO ARGUMENTO PASAN LA DIRECCION SIEMPRE. POREJEMPLO:
SUBR5S
EL PROCEDIMIENTO DEBE DECLARARSE PUBLIC EL PROCEDIMIENTO DEBE SER DE TIPO NEAR EN EL MODULO ENSAMBLADOR LA INSTRUCCIÓN DE
RETORNO DE SER RET ,* SIENDO , IGUAL AL NUMERO DEBYTES QUE OCUPAN LOS PARAMETROS SOBRE LA PILA.
Lenguaje demaquna
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 12/19
INTERFAZ CON C
• LOS TIPOS DE DATOS SOPORTADOS POR EL LENGUAJE C SON:
ENTEROSPUEDEN SER DE BYTE SIN SIGNO* DE BYTES O DE BYTES.
CADENAS
UNA CADENA ALMACENA COMO ASCIIZ* ES DECIR* UNASERIE DE CARACTERISTICAS SEGUIDO DE UN BYTECON H* QUE INDICA EL FINAL DE LA CADENA.
PUNTO FLOTANTE
UTILIZAN LOS FORMATOS ESTANDAR DELCOPROCESADOR K
Lenguaje demaquna
L j d
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 13/19
LENGUAJE C " ENSAM#LADOR
$ EL SIGUIENTE !ROGRAMA EN LENGUAJE C LLAMA ALAS SU#RUTINAS CLS " CURSOR ESCRITAS ENLENGUAJE ENSAM#LADOR%
&' !()g(ama !(g*+'&man,-
. +/0,-1 +u(0)(,3423-1 5(n67,8FIN DE !ROGRAMA-1
:
LA !RIMERA SU#RUTINA CLS NO TIENE !ARAMETROS* LASEGUNDA !ASA DOS !ARAMETROS !OR VALOR4 ESTO ES4 ENLA !ILA SE ENCONTRARAN LOS VALORES !ASADOS 3 " 23*EN C SE A!ILAN LOS !ARAMETROS EM!EZANDO !OR EL
ULTIMO* ASI4 EN ESTE CASO !RIMERO SE A!ILA 23 " LUEGO3*
Lenguaje demaquna
L j d
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 14/19
LENGUAJE C " ENSAM#LADOR
$ TAM#IEN SE !UEDEN !ASAR !ARAMETROS
!OR REFERENCIA4 ES DECIR LOS VALORES!ASADOS SON DIRECCIONES EN DONDE SELOCALIZAN LOS DATOS*
$ EL !ROGRAMA EN LENGUAJEENSAM#LADOR4 AL ;UE LLAMAREMOSVIDEO*ASM ES EL SIGUIENTE%
Lenguaje demaquna
L j d
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 15/19
LENGUAJE C " ENSAM#LADOR
_TE<T SEGMENT #"TE !U#LIC =CODE= 1 NOM#RE _TE<T " CLASE CODE ASSUME CS%_TE<T 1 RE;UERIDOS !OR EL COM!ILADOR
!U#LIC CLS4 CURSOR 1 SIM#OLOS !U#LICOS
CLS !ROC NEAR 1 SU#RUTINA CERCANA _CLS !US> #! MOV A> 4 ? MOV AL 4 3 MOV C< 4 3 MOV D< 4 @F> MOV #> 4 B INT 3> !O! #! RET
CLS END!CURSOR !ROC NEAR 1 SU#RUTINA CERCANA _CURSOR
!US> #! 1 SALVA #! !ARA ACCEDER A LA !ILA MOV #! 4 S! MOV D> 4 #! 1 NUMERO DE FILA !ARAMETRO
MOV DL 4 #!? 1 NUMERO DE COLUMNA !ARAMETRO 2 MOV #> 4 3 MOV A> 4 2 INT 3> !O! #! 1 DESA!ILA VALOR INICIAL DE #! RET 1 RETORNA " DESA!ILA DOS !ARAMETROS
CURSOR END! _TE<T ENDS
END
Lenguaje demaquna
Lenguaje de
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 16/19
COMO O#TENER !RG*E<E
$ SE COM!ILA !RG*C " SE O#TIENE !RG*O#J
$ SE COM!ILA VIDEO*ASM " SE O#TIENE VIDEO*O#J$ SE !RODUCE !RG*E<E CON LIN
RES!ONDIENDO CON CS !RG VIDEO
HENTER A LA !REGUNTA DE MODULOS DEO#JETOS " CON !RG HENTER !ARA ELMODULO EJECUTA#LE*
Lenguaje demaquna
Lenguaje de
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 17/19
ALGUNOS !UNTOS DE INTERES
• PARA VERSIONES DE C QUE SON SENSIBLES AL USO DEMAYUSCULAS Y MINUSCULAS* EL NOMBRE DE LOS MODULOS
EN LENGUAJE ENSAMBLADOR DEBE SER ESCRITOEXACTAMENTE IGUAL QUE EN LA REFERENCIA DEL PROGRAMAEN C.
• LA MAYORIA DE LAS VERSIONES DE C PASAN LOS
PARAMETROS A LA PILA EN UNA SECUENCIA INVERSA QUE LADE OTROS LENGUAJES. ADDS5M*N
LA INSTRUCCION GUARDA EN LA PILA N Y DESPUES M ENESE ORDEN* Y LUEGO LLAMA A ADDS.
• AL REGRESAR DEL MODULO LLAMADO* EL MODULO EN CSUMA AL SP PARA DESECHAR LOS PARAMETROS USADOS. ELPROCEDIMIENTO COMUN EN EL MODULO DE LENGUAJEENSAMBLADOR LLAMADO PARA ACCESAR LOS DOSPARAMETROS PASADOS ES COMO SIGUE:
Lenguaje demaquna
Lenguaje de
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 18/19
ALGUNOS !UNTOS DE INTERES
PUSH SPMOV BP * SP
MOV DH * BPMOV DL * BP......POP BP
RET
• ALGUNAS VERSIONES DE C NECESITAN QUE UN MODULO ENENSAMBLADOR QUE CAMBIA LOS REGISTROS DI Y SI LOSGUARDE EN LA PILA AL ENTRAR Y LOS SAQUE AL SALIR DEL
SUBPROGRAMA EN ENSAMBLADOR.• EL MODULO EN ENSAMBLADOR DEBE REGRESAR LOSVALORES* SI SE NECESITAN* COMO UNA PALABRA EN EL AX ODOS PALABRAS EN EL PAR DX:AX
• EN ALGUNAS VERSIONES DE C* UN PROGRAMA ENENSAMBLADOR QUE PONE EN UNO LA BANDERA DF DEBE
PONERSE EN CERO 5CLD ANTES DE REGRESAR.
Lenguaje demaquna
Lenguaje de
7/21/2019 semana09_2
http://slidepdf.com/reader/full/semana092 19/19
ENLACE DE 8C A ENSAM#LADOR
n+/ude H06d)*Kn6 man,)d-. n6 6em5_() 4 6em5_+)/1 5(n67,8Ing(e0e /a +u(0)(% 8-1 0+an7,8d4P6em5_()-1 5(n67,8Ing(e0e +)/umna +u(0)(% 8-1 0+an7,8d4P6em5_+)/-1 0e6_+u(0,6em5_()46em5_+)/-1 5(n67,8Nuea /)+a/Qa+)n +u(0)(%-1:
_DATA SEGMENT ORD =DATA=
() equ #! 1 !ARAMETROS +)/ equ #! ? 1 ARGUMENTOS _DATA ENDS _TE<T SEGMENT #"TE !U#LIC =CODE=DGROU! GROU! _DATA ASSUME CS%_TE<T 4 DS%DGROU! 4 SS%DGROU!
!U#LIC _SET_CURS _SET_CURS !ROC NEAR !US> #! 1 REGISTRO #! DEL ;UE LLAMA
MOV #! 4 S! 1 A!UNTA A LOS !ARAMETROS MOV A> 4 32> 1 !ETICION !ARA COLOCAR EL CURSOR MOV #< 4 3 1 !AGINA DE VIDEO MOV D> 4 () 1 RENGLON DE #! MOV DL * +)/ 1 RENGLON DE #!? INT 3> 1 LLAMA AL #IOS !O! #! 1 RESTAURA #! RET 1 REGRESA A DONDE FUE LLAMADO
_SET_CURS END!
_TE<T ENDSEND
Lenguaje demaquna