LENGUAJE ENSAMBLADOR PRÁCTICA 12 PRÁCTICA 12

Tamaño: px
Comenzar la demostración a partir de la página:

Download "LENGUAJE ENSAMBLADOR PRÁCTICA 12 PRÁCTICA 12"

Transcripción

1 PRÁCTICA 12 EJECUCIÓN DE UN PROGRAMA HIJO DESDE UN PROGRAMA PADRE 1. INTRODUCCIÓN En esta práctica veremos como se puede ejecutar un programa cualquiera desde nuestro programa mediante la función EXEC del DOS. En efecto, se tendrá lo que se conoce como shell lo que implica que se puede ejecutar un programa, al que se le llama programa hijo, desde otro, el cual es llamado programa padre. En particular, se puede ejecutar una copia del ejecutor de comandos del DOS, command.com, del cual se regresa al programa padre con el comando exit. Además, veremos un programa sencillo que reporta fecha, tiempo y equipo de nuestro sistema 2. OBJETIVOS Al término de esta práctica el alumno podrá: 2.1 Ejecutar programas sin abandonar una aplicación. 2.2 Obtener fecha, tiempo y equipo básico del sistema. 2.3 Hacer que un programa que sea más amigable, es decir, que diga al usuario cómo debe usarse. 3. DESARROLLO 3.1 Calcular el siguiente módulo con el nombre SHELL.ASM, ensamblarlo y ligarlo para obtener SHELL.EXE. %TITLE PROGRAMA QUE USA LA FUNCIÓN EXEC PARA SIMULAR UN SHELL ; Ensamblar mediante: tasm /zi shell ; Ligar mediante: tlink /v shell ; Usar mediante: c:\sem386>shell EntStd EQU 0 ;handle para entrada estándar SalStd EQU 1 ;handle para salida estándar ErrStd EQU 2 ;handle estándar para errores rc EQU 0dh ;ASCII para orno de carro ni EQU 0ah ;ASCII para nueva línea blanco EQU 20h ;ASCII para espacio escape EQU 1bh ;ASCII del escape 12-1

2 IDEAL DOSSEG MODEL small STACK 256 INCLUDE DATASEG ClaveFin DB 0 ;código de salida ; Tabla de comandos internos, cada entry es una cadena ASCIIZ Comandos DB BORRA,0 DW OFFSET BORRA DB DOS,0 DW OFFSET DOS DB SALE,0 DW OFFSET SALE DB CONVI,0 DW OFFSET CONVI DB EQUIPO,0 DW OFFSET EQUIPO DB RELOJ,0 DW OFFSET RELOJ DB 0 VarAmb DB COMSPEC=,0 ;variable de ambiente SegAmb DW 0 ;segmento del bloque de ambiente SpecCmndo DB 80 dup (0) ;especificaciones para COMMAND.COM CadNula DB 0,rc ;cola nula para ejecutar COMMAND.COM Aviso1 DB rc,nl, Imposible liberar memoria,rc,nl Largo1 = (offset this byte) (offset Aviso1) Aviso2 DB rc,nl, EXEC para COMMAND.COM falló,rc,nl Largo2 = (offset this byte) (offset Aviso2) Aviso3 DB rc,nl, No hay variable COMSPEC en el ambiente,rc,nl Largo3 = (offset this byte) (offset Aviso3) CadBorra DB escape, [2] ;secuencia ANSI de escape para borrar LargoB = (offset this byte) (offset CadBorra) SegPila DW 0 ;valor original de SS ApuntaPila DW 0 ;valor original de SP Bloque DW 0 ;bloque de parámetros de EXEC ParamCmndo DD ColaCmndo ;línea de comandos DD fcb1 ;bloque de control de arch 1 DD fcb2 ;bloque de control de arch 2 fcb1 DB 0 ;bloque para arch

3 fcb2 DB 0 ;bloque para arch 2 ColaCmndo DB 0, /C BufEnt DB 80 dup (0) ;línea de comandos de entrada LargoE = (offset this byte) (offset BufEnt) largocmndo = (offset this byte) (offset Cola Cundo) Pide DB rc,nl, sh: ;aprontador de SHELL LargoP = (offset this byte) (offset Pide) ColaConvi DB convi,exe,0 ColaNumero DB 765,rc,0 BloqueC DW 0 ;bloque de parámetros de EXEC ParamConvi DD ColaNumero ;línea de comando DD fcb1o ;bloque de control de arch 1o DD fcb2o ;bloque de control de arch 2o fcb1o DB 0 ;bloque para arch 1o fcb2o DB 0 ;bloque para arch 2o ColaEquipo DB equipo.exe,0 ColaNumE DB 765,rc,0 BloqueCE DW 0 ;bloque de parámetros de EXEC ParamEquipo DD ColaNumE ;línea de comandos DD fcb1oe ;bloque de control de arch 1o DD fcb2oe ;bloque de control de arch 2o fcb1oe DB 0 ;bloque para arch 1o fcb2oe DB 0 ;bloque para arch 2o ColaReloj DB reloj.com,0 ColaNumR DB 765,rc,0 Bloquear DW 0 ;bloque de parámetros de EXEC ParamReloj DD ColaNumR ;línea de comandos DD fcb1or ;bloque de control de arch 1o DD fcb2or ;Bloque de control de arch 2o fcb1or DB 0 ;bloque para arch 1o fcb2or DB 0 ;bloque para arch 2o 12-3

4 CODESEG Inicia: mov ;hace el segmento de datos mov ds,ax ;direccionable mov ax,[es:2ch] ;trae segmento de ambiente mov [SegAmb] ;desde el PSP y lo salva ; suelta la memoria que no necesita.. mov bx,100h ;BX = párrafos que requiere mov ah,4ah ;cambia tamaño del bloque int 21h ;con DOS ;brinca, sí se pudo mov dx,offset Aviso1 ;cambia de tamaño falló, avisa mov cx,largo1 call TraeSpec ;trae especificaciones de COMMAND.COM ;brinca si la halló mov dx,offset Aviso3 ;avisa que COMSPEC no fue hallado mov cx,largo3 ;en el D_FijaVector 23h,@@30 ;fija vector para Ctrl.-C call TraeCmndo ;trae el comando del usuario call Interno ;verifica si es función interna ;sí, es mov bx,errstd ;BX = handle estándar para errores mov ah,40h ;escribe archivo o dispositivo int 21h ;con DOS mov [Clave]Fin],1 D_TerminaClaveFin ;macro para regresar a DOS PROC Interno mov si,offset Comandos ;DS:DI apunta a tabla cmp [byte si],0 ; fin de la tabla? ;sí, brinca mov di,offset BufEnt ;no, que DI apunte al buffer de cmp [byte di],blanco ;tira espacios delanteros inc di ;fue blanco, bríncalo 12-4

5 mov al,[si] ;trae siguiente carácter de la tabla or al,al ;fin de cadena jz ;salta, si acabó cmp al,[di] ;compara carácter recibido jnz ;brinca, si no son iguales inc si ;avanza apuntadores de cadenas inc di jmp cmp [byte di],rc ;asegurarse que la cadena del usuario je ;sea del mismo tamaño cmp [byte di],blanco ;siguiente carácter dado debe ser blanco jne ;ENTER call [word si+1] ;corre la rutina interna clc ;CF = 0 (corrió uno lodsb ;busca el final de este comando or al,al ; nulo? ;no, sigue buscando add si,2 ;brinca la dirección de la rutina ;compara vs siguiente stc ;no igualó a ningún comando Interno ENDP PROC Externo ;procesa comando externo pasándolo a COMMAND.COM con cola /C mov al,cr ;halla largo del comando mov cx,largocmndo ;al buscar el orno de carro mov di,offset ColaCmndo+1 cld repne scasb mov ax,di ;calcula largo de cola sub ax,offset ColaCmndo+2 mov [ColaCmndo[,al ;salva el largo ; Fija la dirección de la cola. mov [word ParamCmndo],offset ColaCmndo call EXEC ;corre COMMAND.COM ENDP Externo PROC TraeCmndo ;pide al usuario el comando y lo trae mov dx,offset Pide ;DS:DX = dirección del aprontador mov cx,largop ;CX = largo del aprontador mov bx,salstd ;BX = handle de salida estándar mov ah,40h ;función de escritura del int 21h ;DOS 12-5

6 ; Obtiene comando del usuario mov dx,offset BufEnt ;DS:DX buffer de entrada mov cx,largoe ;CX = máxima longitud a leer mov bx,entstd ;BX = handle de entrada estándar mov ah,3fh ;función de lectura int 21h ;del DOS mov si,offset BufEnt ;convierte las minúsculas mov cx,largoe ;recibidas a mayúsculas cmp [byte si], a ;verifica si entre a-z ;brinca si fuera de rango cmp [byte si] ;sigue verificando ;brinca si fuera de rango sub [byte si], a - A ;la hace inc si ;a siguiente carácter recibido ENDP TraeCmndo PROC TraeSpec ;trae localidad de COMMAND.COM desde ambiente COMSPEC = CF = 1 si falla mov si,offset VarAmb ;DS:SI = cadena a igualar call TraeAmb ;busca en el bloque de ambiente ;brinca si no halló COMSPEC ; ES:DI después de = mov si,offset SpecCmndo ;DS:DI buffer local mov al,[es:di] ;copia variable COMSPEC mov [si],al ;al buffer local inc si inc di or al,al ; copió el nulo? (hace CF = ENDP TraeSpec PROC TraeAmb ;barre el ambiente, si halla CF = 0 mov es,[segamb] ;trae segmento del ambiente xor di,di ;inicializa el sesgo mov bx,si ;inicia apuntador al nombre cmp [byte es:di],0 ; fin de ambiente? ;brinca si no stc ;no halló, pone mov al,[bx] ;trae carácter de nombre or al,al ; fin del nombre? (hace CF = 0) 12-6

7 jz ;si, nombre concordó cmp al,[es:di] ;compara con ambiente jne ;brinca si diferente inc bx ;avanza apuntador de ambiente inc di ;y de nombre jmp ;si lo halló CF = xor al,al ;sigue buscando en ambiente mov cx,-1 ;el byte igual a cero cld repne scasb ENDP TraeAmb PROC EXEC ;llama a función EXEC de DOS mov [SegPila],ss ;salva apuntador de la pila mov [ApuntaPila] ;y su registro de segmento ; ahora corre COMMAND.COM mov dx,offset SpecCmndo ;DS:DX = nombre de archivo mov bx,offset Bloque ;ES:BX = bloque de parámetros mov ax,4b00h ;carga y ejecuta con función EXEC int 21h ;del DOS mov ax,@data ;hace el segmento de datos mov ds,ax ;otra vez direccionable mov es,ax cli ;por un piojo en los 8080 mov ss,[segpila] ;recobra dirección de la pila mov sp,[apuntapila] sti ;brinca si todo bien mov dx,offset Aviso2 ;DS:DX a mensaje mov cx,largo2 ;CX = largo del mismo mov bx,errstd ;BX = handle de errores mov ah,40h ;función de escritura int 21h ;del DOS ENDP EXEC PROC BORRA ;comando interno de borrar pantalla mov dx,offset CadBorra ;envía cadena ANSI mov cx,largob ;para limpiar la pantalla mov bx,salatd mov ah,40h int 21h ENDP BORRA 12-7

8 PROC DOS ;ejecuta COMMAND.COM mov [word ParamCmndo],offset CadNula call EXEC ;y corre COMMAND.COM ENDP DOS PROC CONVI mov [word ParamConvi],di mov ax,[segamb] ;pone segmento de amb en bloque mov [BloqueC],ax ;de ambiente mov [SegPila],ss ;salva apuntador de la pila mov [ApuntaPila],sp ;y su registro de segmento ; ahora corre CONVI.EXE mov dx,offset ColaConvi ;DS:DX = nombre de archivo mov bx,offset BloqueC ;ES:BX = bloque de parámetros mov ax,4b00h ;carga y ejecuta con función EXEC int 21h ;del DOS mov ax,@data ;hace el segmento de datos mov ds,ax ;otra vez direccionable mov es,ax cli ;por un piojo en los 8080 mov ss,[segpila] ;recobra dirección de la pila mov sp,[apunpila] sti ;brinca si todo bien mov dx,offset Aviso2 ;DS:DX a mensaje mov cx,largo2 ;CX = largo del mismo mov bx,errstd ;BX = andel de errores mov ah,40h ;función de escritura int 21h ENDP CONVI PROC EQUIPO mov [word ParamEquipo],di mov [word ParamEquipo+2],ds mov ax,[segamb] ;pone segmento de amb en bloque mov [BloqueCE],ax ;de ambiente mov [SegPila],ss ;salva apuntador de la pila mov [ApuntaPila],sp ;y su registro de segmento ; ahora corre EQUIPO.EXE.. mov dx,offset ColaEquipo ;DS:DX = nombre de archivo mov bx,offset BloqueCE ;ES:BX = bloque de parámetros mov ax,4b00h ;carga y ejecuta con función EXEC int 221h ;del DOS mov ax,@data ;hace el segmento de datos mov ds,ax ;otra vez direccionables 12-8

9 mov es,ax cli ;por un piojo en los 8080 mov ss,[segpila] ;recobra dirección de la pila mov sp,[apunpila] sti jnc ;brinca si todo bien mov dx,offset Aviso2 ;DS:DX a mensaje mov cx,largo2 ;CX = largo del mismo mov bx,errstd ;BX = handle de errores mov ah,40h ;función de escritura int 21h ;del DOS ENDP EQUIPO PROC RELOJ mov [word ParamReloj],di mov word ParamReloj+2],ds mov ax,[segamb] ;pone segmento de amb en bloque mov [BloqueCR],ax ;de ambiente mov [SegPila],ss ;salva apuntador de la pila mov [ApuntaPila],sp ;y su registro de segmento ; ahora corre RELOJ.COM.. mov dx,offset ColaReloj ;DS:DX = nombre de archivo mov bx,offset BloqueCR ;ES:BX = bloque de parámetros mov ax,4b00h ;carga y ejecuta con función EXEC int 21h ;del DOS mov ax,@data ;hace el segmento de datos mov ds,ax ;otra vez direccionable mov es,ax cli ;por un piojo en los 8080 mov ss,[segpila] ;recobra dirección de la pila mov sp,[apunpila] sti ;brinca si todo bien mov dx,offset Aviso2 ;DS:DX a mensaje mov cx,largo2 ;CX = largo del mismo mov bx,errstd ;BX = handle de errores mov ah,40h ;función de escritura int 21h ENDP RELOJ PROC SALE ;comando interno (salir) mov ax,4c00h ;función de terminar int 21h ;del DOS ENDP SALE END ;fin de programa SHELL.ASM 12-9

10 3.2 Capturar el programa EQUIPO.ASM, ensamblarlo y crear el programa ejecutable EQUIPO.EXE %TITLE EXHIBE INFORMACIÓN DEL EQUIPO DE LA PC ; EQUs IDEAL DOSSEG MODEL small STACK 256 FDC EQU 0 ;fin de cadena rc EQU 13 ;ASCII de orno de carro nl EQU 10 ;ASCII de nueva línea ; teclear lo siguiente en UNA línea RECORD Equipo Impresoras:2,x:1,Juegos:1,Puertos:3,y:1,Drives:2,Modo:2,Ram:2,z:1,disco:1 ; Definir máscaras para aislar campos de bits ; ;AND MASK ; Campo mascimpresoras = MASK Impresoras mascjuego = MASK Juegos mascpuertos = MASK Puertos mascdrives = MASK Drives mascmodo = MASK Modo mascdisco = MASK Disco DATASEG ClaveFin db 0 Saludos db rc,nl, Determinación de equipo de la PC,rc,nl,nl,FDC cadimpresoras db Número de impresoras,fdc cadjuegos db Puerto de E/S para juegos...,fdc cadpuertos db Número de puertos RS-232.,FDC caddrives db Número de drives (menos 1),FDC cadmodo db Modo inicial de video.,fdc caddisco db Tiene disco duro (1 = si),fdc cadena db 40 dup (?) ;cadena de trabajo fecha db 28 dup (20h),0 hora db 10 dup (0) CODESEG 12-10

11 ; De BINASC.OBJ y CADENAS.OBJ EXTRN BinAscDec:proc,SacaCadena:proc,NuevaLinea:proc ; De CRONOL.OBJ EXTRN TraeFecha:proc,Traedora:proc Inicia: mov ax,@data ;inicia segmento de datos mov ds,ax mov es,ax ;ES = DS mov di,offset fecha ;para exhibir fecha call TraeFecha call SacaCadena call NuevaLinea mov di,offset hora ;para exhibir hora call TraeHora call SacaCadena call NuevaLinea mov di,offset saludo ;apunta a bienvenida call SacaCadena ;y la exhibe int 11h ;función del BIOS para determinar mov bx,ax ;equipo. Salva en BX mov di,offset cadimpresoras ;apunta a cadena a exhibir mov dx,mascimpresoras ;trae máscara para el AND mov cl,impresoras ;trae conteo de corrimiento call SacaInfo mov di,offset cadjuegos ;apunta a cadena a exhibir mov dx,mascjuegos ;trae máscara para el AND mov cl,juegos ;trae conteo de corrimiento call SacaInfo ;despliega cadena e info mov di,offset cadpuertos ;apunta a cadena mov dx,mascpuertos ;trae máscara para el AND mov cl,puertos ;trae conteo de corrimiento call SacaInfo mov di,offset caddrives ;apunta a cadena a exhibir mov dx,mascdrives ;trae máscara para el AND mov cl,drives ;trae conteo de corrimiento call SacaInfo mov di,offset cadmodo ;apunta a cadena a exhibir mov dx,mascmodo ;trae máscara para el AND mov cl,modo ;trae conteo de corrimiento call SacaInfo mov di,offset caddisco ;apunta a cadena a exhibir mov dx,mascdisco ;trae máscara mov cl,disco ;trae conteo call SacaInfo mov ah,4ch ;función de DOS para acabar mov al,[clavefin] int 21h 12-11

12 ;SacaInfo EXHIBE ETIQUETA Y VALOR DE EQUIPO ; ;Entrada: BX = datos de equipo de int 11h ; CL = conteo de corrimiento ; DX = máscara para AND ; DI = dirección de la cadena ;Salida: Cadena y número desplegados ;Registros: AX, CX PROC SacaInfo mov ax,bx ;asigna equipo a AX and ax,dx ;aísla bits de interés shr ax,cl ;los pone al comienzo call SacaCadena ;saca etiqueta mov di,offset cadena ;apunta a área de trabajo mov cx,1 ;pide por lo menos 1 bit call BinAscDec ;convierte a ASCII decimal call SacaCadena ;y lo exhibe call NuevaLinea ;otra línea ;regresa ENDP SacaInfo END Inicia ;fin del módulo EQUIPO.ASM 3.3 Ejecutar el programa C>SHELL (Se muestran dos corridas, la primer de las cuales empezó con BORRA) sh: EQUIPO Dom 2 de OCT de :52:36 Determinación de equipo de la PC Número de impresoras 1 Puerto de E/S para juegos.. 0 Número de puertos RS Número de Drives (menos 1) 1 Modo inicial de video 2 Tiene disco duro (1 = si). 1 sh: CONVI 4A3EH Binario.: Hexadecimal...: 4A3E Decimal sin signo.: Decimal con signo : Número a convertir? sh: DOS Microsoft MS-DOS Versión 6.20 Copyright Microsoft Corp

13 C:\SEM386>VER MS-DOS Versión 6.20 C:\SEM386>DATE Currente date is Sun 02/10/1994 Entern new date (dd-mm-yy) C:\SEM386>EXIT sh: DOS Microsoft MS-DOS Versión 6.20 Copyright Microsoft Corp C:\SEM386>EXIT sh: SALE C:\SEM386> (Segunda corrida: se ejecutó: RELOJ y SALE) *RELOJ DIGITAL* Ensamblador de octubre de sh: SALE C:\SEM386> 3.4 Este programa se puede se puede depurar con Turbo Debugger mediante el siguiente comando: C>TD SHELL.EXE 12-13

14 Ejecutar paso a paso las rutinas DOS, CONVI y EQUIPO de SHELL y estudiar cómo trabajan. 3.5 Poner los registros en 32 bits y visualizar las variables de ambiente. 3.6 Ejecutar SHELL.EXE desde SHELL mismo, es decir, tener dos copias del programa en ejecución. 4. TAREAS 4.1 Introducir al programa el procedimiento ayuda que se ejecute cuando el usuario pida un comando inexistente, que lo oriente en cuanto a los comandos que soporta y avisar que dé EXIT para regresar desde COMMAND.COM 4.2 Agregar el comando FANFA, que ejecute FANFA.EXE. 4.3 Agregar al programa la capacidad de recibir un comando con ayuda del ratón. 4.4 En el módulo EQUIPO.ASM añadir una rutina para reportar el tamaño de la memoria RAM

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES PRÁCTICA 11 SUMA, RESTA, MULTIPLICACIÓN Y DIVISIÓN DE DOS NÚMEROS ENTEROS POSITIVOS DE HASTA 20 DÍGITOS DECIMALES 1. INTRODUCCIÓN Mediante esta práctica, trabajaremos con números binarios de hasta veinte

Más detalles

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 16 PRÁCTICA 16

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 16 PRÁCTICA 16 PRÁCTICA 16 PROGRAMA RESIDENTE QUE PUEDE USAR FUNCIONES DE DOS PARA CAPTURAR LA SALIDA A IMPRESORA 1. INTRODUCCIÓN La práctica está dedicada a ilustrar el método para hacer programas residentes en memoria

Más detalles

LENGUAJE ENSAMBLADOR PRÁCTICA 1 PRÁCTICA 1 PROGRAMA PARA EXHIBIR EN PANTALLA EL CÓDIGO DE BARRIDO DE LA TECLA OPRIMIDA

LENGUAJE ENSAMBLADOR PRÁCTICA 1 PRÁCTICA 1 PROGRAMA PARA EXHIBIR EN PANTALLA EL CÓDIGO DE BARRIDO DE LA TECLA OPRIMIDA PRÁCTICA 1 PROGRAMA PARA EXHIBIR EN PANTALLA EL CÓDIGO DE BARRIDO DE LA TECLA OPRIMIDA 1. INTRODUCCIÓN Mediante el desarrollo de esta práctica se realizará un programa que exhiba en pantalla el código

Más detalles

P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente:

P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente: Problemas P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente: ascii DB 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 7_segm DB 3fh,06h,,71h el núcleo del código sería: mov dl, al lea

Más detalles

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Sistemas operativos, arquitectura von Neumann, configuración del PC (3 puntos) 1) Señale la opción correcta: [_]

Más detalles

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR 85 MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR El módulo III está conformado por las unidades 7 y 8. El estudio de estas unidades, permite desarrollar en el estudiante las competencias necesarias en la

Más detalles

[etiqueta:] REP MOVSn

[etiqueta:] REP MOVSn INSTRUCCIONES DE CADENA Instrucción MOVSn MOVS mueve un byte, palabra o palabra doble desde una localidad en memoria a otra. Se carga la dirección de los operandos en los registros DI (Apuntador a la cadena

Más detalles

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS Características de un Ensamblador de Archivo Traduce de Leng Ensamblador a Lenguaje máquina Permite definición de etiquetas Reserva memoria para variables octales

Más detalles

Arquitectura de Computadores II 8086 Parte II

Arquitectura de Computadores II 8086 Parte II 8086 Parte II Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Funciones recursivas Manejadores de dispositivos Rutinas recursivas(1/10) Introducción Salvar contexto.

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado.

Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado. Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado. Fuente de la información de partida para este documento: http://homepage.mac.com/eravila/asmix86.html PRIMERO

Más detalles

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA IMPLEMENTACIÓN DE UN DRIVER DOS INTERFAZ CON UN SISTEMA DE RADIO

Más detalles

Instrucción De Salto Incondicional

Instrucción De Salto Incondicional INSTRUCCIONES DE CONTROL DE FLUJO Los programas que se han desarrollado hasta ahora se ejecutan en forma secuencial, esto es, el programa inicia su ejecución con la primera instrucción y continúa de arriba

Más detalles

Tema 5: La pila, las macros y los procedimientos

Tema 5: La pila, las macros y los procedimientos Tema 5: La pila, las macros y los procedimientos S La pila S Las macros S Definición de procedimientos S Tipos de procedimientos: NEAR y FAR S Paso de parámetros a un procedimiento S Mediante registros

Más detalles

Práctica 2. Registros y posiciones de memoria

Práctica 2. Registros y posiciones de memoria Enunciados de prácticas Práctica 2. Registros y posiciones de memoria Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Práctica 2:

Más detalles

Práctica 4. Lenguaje máquina y lenguaje ensamblador

Práctica 4. Lenguaje máquina y lenguaje ensamblador Enunciados de prácticas Práctica 4. Lenguaje máquina y lenguaje ensamblador Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Práctica

Más detalles

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 3DUWHGH(QVDPEODGRU 4º) Escribir un programa en ensamblador que pida un número de una cifra por teclado y saque como resultado

Más detalles

Intel 8086. Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini - 2001

Intel 8086. Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini - 2001 Intel 8086 Arquitectura Características generales Procesador de 16 bits Bus de direcciones de 20 bits : 1 Mbyte Bus de datos interno de 16 bits Bus de datos externo de 16 bits en el 8086 8 bits en el 8088

Más detalles

Introducción al ensamblador 80x86

Introducción al ensamblador 80x86 Introducción al ensamblador 80x86 Por: Sadot Alexandres Fernández Colaboran: Carlos Rodríguez Morcillo, Javier Goyanes. Departamento de Electrónica y Automática Escuela Técnica Superior de Ingeniería Universidad

Más detalles

SISTEMAS BASADOS EN MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADORES SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática Escuela Politécnica Superior UAM COLECCIÓN DE PROBLEMAS DE LOS TEMAS 5.5 A 7.2 P1. Escribir una rutina de ensamblador que se quede

Más detalles

Arquitectura (Procesador familia 80 x 86 )

Arquitectura (Procesador familia 80 x 86 ) Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene

Más detalles

Intel 8086 modelo básico (primera parte) Registros:

Intel 8086 modelo básico (primera parte) Registros: Intel 8086 modelo básico (primera parte) Registros: Uso general: AX, BX, CX, DX, SI, DI, BP. Uso con direccionamento especial: SP, IP. Registros de segmento: CS, SS, DS, ES. Modelo de los registros: 20

Más detalles

SISTEMAS BASADOS EN MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADORES SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática Escuela Politécnica Superior UAM COLECCIÓN DE PROBLEMAS DE LOS TEMAS 2.7 A 5.4 P1. Si SP=0006h y FLAGS=0210h al inicio de la ejecución

Más detalles

LENGUAJE ENSAMBLADOR PRÁCTICA 13 PRÁCTICA 13

LENGUAJE ENSAMBLADOR PRÁCTICA 13 PRÁCTICA 13 PRÁCTICA 13 SUMA, RESTA, MULTIPLICACIÓN Y DIVISIÓN DE DOS NÚMEROS REALES DE PUNTO FLOTANTE DE PRECISIÓN SENCILLA, SEGÚN NORMA IEEE-754 1 INTRODUCCIÓN Mediante esta práctica trabajaremos con números reales

Más detalles

Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue:

Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue: Esta es una interrupción de DOS y ayuda a controlar el uso del mouse. Se puede establecer el uso del ratón en modo texto y en modo gráfico. Para hacer uso del mouse se debe establecer el modo de video,

Más detalles

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado.

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado. CAPITULO 12 PROCEDIMIENTOS En el capítulo 6, aprendiste como utilizar un programa con procedimientos, en este capítulo aprenderás a usar las directivas e instrucciones que definen y llamas procedimientos.

Más detalles

Arquitectura de Computadores II Introducción al 8086

Arquitectura de Computadores II Introducción al 8086 Introducción al 8086 Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Generalidades 80x86 Modos de direccionamiento Set de instrucciones Assembler Compilando algunos

Más detalles

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005 Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento

Más detalles

Alternativas de programación

Alternativas de programación Alternativas de programación Enteramente en bajo nivel programa completo librería rutina particular Embebido en alto nivel rutinas librería 1 Alternativas de programación Enteramente en bajo nivel programa

Más detalles

Asignatura: ASSEMBLER INF-153 LABORATORIO 1

Asignatura: ASSEMBLER INF-153 LABORATORIO 1 UNIVERSIDAD MAYOR DE SÁN ANDRES FACULTAD DE CIENCIAS PURAS Y NATURALES CARRERA DE INFORMÁTICA Asignatura: ASSEMBLER INF-153 LABORATORIO 1 Catedrático: Ms.C. Carlos Mullisaca Choque 12 de agosto de 2009

Más detalles

DIRECTIVAS DEL ASM86

DIRECTIVAS DEL ASM86 DIRECTIVAS DEL ASM86 Directiva SEGMENT / ENDS nombre SEGMENT [alineación] [combinación] [nombre_clase] PARA PUBLIC BYTE COMMON WORD STACK PAGE MEMORY INPAGE AT nombre ENDS Se usa para definir un segmento

Más detalles

Tema 4. Lenguaje máquina y lenguaje ensamblador

Tema 4. Lenguaje máquina y lenguaje ensamblador Enunciados de problemas Tema 4. Lenguaje máquina y lenguaje ensamblador Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Tema 4: Hoja: 2 / 28 Tema 4: Hoja: 3 / 28 Base

Más detalles

Todos los comandos de DEBUG se invocan usando una sola letra y son los siguientes:

Todos los comandos de DEBUG se invocan usando una sola letra y son los siguientes: USO DE DEBUG Con el sistema operativo DOS (MS-DOS = Microsoft Disk Operating System) se incluye un programa para observar el comportamiento de los registros del CPU 80386. Recuérdese que los registros

Más detalles

ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS

ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS 14.1 INTRODUCCIÓN: Las directivas o pseudooperaciones se pueden dividir en cuatro grupos funcionales:! Directivas de datos.! Directivas

Más detalles

Desarrollo de Programas Residentes en base a un TSR genérico

Desarrollo de Programas Residentes en base a un TSR genérico Desarrollo de Programas Residentes en base a un TSR genérico Ing. Eduardo Vega Alvarado Jefe del Departamento de Laboratorios Ligeros del CINTEC-IPN E l presente artículo inicia una serie de trabajos sobre

Más detalles

MANUAL DE PROGRAMACIÓN EN ENSAMBLADOR 8086

MANUAL DE PROGRAMACIÓN EN ENSAMBLADOR 8086 MANUAL DE PROGRAMACIÓN EN ENSAMBLADOR 8086 ALUMNO: SANTIAGO SÁNCHEZ GONZÁLEZ TITULACIÓN: I.T.I. SISTEMAS ARQUITECTURA DE COMPUTADORES I ÍNDICE: PÁGINA Introducción al ensamblador...2 Procesos para la creación

Más detalles

EL EMU8086 Y EL MICROPROCESADOR 8086.

EL EMU8086 Y EL MICROPROCESADOR 8086. 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Microprocesadores (Edificio 3, 2da planta). EL EMU8086 Y EL MICROPROCESADOR 8086. Objetivos específicos

Más detalles

SISTEMAS BASADOS EN MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADORES SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática ENUNCIADO PROBLEMA 1 A continuación se incluye el código de una aplicación formada por un programa principal escrito en lenguaje C,

Más detalles

PRÁCTICA 2 CONVERSIÓN DE UN NÚMERO DECIMAL A BINARIO Y HEXADECIMAL Y VICEVERSA 1. INTRODUCCIÓN 2. OBJETIVOS 3. DESARROLLO

PRÁCTICA 2 CONVERSIÓN DE UN NÚMERO DECIMAL A BINARIO Y HEXADECIMAL Y VICEVERSA 1. INTRODUCCIÓN 2. OBJETIVOS 3. DESARROLLO PRÁCTICA 2 CONVRSIÓN D UN NÚMRO DCIMAL A BINARIO Y HXADCIMAL Y VICVRSA 1. INTRODUCCIÓN n esta práctica convertiremos un número decimal, introducido por el teclado, a binario y hexadecimal y viceversa.

Más detalles

REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086

REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086 REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086 INSTRUCCIONES DE TRANSFERENCIA: NINGUNA INSTRUCCIÓN DE TRANSFERENCIA AFECTA AL REGISTRO DE ESTADO (SALVO LAS EXPLÍCITAS CON EL REGISTRO DE ESTADO) A)

Más detalles

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA TÉCNICAS DIGITALES III TRABAJO PRÁCTICO N 3 ENLACE DE RUTINAS DE ASSEMBLER EN UN LEGUAJE DE ALTO NIVEL COMO C AÑO

Más detalles

Instrucciones de Control de Flujo y Usos de la Pila

Instrucciones de Control de Flujo y Usos de la Pila 1 Instrucciones de Control de Flujo y Usos de la Pila Objetivos Generales Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Microprocesadores Analizar la forma en que se ejecutan algunas

Más detalles

Trabajo Práctico Nro 3: Assembler

Trabajo Práctico Nro 3: Assembler Año 28 Banderas Nombre Estado = Estado = 1 Desbordamiento: Indica cuando el resultado de una operación con NV-No hubo OV-Desborde signo a excedido la capacidad del up. desborde Dirección: Controla la selección

Más detalles

EJEMPLOS EN ENSAMBLADOR

EJEMPLOS EN ENSAMBLADOR EJEMPLOS EN ENSAMBLADOR Introducción El lenguaje ensamblador como cualquier lenguaje de programación es un conjunto de palabras que le indican al ordenador lo que tiene que hacer. Sin embargo la diferencia

Más detalles

Práctica 3: El teclado del PC

Práctica 3: El teclado del PC Práctica 3: El teclado del PC Gustavo Romero López Arquitectura y Tecnología de Computadores 7 de junio de 2016 Gustavo Romero López Práctica 3: El teclado del PC 1 / 11 Objetivos Objetivos: Fuentes: Recordar

Más detalles

Tema 5. Presentación de datos por pantalla

Tema 5. Presentación de datos por pantalla Tema 5. Presentación de datos por pantalla Laboratorio de Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 24 Índice El registro de flags del i8086

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

Introducción al NASM. Convenciones de colores

Introducción al NASM. Convenciones de colores Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C. 1 Convenciones de colores Rojo= Directivas propias del nasm sin traducción directa a ensamblador Morado= Directivas del ensamblador En

Más detalles

Apéndice complementario a la práctica 6 Periféricos Avanzados. EL - DISCO

Apéndice complementario a la práctica 6 Periféricos Avanzados. EL - DISCO Apéndice complementario a la práctica 6 Periféricos Avanzados. EL - DISCO LOS DISCOS. ESTRUCTURA FISICA. Los discos son el principal medio de almacenamiento externo de los ordenadores compatibles. Pueden

Más detalles

CAPÍTULO 3 PROGRAMACIÓN EN AMBIENTE DE PC

CAPÍTULO 3 PROGRAMACIÓN EN AMBIENTE DE PC 66 CAPÍTULO 3 PROGRAMACIÓN EN AMBIENTE DE PC 3.1 EL SISTEMA OPERATIVO El sistema operativo (SO) provee el ambiente para que otros programas se ejecuten. En las computadoras que tienen múltiples usuarios,

Más detalles

Resumen de las instrucciones del 8086/8088

Resumen de las instrucciones del 8086/8088 Resumen de las instrucciones del 8086/8088 En este capítulo se hace un resumen de las instrucciones del 8086/8088. Estas instrucciones se encuentran explicadas más detalladamente en otro capítulo. Se puede

Más detalles

Tema 4. Lenguaje máquina y lenguaje ensamblador

Tema 4. Lenguaje máquina y lenguaje ensamblador Tema 4. Lenguaje máquina y lenguaje ensamblador Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 47 Índice Introducción Juego de instrucciones Estructura

Más detalles

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple.

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple. 2 de septiembre de 2 Hoja: / Normas del examen: Solamente existe una opción válida en las preguntas de respuesta múltiple. No se podrá emplear documentación adicional a la del examen. No se podrá emplear

Más detalles

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Examen de Arquitectura de Computadores 2 22 de febrero del 2011 Examen de Arquitectura de Computadores 2 22 de febrero del 2011 Indique su nombre completo y número de cédula en cada hoja. Numere todas las hojas e indique el total de hojas en la primera. Escriba las

Más detalles

Tema 5.1: Presentación de datos en pantalla

Tema 5.1: Presentación de datos en pantalla Tema 5.1: Presentación de datos en pantalla El registro de flags del i8086 Instrucciones de transferencia Instrucciones de transferencia de control Instrucciones aritméticas: comparación Representación

Más detalles

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR. Registros Internos del Microprocesador 2. Conjunto de Instrucciones (Microprocesadores 886/888) 2. Instrucciones de Transferencia de Datos 2.2 Instrucciones de

Más detalles

INTRODUCCIÓN. Interrupciones.

INTRODUCCIÓN. Interrupciones. Interrupciones. INTRODUCCIÓN Una interrupción es la ocurrencia de un evento o condición la cuál causa una suspensión temporal del programa mientras la condición es atendida por otro subprograma. Una interrupción

Más detalles

Ensamblador para el 80x86

Ensamblador para el 80x86 Ensamblador para el 80x86 1 DESDE ARCHIVOS FUENTES HASTA EJECUTABLES 4 DECLARACION DE SEGMENTOS 4 Programas EXE 6 Programas COM 6 Declaracion Simplificada de Segmentos 8 REGISTROS DEL 80x86 12 DATOS EN

Más detalles

Digital II Documentación de las instrucciones INdg2, OUTdg2 y de los dispositivos mapeados en el espacio de E/S

Digital II Documentación de las instrucciones INdg2, OUTdg2 y de los dispositivos mapeados en el espacio de E/S Digital II Documentación de las instrucciones INdg2, OUTdg2 y de los dispositivos mapeados en el espacio de E/S Departamento de Sistemas e Informática Escuela de Electrónica Facultad de Ciencias Exactas

Más detalles

La arquitectura del 8086/8088

La arquitectura del 8086/8088 Repasamos aquí la arquitectura de un PC. Para más información sobre lo aquí expuesto se puede consultar [PA01] y los capítulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatomía del PC A grandes rasgos,

Más detalles

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje INDICE Prólogo XV Parte 1. Visual Basic 1 Capitulo 1. Qué es Visual Basic? 3 Introducción 3 Como crear una aplicación 5 Otras facilidades de Visual Basic 6 Un lenguaje de alto nivel 9 Menús 10 Colores

Más detalles

LENGUAJE ENSAMBLADOR PRÁCTICA 5 PRÁCTICA

LENGUAJE ENSAMBLADOR PRÁCTICA 5 PRÁCTICA PRÁCTICA 5 COPIAR UN ARCHIVO EXISTENTE EN UNO NUEVO CON DISTINTO NOMBRE Y EXTENSIÓN 1. INTRODUCCIÓN Esta práctica nos sirve para copiar un archivo existente a un archivo nuevo con diferente nombre y extensión,

Más detalles

PRONTUARIO I. INFORMACIÓN GENERAL

PRONTUARIO I. INFORMACIÓN GENERAL UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO FACULTAD DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE CIENCIAS DE COMPUTADORAS Y MATEMÁTICAS PRONTUARIO I. INFORMACIÓN GENERAL Título del Curso:

Más detalles

Tema 4: Lenguaje máquina - Lenguaje ensamblador

Tema 4: Lenguaje máquina - Lenguaje ensamblador Tema 4: Lenguaje máquina - Lenguaje ensamblador S Introducción S Modos de direccionamiento: S Juego de instrucciones: S Direccionamiento inmediato S Instrucciones de transferencia S Direccionamiento directo

Más detalles

TAREA 1 ARITMETICA PARA BCD Y ASCII.

TAREA 1 ARITMETICA PARA BCD Y ASCII. 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. TAREA 1 ARITMETICA PARA BCD Y ASCII. Objetivos específicos Conocer el manejo de los caracteres ASCII para la presentación en

Más detalles

Tema 2. Presentación de datos por pantalla. La ROM-BIOS

Tema 2. Presentación de datos por pantalla. La ROM-BIOS Tema 2. Presentación de datos por pantalla. La ROM-BIOS Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Tema 2: Presentación

Más detalles

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas

Más detalles

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1 MR. 316 Versión 1 Prueba Integral 1/5 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERIA MODELO DE RESPUESTA ASIGNATURA: MICROPROCESADORES CÓDIGO: 316 MOMENTO: INTEGRAL VERSIÓN: 01 FECHA

Más detalles

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador. PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar

Más detalles

Programas Residentes En Lenguaje Ensamblador

Programas Residentes En Lenguaje Ensamblador UNIVERSIDAD DEL VALLE DE GUATEMALA Facultad de Ingeniería Programas Residentes En Lenguaje Ensamblador Trabajo de investigación presentado por Hugo Chinchilla Luis Monteros Josué Rendón Estrada i INDICE

Más detalles

INSTRUCCIONES ARITMÉTICAS.

INSTRUCCIONES ARITMÉTICAS. Microprocesadores. Guía 4 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Microprocesadores (Edificio 3, 2da planta). INSTRUCCIONES ARITMÉTICAS. Objetivos

Más detalles

6-REGISTROS DEL 8086 Y DEL 80286

6-REGISTROS DEL 8086 Y DEL 80286 ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16

Más detalles

Buses y Periféricos. ITIS. Ensamblador y Turbo debugger

Buses y Periféricos. ITIS. Ensamblador y Turbo debugger BUSES Y PERIFÉRICOS (Práctica de introducción a ensamblador. Va acompañada del documento Ensamblador del 8086.doc. Su realización no cuenta para la nota de prácticas) Programación en ensamblador utilizando

Más detalles

El microprocesador de 16 bits 8086

El microprocesador de 16 bits 8086 INTRODUCCIÓN El microprocesador de 16 bits 8086 En 1978 Intel sacó al mercado el 8086, con un bus de datos de 16 bits y capaz de direccionar hasta 1 Mb de memoria. La importancia del 8086 se debe a que

Más detalles

Práctica Nº 4 Entorno de Programación

Práctica Nº 4 Entorno de Programación REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DE LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA DEP. DE ING. ELECTRÓNICA LABORATORIO DE ARQUITECTURA DEL COMPUTADOR Objetivos:

Más detalles

Ingeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador.

Ingeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador. Sistemas Operativos Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador. Modalidad: Obligatorio. Objetivos: Abordar la materia Sistemas Operativos desde el

Más detalles

Relación de Problemas I

Relación de Problemas I Relación de Problemas I 352) $1'5e6 52/'È1 $5$1'$ 1. Realizar el cálculo del tiempo que transcurre durante la ejecución del bloque de instrucciones sombreado, en función del contenido de los registros

Más detalles

Tema 3: ASCII y operaciones de desplazamiento y lógicas

Tema 3: ASCII y operaciones de desplazamiento y lógicas Tema 3: ASCII y operaciones de desplazamiento y lógicas S Representación de cadenas de caracteres (alfanuméricas) S Operaciones de desplazamiento S Desplazamientos lógicos S Desplazamientos aritméticos

Más detalles

Manual de Programación X86 sobre plataforma FPGA.

Manual de Programación X86 sobre plataforma FPGA. Instituto Tecnológico de Costa Rica. Escuela de Ingeniería Electrónica. Manual de Programación X86 sobre plataforma FPGA. Programas Básicos IA32 en Computador Específico. Realizado por: Kervin Sánchez

Más detalles

Ejemplo del uso de las subrutinas

Ejemplo del uso de las subrutinas Ejemplo del uso de las subrutinas Enunciado del problema: Diseñar un contador BCD que cuente de 0 a 59 para simular un timer de 60 segundos y que el conteo de dos dígitos BCD, sea desplegado en los displays

Más detalles

INEL 4206 Microprocesadores Texto: Barry B Brey, The Intel Microprocessors:

INEL 4206 Microprocesadores Texto: Barry B Brey, The Intel Microprocessors: Introducción al Curso Microprocesadores INEL 4206 Microprocesadores Texto: Barry B Brey, The Intel Microprocessors: Architecture, Programming and Interfacing. 8va. Ed., Prentice Hall, 2009 Prof. José Navarro

Más detalles

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

Más detalles

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Laboratorio de Arquitectura de Redes. Entrada y salida estándar Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada

Más detalles

Registros de la CPU. IP Registro de apuntador de siguiente instrucción

Registros de la CPU. IP Registro de apuntador de siguiente instrucción Registros de la CPU La CPU tiene 14 registros internos, cada uno de 16 bits. Los primeros cuatro, AX, BX, CX, y DX son registros de uso general y también pueden ser utilizados como registros de 8 bits,

Más detalles

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares: Práctica 4 Organización del Computador 1 12 de septiembre de 2005 Algunas consideraciones preliminares: Donde aparece xxxxxxxx quiere decir que el valor correcto ya está en esa dirección de memoria Todos

Más detalles

El Diseño de un Lenguaje Máquina

El Diseño de un Lenguaje Máquina Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje

Más detalles

control de Luces por el Puerto Paralelo 378H (16 Luces 4 bloques de 4)

control de Luces por el Puerto Paralelo 378H (16 Luces 4 bloques de 4) control de Luces por el Puerto Paralelo 378H (16 Luces 4 bloques de 4) 1.- Lo primero Tenemos que tener un cuenta que el puerto paralelo tiene solo 8 salidas de datos (D7...D2) y nosotros necesitamos controlar

Más detalles

Conmutación de Tareas

Conmutación de Tareas Conmutación de Tareas Conmutación de tareas Expira el tiempo de ejecución asignado por el procesador a la tarea N El procesador almacena en memoria el estado de máquina (contexto) de la tarea N. El procesador

Más detalles

Fig. 1: Tipos de datos que puede manejar el procesador

Fig. 1: Tipos de datos que puede manejar el procesador 1. Introducción 2. Registros internos 3. Almacenamiento de datos 4. Modos de direccionamiento 5. Juego de Instrucciones 6. Etiquetas, cometarios y directivas 7. Problemas 1. Introducción El lenguaje ensamblador

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:

Más detalles

Comparaciones en lenguaje ensamblador

Comparaciones en lenguaje ensamblador Comparaciones en lenguaje ensamblador Objetivo: Entender cómo se realizan las comparaciones de datos en lenguaje ensamblador En lenguaje ensamblador no existe la instrucción IF como se trabaja en otros

Más detalles

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO 16.1 INTRODUCCIÓN: El teclado se comunica con la BIOS a través de puertos de comunicación controlados por las interrupciones de la

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERIA. Programación en Lenguaje Ensamblador

UNIVERSIDAD NACIONAL DE INGENIERIA. Programación en Lenguaje Ensamblador UNIVERSIDAD NACIONAL DE INGENIERIA RECINTO UNIVERSITARIO SIMON BOLIVAR Facultad de Electrotecnia y Computación Departamento de Arquitectura y Sistemas Folleto Complementario de Arquitectura de Máquinas

Más detalles

Programación Avanzada en Lenguaje Ensamblador

Programación Avanzada en Lenguaje Ensamblador Programación Avanzada en Lenguaje Ensamblador Ramón Medina Reservados todos los derechos. Ni la totalidad ni parte de este libro puede reproducirse o transmitirse por ningún procedimiento electrónico o

Más detalles

APUNTES DE LENGUAJE ENSAMBLADOR. Lenguaje ensamblador

APUNTES DE LENGUAJE ENSAMBLADOR. Lenguaje ensamblador Lenguaje ensamblador Compiladores y Ensambladores Tanto los compiladores como los Ensambladores caen en la categoría de programas que llamamos traductores. Un traductor es un programa que acepta archivos

Más detalles

Macro posicionado de cursor PAMCUR

Macro posicionado de cursor PAMCUR ESTRUCTURA DE COMPUTADORES I (Programas de ejemplo pantalla alfanumérico) 1 Macro posicionado de cursor PAMCUR ;Macro para posicionar el cursor en la página que yo le indique, si la fila o columna indicadas

Más detalles

Este grupo es una continuación del anterior, incluye las siguientes instrucciones:

Este grupo es una continuación del anterior, incluye las siguientes instrucciones: CONJUNTO DE INSTRUCCIONES (Microprocesadores 8086/8088) Se pueden clasificar en los siguientes grupos: Instrucciones de Transferencia de Datos. Estas instrucciones mueven datos de una parte a otra del

Más detalles

APÉNDICE D. Directivas, Operadores e Instrucciones del Lenguaje Ensamblador

APÉNDICE D. Directivas, Operadores e Instrucciones del Lenguaje Ensamblador APÉNDICE D Directivas, Operadores e Instrucciones del Lenguaje Ensamblador DIRECTIVAS (PSEUDO-OPERACIONES) Las directivas son comandos que afectan al ensamblador, y no al microprocesador, por lo que no

Más detalles

DISPLAY LCD MICROPROCESADORES

DISPLAY LCD MICROPROCESADORES Módulo LCD HD4478 de de Hitachi Módulo LCD HD4478 de de Hitachi E R / W D-D7 D-D7 VDD Vo Vss Controlador Controlador del del LCD LCD HD4478 HD4478 Manejador Manejador Del Del LCD LCD Manejador Manejador

Más detalles