110 likes | 255 Views
SEMANA 03_2. ESCRITURA DE PROGRAMAS .COM. Lenguaje de maquina. DE FORMA AUTOMATICA EL ENLAZADOR GENERA UN FORMATO PARTICULAR PARA UN PROGRAMA .EXE .
E N D
ESCRITURA DE PROGRAMAS .COM Lenguaje de maquina • DE FORMA AUTOMATICA EL ENLAZADOR GENERA UN FORMATO PARTICULAR PARA UN PROGRAMA .EXE. • TAMBIEN PUEDE GENERAR UN PROGRAMA .COM PARA EJECUCION. UN EJEMPLO DE USO COMUN DE PROGRAMA .COM ES EL COMMAND.COM. LAS VENTAJAS DE PROGRAMAS .COM ESTAN EN QUE SON MAS PEQUEÑOS QUE PROGRAMAS .EXE COMPARABLES Y SON MAS FACILES DE ADAPTAR PARA ACTUAR COMO PROGRAMAS RESIDENTES DE MEMORIA.
DIFERENCIAS ENTRE PROGRAMAS .COM Y .EXE Lenguaje de maquina • TAMAÑO DEL PROGRAMA. • UN .EXE PUEDE SER DE CUALQUIER TAMAÑO, MIENTRAS QUE UN .COM ESTA RESTRINGIDO A UN SEGMENTO Y A UN MAXIMO DE 64K, INCLUYENDO EL PSP. • EL PSP ES UN BLOQUE DE 256 BYTES QUE EL DOS INSERTA ANTES DE LOS PROGRAMAS .COM Y .EXE CUANDO LOS CARGA EN MEMORIA.
DIFERENCIAS ENTRE PROGRAMAS .COM Y .EXE Lenguaje de maquina • SEGMENTOS. • DE PILA:EN UN.EXESE DEFINE UN SEGMENTO DE PILA, EL.COMLO GENERA EN FORMA AUTOMATICA. • DE DATOS:UN.EXEDEFINE UN SEGMENTO DE DATOS Y LO INICIALIZA EN EL REGISTRO DS. EN EL.COMESTA DEFINIDO DENTRO DEL MISMO SEGMENTO DE CODIGO.
DIFERENCIAS ENTRE PROGRAMAS .COM Y .EXE Lenguaje de maquina • INICIALIZACION. • CUANDO EL DOS CARGA UN PROGRAMA .COM PARA EJECUCION, INICIALIZA EN FORMA AUTOMATICA TODOS LOS REGISTROS DE SEGMENTO DEL PSP. • PUESTO QUE EL DIRECCIONAMIENTO COMIENZA EN UN DESPLAZAMIENTO DE 100H BYTES DESDE EL INICIO DEL PSP, CODIFIQUE UNA DIRECTIVA ORG COMO ORG 100H INMEDIATAMENTE DESPUES DE SEGMENT (CODIGO) O EL ENUNCIADO .CODE. • LA DIRECTIVA ORG LE INDICA AL ENSAMBLADOR QUE EMPIEZE LA GENERACION DEL CODIGO OBJETO EN UN DESPLAZAMIENTO DE 100H BYTES PASANDO EL INICIO DEL PSP, EN DONDE EL PROGRAMA .COM REAL INICIA.
CONVERSION A FORMATO .COM Lenguaje de maquina • SI EL PROGRAMA FUENTE YA ESTA ESCRITO EN FORMATO .EXE, PUEDE UTILIZAR UN EDITOR PARA CONVERTIR LAS INSTRUCCIONES A FORMATO .COM. • LOS FORMATOS DE CODIFICACION DE MASM Y TASM PARA PROGRAMAS .COM SON IDENTICOS, AUNQUE SUS METODOS DE CONVERSION DIFIEREN. • CUANDO LA CONVERSION A FORMATO .COM ESTA COMPLETA, PUEDE BORRAR LOS ARCHIVOS .OBJ Y .EXE
CONVERSION CON MICROSOFT Lenguaje de maquina • PARA AMBOS PROGRAMAS, .EXE Y .COM, CON MASM DE MICROSOFT SE ENSAMBLA Y PRODUCE UN ARCHIVO .OBJ Y DESPUES SE ENLAZA PARA PRODUCIR UN PROGRAMA .EXE. • UN PROGRAMA CON NOMBRE EXE2BIN CONVIERTE PROGRAMAS .EXE A .COM • EXE2BIN D:CALC D:CALC.COM
CONVERSION CON BORLAND Lenguaje de maquina • TLINK /T D:CALC
EJEMPLO DE UN PROGRAMA .COM Lenguaje de maquina PAGE 60,132 TITLE P07COM1 (COM) OPERACIONES MOVER Y SUMAR ;----------------------------------------------------------------------------- CODSEG SEGMENT PARA ‘CODE’ ASSUME SS:CODSEG,DS:CODSEG,CS:CODESG,ES:CODSEG ORG 100H BEGIN: JMP MAIN ;----------------------------------------------------------------------------- FLDA DW 250 FLDB DW 125 FLDC DW ? ;------------------------------------------------------------------------------ MAIN PROC NEAR MOV AX , FLDA ; MOVER 0250 A AX ADD AX , FLDB ; SUMAR 0125 A AX MOV FLDC , AX ; ALMACENAR SUMA EN FLDC MOV AX , 4C00H ; PETICION INT 21H ; SALIDA A DOS MAIN ENDP ; FIN DE PROCEDIMIENTO CODSEG ENDS ; FIN DE SEGMENTO END BEGIN ; FIN DE PROGRAMA
LA PILA DE .COM Lenguaje de maquina • PARA UN PROGRAMA .COM EL DOS DEFINE DE MANERA AUTOMATICA UNA PILA Y ESTABLECE LA MISMA DIRECCION DE SEGMENTO EN LOS CUATRO REGISTROS DE SEGMENTO. SI EL SEGMENTO DE 64K PARA EL PROGRAMA ES SUFICIENTEMENTE GRANDE, EL DOS ESTABLECE LA PILA AL FINAL DEL SEGMENTO YCARGA EL REGISTRO SP CON FFFEH, LA PARTE SUPERIOR DE LA PILA. • SI EL SEGMENTO DE 64K NO CONTIENE ESPACIO SUFICIENTE PARA UNA PILA, EL DOS ESTABLECE LA PILA AL FINAL DE LA MEMORIA. • EL COMANDODIRINDICA EL TAMAÑO DE UN ARCHIVO Y LE DARA UNA IDEA DEL ESPACIO DISPONIBLE PARA UNA PILA.