semana09_2

19
SEMANA 9_2

Upload: rogerchamaya

Post on 03-Mar-2016

212 views

Category:

Documents


0 download

DESCRIPTION

jajaja

TRANSCRIPT

Page 1: semana09_2

7/21/2019 semana09_2

http://slidepdf.com/reader/full/semana092 1/19

SEMANA 9_2

Page 2: semana09_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

Page 3: semana09_2

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

Page 4: semana09_2

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

Page 5: semana09_2

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

Page 6: semana09_2

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

Page 7: semana09_2

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

Page 8: semana09_2

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

Page 9: semana09_2

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

Page 10: semana09_2

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

Page 11: semana09_2

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

Page 12: semana09_2

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

Page 13: semana09_2

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

Page 14: semana09_2

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

Page 15: semana09_2

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

Page 16: semana09_2

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

Page 17: semana09_2

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

Page 18: semana09_2

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

Page 19: semana09_2

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