1.2 Limitaciones de DEBUG NOTAS SOBRE DEBUG

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

Download "1.2 Limitaciones de DEBUG NOTAS SOBRE DEBUG"

Transcripción

1 1 NOTAS SOBRE DEBUG CLASE INEL 4206: MICROPROCESADORES I 1. Generalidades Preparadas por Rogelio Palomera G. Verano Versión corregida, Febrero 2006 DEBUG es un programa provisto con DOS. Versiones más avanzadas de este programa son SYMDEB y CodeView (CV), los cuales se proveen junto con MASM (MicroSoft Assembler). El nombre sugiere "debugger", que significa programa para corregir errores de programación en un código. Existen otros programas que cumplen la misma función, así como otros tipos de ensambladores 1.1 Ventajas de los programas depuraadores ("debuggers") a) examinar el contenido de la memoria y los registros; b) ejecutar instrucciones de un programa, ya sea en forma contínua o una a la vez, y verificar su ejecución (lo que permite identificar errores de ahí el nombre entre otras cosas). c) modificar directamente una o más instrucciones del programa sin necesidad de seguir todo el proceso de ensamblado. d) escribir instrucciones en lenguaje ensamblador (ensamblar) y ejecutarlas Esto permite estudiar el efecto de las instrucciones; e) desensamblar instrucciones, esto es, interpretar el contenido de memoria como instrucción de ensamblador. f) crear y cargar archivos 1.2 Limitaciones de DEBUG A) Toda expresión numérica es hexadecimal, con un máximo de cuatro cifras hexadecimales. Se escriben sin el sufijo H B) El ensamblador DEBUG no acepta variables ni símbolos en las instrucciones del ensamblador. C) Solamente trabaja en modo real, y existen algunos comandos de ensamblador que no pueden probarse en este DEBUG D) Solamente trabaja con registros de 16 y 8 bits, y no incluye al FS ni GS. Para trabajar con los registros de 32 bits, como EAX, EBX, etc. debe usarse el CodeView. 2. Usando DEBUG 2.1 Abriendo y saliendo de DEBUG. Help Para comenzar DEBUG, simplemente escriba el comando DEBUG y oprima ENTER. Se puede abrir desde cualquier directorio. C:\>DEBUG El "prompt" de DEBUG es el guión. Los comandos en DEBUG no se ejecutan mientras no se oprima la tecla ENTER. Cuando se abre DEBUG solo con el comando anterior, el programa inicializa automáticamente los registros: Los segmentos de registro se inicializan en el primer lugar de memoria disponible después de cargar DEBUG, IP=0100, SP= FFEE y los demás registros a Se puede abrir DEBUG cargándolo con un programa:

2 2 C:\> DEBUG <file.exe>> Cuando se invoca al programa file.exe, éste ocupa un lugar en la memoria y los registros se inicializan de la manera siguiente: * el par de registros BXCX indica el número de bytes que contiene el programa. ** CS y SS, y los indicadores IP y SP se inicializan de acuerdo al inicio de los segmentos correspondientes. ** IP = 0000 si no se uso la directiva ORG en el programa fuente. Se puede iniciar usando un archivo que contiene comandos de DEBUG: C:\> DEBUG < file.dbg En este caso, los comandos incluidos en el archivo se ejecutan inmediatamente. El comando "?" genera una lista de los comandos de DEBUG :? assemble A [address] compare C range address dump D [range] enter E address [list] fill F range list go G [=address] [addresses] hex H value1 value2 input I port load L [address] [drive] [firstsector] [number] move M range address name N [pathname] [arglist] output O port byte proceed P [=address] [number] quit Q register R [register] search S range list trace T [=address] [value] unassemble U [range] write W [address] [drive] [firstsector] [number] allocate expanded memory XA [#pages] deallocate expanded memory XD [handle] map expanded memory pages XM [Lpage] [Ppage] [handle display expanded memory status XS Los corchetes [ ] indican que el parámetro pedido es opcional. En esta práctica no usamos todos los comandos. 2.2 Parámetros Importantes: Los parámetros comunes, opcionales o no, son: address: Una dirección puede ser a) un offset 1 a 4 cifras hex ( ejm 100)., DS es el segmento implícito para los comandos E, D y F. CS para los comandos A, G, P, T, W, U b) un segmento y un offset ( 0230: 100) ; c) un registro de segmento y un offset (CS: 100) range: bloque de direcciones que empieza en un address determinado. El rango se especificar como a) address1 address2 (address2 solamente offset ya que el segmento es el mismo que address1) b) address L << número de bytes >> El el segundo caso, se indica en hexadecimal el número de bytes que abarca el rango.

3 3 2.3 Examinando y modificando memoria y registros Registros: El comando R permite examinar y modificar el contenido de los registros. Con el comando R solamente, aparece una lista de los registros y su contenido. R AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0100 2D14:0100 0F DB 0F Carry (C) 1: yes; 0: no Parity (P) (Even/Odd) Auxiliary half carry (A) (yes/no) Zero (Z) (Yes/ No) CY PE AC ZR NC PO NA NZ El Flag Register se muestra como La última línea muestra: Sign (S) (Negative/Positive) Interrupt (I) (Enable/disable) NG EI PL DI 1. la dirección de la siguiente instrucción (2D14:0100); 2. el lenguaje máquina de la instrucción (0F ) y 3. el lenguaje mnemónico de la instrucción ( DB 0F). Direction (D) (Decrement/increm ent) DN UP Observe que el offset de la dirección de la siguiente instrucción está dado por IP Overflow (O) (yes/no) OV NV Como los registros se inicializaron, las banderas están a "0" (cleared), a excepción de la bandera de interrupción (EI = "1", interrupt enabled). La lectura de las banderas se muestra en la tabla siguiente. La bandera T (trap) no se incluye, ya que ésta se usa solamente para correr programas paso a paso. Bandera = 1 (set) = 0 (cleared) Para modificar el contenido de un registro, se invoca el comando R seguido del registro que se desea modificar. DEBUG responde indicando el valor actual del registro y en la línea siguiente dos puntos (:), después de lo cual se introduce el nuevo valor deseado. Ejemplo: R DS DS 2D14 :2D24 R

4 4 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE DS=2D24 ES=2D14 SS=2D14 CS=2D14 IP=0100 2D14:0100 0F DB 0F Memoria Para trabajar con la memoria se usan tres comandos: E, D y F. En estos tres comandos debemos especificar una dirección o un rango. En el comando D éstos son opcionales Comando E: Este comando nos permite examinar y/o modificar contenidos de memoria. A) Examinando: El comando E seguido de la dirección nos muestra el contenido de la memoria en esa dirección, seguida de un punto. Oprimiendo la barra de espacio se muestra la siguiente direccion, y asi sucesivamente hasta que se aprieta "Enter" o "Return". En el siguiente ejemplo, se ve que el contenido de memoria con dirección DS:0100 es el byte 0E. E 100 2D14:0100 0E. Usando ahora la tecla de espacio, se ve el contenido de las direcciones 100 (0E), 101 (00), 102 (B9) y 103 (8A): E 100 2D14:0100 0E. 00. B9. 8A. B) Modificando:Para modificar uno o más lugares de memoria hay dos formas: B1) Escribiendo inmediatamente después del punto el nuevo byte deseado. (En el ejemplo, las negritas): 2D14: A.0B B2) Escribiendo inmediatamente después de la dirección la lista desead de bytes (la lista puede escribirse numéricamente como números o como ASCII: E B E 200 'ABC' E 200 2D14: Comando D: Este comando permite ver bloques de memoria, y muestra aquellos lugares con código ASCII, el cual se muestra a la derecha.. Tiene las modalidades siguientes: A) El comando D solo presenta 128 bytes, en grupos de 16, a partir de la última dirección utilizada con D. B) D <<address>> presenta lo mismo que D, pero a partir de la dirección indicada. C) D << range>> presenta solamente el bloque en el rango indicado Comando F <<range>> <<list>>. Permite "llenar" uno o más lugares en un rango dado, con bytes especificados en una lista. En los ejemplos usamos el comando D para verificar el resultado: F 100 L 5 88 D 100 L 5 2D14: F 200 L 5 A B C D E D 200 L 5 2D14:0200 0A 0B 0C 0D 0E E 100

5 Otros comandos con memoria: A) El comando M <<range>> <<address>> nos permite copiar en la dirección <<address>> el bloque de memoria indicada en el <<range>>. B) El comando S <<range>> <<list>> localiza los bytes de la lista los bytes dentro del rango indicado. El comando devuelve las direcciones donde se encuentran los bytes indicados. En la siguiente secuencia se puede apreciar el efecto de estos comandos: D 100 2D14:0100 0F 00 B9 8A FF F3 AE F 8B C B1...Ga...H.. 2D14: B C6 F7 0A 0A D0 D348 DA 2B D D...H D14: DB D2 D3 E0 03 F0 8EDA 8B C7 16 C2 B D14:0130 C0 16 F8 8E C2 AC 8A D E AD 8B C8 46 8A...N...F. 2D14:0140 C2 24 FE 3C B ACF3 AA A0 0A EB 06 3C B2.$.<.u...<. 2D14: D 6D 13 A B1 BE D 8B 1E umm...p.t D14:0160 8E FC 12 A8 33 D2 29 E313 8B C2 03 C )...i.. 2D14:0170 0B F8 83 FF FF D E2 F FA...t.&... M D D14:0100 0F 00 B9 8A FF F3 AE F 8B C B1...Ga...H.. 2D14: B C6 F7 0A 0A D0 D348 DA 2B D D...H D14:0120 0F 00 B9 8A FF F3 F0 8EDA 8B C7 16 C2 B D14:0130 C0. S D14:012B 2D14:012F S 'Ga' 2D14: Instrucciones en lenguaje ensamblador (mnemónicas) y corriendo programas. empieza en la dirección CS:0100 o donde indique el programa.exe que se haya cargado. Ver ejemplos: 3.1 Comandos U(nassembly) y A(ssembly) Comando U [<<address>] [<<range>>] Interpreta en forma mnemónica, esto es, en lenguaje ensamblador el contenido de la memoria. Interpreta 16 instrucciones, o las instrucciones en el rango indicado. Con U solo, las interpreta partir de la última memoria interpretada anteriormente. La primera vez que se ejecuta, U 2D14:0100 0F DB 0F 2D14: B98AFF ADD [BX+DI+FF8A],BH 2D14:0105 F3 REPZ 2D14:0106 AE SCASB 2D14: INC DI 2D14: DB 61 2D14: F ADD BX,[BX] 2D14:010B 8BC3 MOV AX,BX 2D14:010D 48 DEC AX 2D14:010E 12B1048B ADC DH,[BX+DI+8B04]

6 6 2D14:0112 C6F70A MOV BH,0A 2D14:0115 0AD0 OR DL,AL 2D14:0117 D348DA ROR WORD PTR [BX+SI26],CL 2D14:011A 2BD0 SUB DX,AX 2D14:011C 3400 XOR AL,00 2D14:011E 032D ADD BP,[DI] U 10A 112 2D14:010A 1F POP DS 2D14:010B 8BC3 MOV AX,BX 2D14:010D 48 DEC AX 2D14:010E 12B1048B ADC DH,[BX+DI+8B04] 2D14:0112 C6F70A MOV BH,0A A la derecha de la memoria aparece el lenguage máquina correspondiente a la instrucción en lenguaje máquina que aparece después de la dirección. Si el byte no corresponde a ningún OPCODE, lo interpreta como DB Comando A [<<address>>]: Para escribir instrucciones en lenguaje ensamblador. Al introducir el comando, nos responde con la dirección donde será colocada la instrucción (La dirección podemos ponerla opcionalmente). Después de escribir la instrucción, nos responde con una nueva dirección. Continuamos así hasta finalizar. Se sale del modo A oprimiendo <<return>> solamente en la línea, sin ningún otro dato. NOTA: El comando A solo nos coloca en la dirección siguiente a la última vez que se utilizó. Si queremos una dirección particular, hay que agregarla. A 210 2D14:0210 MOV AH, BL 2D14:0212 ADD CX, DX 2D14:0214 OR CL, [2304] 2D14:0218 MOV AX, 345 2D14:021B U B 2D14: DC MOV AH,BL 2D14: D1 ADD CX,DX 2D14:0214 0A0E0423 OR CL,[2304] 2D14:0218 B84503 MOV AX,0345 2D14:021B 66 DB 66 Este ensamblador elemental no permite variables. Todos los números son hexadecimales: A 2D14:021B ADD AX, DURO ^ Error 2D14:021B 3.2 Ejecutando instrucciones y/o programas :Comandos G(o), T(race) y P(roceed). Estas instrucciones son de suma importancia porque nos permiten: A) observar la ejecución de una instrucción para fines de aprendizaje o de corrección; B) correr programas o secciones de programas para verificarlos Comando G Este comando ejecuta las intrucciones una después de la otra. Sus modalidades son: a) G: ejecuta las instrucciones a partir de la dirección CS:IP; b) G = <<address>>: ejecuta las instrucciones a partir de la dirección indicada (segmento CS si no se indica lo contrario) G = <<address1>> <<address2>>: Ejecuta las instrucciones entre las dos direcciones indicadas y regresa al final el contenido de registros, con IP señalando <<address2>>

7 7 Si se encuentra con una instrucción inválida etonces o bien se congela la máquina o causa un error. Si todas las instrucciones son válidas, en los dos primeros casos ejecutará las instrucciones indefinidamente o hasta encontrarse con una de las siguientes instrucciones: a) INT 20 : Responde "Program Terminated normally" y regresa al "prompt" de DEBUG. Los registros son inicializados. b) MOV AH, 4C, INT 21: Igual que antes, pero a veces regresa a DOS y no a DEBUG. c) INT 3 : (break) Suspende la corrida y muestra el estado de los registros. Esto es útil para observar segmentos de programa.observe los siguientes ejemplos. A 2D14:0100 MOV AX, D14:0103 MOV [234],AX 2D14:0106 INT 20 2D14:0108 G Program terminated normally E 234 2D14: R AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0100 2D14:0100 B80004 MOV AX,0400 A 200 2D14:0200 MOV AX, D14:0203 MOV [234], AX 2D14:0206 INT 3 2D14:0207 G = 200 AX=0400 BX=0000 CX=0000 DX=0000 SP=FFEE DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0206 NV UP EI PL NZ NA PO NC 2D14:0206 CC INT 3 A 300 2D14:0300 MOV AX,0400 2D14:0303 MOV [2340], AX 2D14:0306 MOV AH,4C 2D14:0308 INT 21 2D14:030A G=300 C:\> Comandos T y P: Estos dos comandos funcionan de manera casi similar. Si hay una instrucción de tipo INTerrupt (la cual es en realidad una subrutina), o una instruccion repetitiva como LOOP o REP, el comando P ejecutará toda la subrutina o toda la instrucción repetitiva, mientras que T solamente ejecuta una instrucción. A) T (P) Ejecuta una instrucción ( subrutina o lazo en caso P), cuya dirección es la que corresponde a la última ocasión en que se usaron. Después de ejecutarla devuelve a la pantalla los registros; si es necesario analizar memoria, entonces podemos hacerlo. B) T <<número>> (P <<número>> ) Este comando ëjecuta la cantidad de instrucciones indicada por <<número>>.

8 8 C) T=<< address>> P=<< address>> Ejecutan la instrucción en la dirección indicada. Si solamente se da el offset, el segmento es CS. D) T=<< address>> << número>> P=<< address>> << número>> Ejecuta <<número>> instrucciones a partir de la dirección indicada. En el ejemplo siguiente el objetivo es ir incrementando el registro AL tantas veces (16H = 22) como lo indica el contador. Primero escribimos las instrucciones. Al ejecutar la primera instrucción observe que CX = Cuando se ejecuta la segunda instrucción: AX=0001, que es lo que se pidió. Como CX no es cero, se vuelve a la instrucción de incrementar. Luego hacemos un T 5 para ejecutar cinco instrucciones. Cuando usamos P, como hay un LOOP, se realiza todo el lazo y se sale de el. Observe que despues de P tenemos AX = 0016 y CX=0000. Observe también IP: C:\>debug a 2D14:0100 mov cx, 16 2D14:0103 inc al 2D14:0105 loop 103 2D14:0107 t AX=0000 BX=0000 CX=0016 DX=0000 SP=FFEE DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0103 2D14:0103 FEC0 INC AL t AX=0001 BX=0000 CX=0016 DX=0000 SP=FFEE DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0105 2D14:0105 E2FC LOOP 0103 t AX=0001 BX=0000 CX=0015 DX=0000 SP=FFEE DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0103 2D14:0103 FEC0 INC AL t 5 AX=0002 BX=0000 CX=0015 DX=0000 SP=FFEA DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0105 NV UP EI PL NZ NA PE NC 2D14:0105 E2FC LOOP 0103 AX=0002 BX=0000 CX=0014 DX=0000 SP=FFEA DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0103 NV UP EI PL NZ NA PE NC 2D14:0103 FEC0 INC AL AX=0003 BX=0000 CX=0014 DX=0000 SP=FFEA DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0105 2D14:0105 E2FC LOOP 0103 AX=0003 BX=0000 CX=0013 DX=0000 SP=FFEA DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0103 2D14:0103 FEC0 INC AL

9 9 AX=0004 BX=0000 CX=0013 DX=0000 SP=FFEA DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0105 NV UP EI PL NZ NA PE NC 2D14:0105 E2FC LOOP 0103 p AX=0017 BX=0000 CX=0000 DX=0000 SP=FFEA DS=2D14 ES=2D14 SS=2D14 CS=2D14 IP=0107 NV UP EI PL NZ NA PE NC 2D14: INC DI 4. Manejando archivos de datos, bytes o programas. 4.1 Salvando archivos Se pueden salvar bloques de memoria (que pueden corresponder a instrucciones, a datos o cualquier informacion particular) en archivos. El procedimiento es el siguiente: 1) Utilice el comando N con el siguiente formato: N << [path] file_name>> Si se omite [path], el archivo se generará en el directorio desde el cual se invocó a DEBUG. Con este comando hemos llamado a un archivo file_name, o lo hemos creado si no existía. 2) Usando los dos registros BX y CX escriba el número de bytes que se van a guardar. La parte más significativa se escribe en BX ( Si son menos de 64Kbytes, BX=0000) 3) Comando W. En la sección 5 se muestra un ejemplo. 4.2 Cargando archivos Un archivo que consista de bytes, o que sea un programa ejecutable (.EXE o.com), puede cargarse dentro de DEBUG para examinarse, usarse como datos, etc. Hay dos maneras de hacerlo. Cuando se carga un archivo, los registros BXCX se inicializan con el número de bytes dentro del archivo (parte más significativa en BX). Si éste es un programa, IP se inicializa además con el offset de la primera instrucción. Se puede cargar el archivo o programa al invocar a DEBUG desde DOS: C:> DEBUG PROGRAM.EXE También se puede cargar desde DEBUG con los comandos Name y Load con el formato siguiente: : N PROGRAM.EXE L 5. Ejemplo de un programa en lenguaje máquina y.com Como primer ejemplo, vamos a escribir un programa directamente en lenguaje máquina usando DEBUG. Este programa será guardado como PRUEB1.COM. Es completamente ejecutable desde DOS (o Windows). 5.1 Programa en lenguaje máquina Paso 1: Inicie DEBUG e Paso 2: introduzca los siguientes 48 bytes en la dirección CS:100. Esta dirección se pone para asegurar que se empieza justamente en offset 100 dentro del segmento CS. Esta es una condición de los programas con extensión.com. E CS:100 BA B4 09 CD 21 BA CD 21 B4 4C

10 10 E CS:110 CD 21 0D 0A F 20 4D F 20 E CS: D 0A E 45 4C D 0A 24 Paso 3: Indicar en los registros BXCX el número de bytes que se desean guardar, es decir, la longitud del programa. Como 48D = 30H, cargamos CX con 30H, BX=00. Crear el archivo PRUEB1.COM y salvarlo (comando W). DEBUG responde indicando el número de bytes salvados. R CX CX 0034 :30 N PRUEB1.COM W Writing bytes Ahora podemos correr el programa desde DOS: C:> PRUEB1 CURSO MICRO I INEL 4206 También lo podemos correr dentro de DEBUG con G= Programa en Assembly: El mismo programa de la subsección anterior puede escribirse dentro de DEBUG con lenguaje ASSEMBLY de la siguiente manera (LAS NEGRITAS INDICAN LO QUE SE ENTRO, CON UN "RETURN" AL FINAL): A 100 2D30:0100 MOV DX, 112 2D30:0103 MOV AH,09 2D30:0105 INT 21 2D30:0107 MOV DX,011C 2D30:010A MOV AH, 09 2D30:010C INT 21 2D30:010E MOV AH, 4C 2D30:0110 INT 21 2D30:0112 DB 0D, 0A, 'MICRO I','$' 2D30:011C DB 0D, 0A, 'INEL 4206' 2D30:0127 DB 0D, 0A, '$' 2D30:012A Puede usted verificar los comandos y el lenguaje máquina con U Sin embargo, de 0112 en adelante se ven resultados diferentes a lo que introdujo. Esto se debe a la interpretación que da el comando U a los binarios. Usar entonces D CS: Archivos con comandos de DEBUG Usted puede escribir, usando un editor de texto, un archivo con los comandos que usaría en una sesión de DEBUG.. Los comandos incluyen el return, que aparece como una línea en blanco. Por ejemplo, supongamos que queremos cambiar el contenido de la memoria 400 a la memoria 402. Podemos probar las instrucciones MOV AL, [400] y MOV [402], AL usando DEBUG. Pero en lugar de abrir DEBUG y hacerlo, sigamos los pasos que se indican: Paso 1. Usando un editor de texto, escriba el siguiente archivo, con A 200 como primera línea ( Respete las líneas en blanco): A 200 MOV AL, [400] MOV [402], AL INT 20 U E 400 6C 0 0

11 11 G =200 E 402 Q Paso 2:. Salve el archivo como EJEM.DEB Paso 3:. En DOS escriba el comando C: > DEBUG<EJEM.DEB En este caso, DEBUG no está cargando un programa, sino que interpreta el contenido de EJEM.DEB como comandos de DEBUG. A 200 inicia la introducción a Assembly; las siguientes tres líneas son el miniprograma que deseamos probar. Una línea en blanco para terminar con Assembly. Después verificamos las instrucciones con U Cargamos la memoria 400 con 6C e inicializamos 401 y 402 con 0. Corremos el programa con G=200. Examinamos la memoria 402 para verificar la corrida. Una línea en blanco para salir de E. Finalmente salimos de DEBUG con el comando Q.

LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits

LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits Programa DEBUG: ensamblado y trazado de instrucciones Objetivo El primer objetivo de esta práctica es familiarizarse con el potente programa

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

APUNTES DE LENGUAJE ENSAMBLADOR APÉNDICE B DEBUG

APUNTES DE LENGUAJE ENSAMBLADOR APÉNDICE B DEBUG APÉNDICE B DEBUG Para manejar el lenguaje ensamblador, es aconsejable conocer básicamente la arquitectura de la computadora, en especial cómo funciona el CPU. Por tanto es necesario saber utilizar la herramienta

Más detalles

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN PRÁCTICA DE LABORATORIO No I NOMBRE DE LA PRÁCTICA: COMANDOS BÁSICOS DE DEBUG( PARTE I) OBJETIVO: APRENDER LOS COMANDOS

Más detalles

EL PROGRAMA MICROSOFT CODEVIEW

EL PROGRAMA MICROSOFT CODEVIEW EL PROGRAMA MICROSOFT CODEVIEW El programa CodeView es una utilidad para la depuración de programas para entornos tipo PC, que se incluye en el Microsoft Macro Assembler versión 5.1. Para el mejor aprovechamiento

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

Tema 1. Fundamentos del lenguaje ensamblador

Tema 1. Fundamentos del lenguaje ensamblador Tema 1. Fundamentos del lenguaje ensamblador Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Índice Estructura del

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

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

Curso básico de Emsamblador. Laboratorio # 1. Capitulo 4. Las instrucciones del ensamblador (2da. Parte)

Curso básico de Emsamblador. Laboratorio # 1. Capitulo 4. Las instrucciones del ensamblador (2da. Parte) Curso básico de Emsamblador Prof. Carlos Ávila Murillo Aplicada III 2012 Lista de cotejo Contenido Laboratorio # 1 Capitulo 1. Conceptos Basicos Capitulo 2. Programación en ensamblador Capitulo 3. Las

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA - Sede TALCAHUANO. Area Electrónica Programación en Ensamblador 8088/86.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA - Sede TALCAHUANO. Area Electrónica Programación en Ensamblador 8088/86. COMANDOS DEL SYMDEB (DEBUG) Los comandos básicos del SYMDEB y el DEBUG son muy similares entre sí; sin embargo existen algunas diferencias. Para información más específica, referirse a los manuales respectivos.

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

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

ARQUITECTURA INTERNA DEL µp8086

ARQUITECTURA INTERNA DEL µp8086 El µp 8086 es un dispositivo de 16 bits de datos y 20 bits de direcciones. Esta dividido en dos subprocesadores: EU (Unidad de Ejecución). Es la encargada de realizar todas las operaciones de control y

Más detalles

Introducción al EMU8086

Introducción al EMU8086 Introducción al EMU8086 Facultad: Estudios Tecnologicos. Escuela: Electrónica. Asignatura: Microprocesadores Objetivo General Utilizar el programa emulador EMU8086 y relacionarlo con los elementos básicos

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

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Arq. de Computadora I Ing. Carlos Ortega H. 1 Interrupciones FUNCIÓN INT

Más detalles

Los números naturales y enteros en el 80X86 y en LAN

Los números naturales y enteros en el 80X86 y en LAN Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales

Más detalles

Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80

Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 1 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 2 Cargue el numero F2H y 68H en los registros B y C respectivamente Almacene A2H en la locación de memoria 2065H Reste el 68H de F2H (F2H-68H)

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen constará de dos partes: 1ª parte: Test, con una puntuación de 5 puntos y 30 minutos de tiempo 2ª parte: Ejercicios prácticos, con una puntuación

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

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1 Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador

Más detalles

Registros Arquitectura x86. M. en C. Erika Vilches

Registros Arquitectura x86. M. en C. Erika Vilches Registros Arquitectura x86 M. en C. Erika Vilches Registro Area especial de almacenamiento de alta velocidad dentro del CPU Registros del procesador x86 Registros de datos de propósito general Registros

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

Laboratorio 1 Entorno de desarrollo y subrutinas

Laboratorio 1 Entorno de desarrollo y subrutinas Laboratorio 1 Entorno de desarrollo y subrutinas Objetivos Dar los primeros pasos con el uso de la placa. Desarrollar subrutinas que acceden a puertos de entrada y salida (E/S). Validar subrutinas básicas

Más detalles

Tema: Lenguaje ensamblador embebido

Tema: Lenguaje ensamblador embebido Compiladores. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Lenguaje ensamblador embebido Contenido En esta guía se presenta una breve introducción a las estructuras

Más detalles

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086 Estructura de Computadores: Tema 1 El procesador Introducción Estudiaremos la arquitectura del procesador i8086 (CPU, registros,...), su gestion de la memoria y su conjunto de instrucciones. Programaremos

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

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

Arquitectura Interna del 8088

Arquitectura Interna del 8088 Arquitectura Interna del 8088 Intel diseñó el 8088/8086 para realizar al mismo tiempo las principales funciones internas de transferencia de datos y búsqueda de instrucciones. Para conseguir esto, el 8088

Más detalles

Instrucciones del microprocesador

Instrucciones del microprocesador Instrucciones del microprocesador Formato de las Instrucciones Las líneas de instrucciones se integran de 4 campos. [Identificador]: Se utiliza par etiquetar a las intrucciones donde se realizara el salto,nombre

Más detalles

INT 21H Función 02H Salida de Carácter LLAMADA: AH = 02H DL = Código ASCII a enviar al dispositivo de salida. DEVUELVE: NADA.

INT 21H Función 02H Salida de Carácter LLAMADA: AH = 02H DL = Código ASCII a enviar al dispositivo de salida. DEVUELVE: NADA. INT 21H La mayoría de servicios ó funciones del sistema operativo MS-DOS se obtienen a través de la interrupción software 21H. Es por esto que se le denomina DOS-API: DOS-APPLICATION-PROGRAM-INTERFACE

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen tendrá una duración total de 2 horas. El examen constará de dos partes: teoría y problemas. La nota final será la suma de las dos partes

Más detalles

ENSAMBLADOR. M.C. Laura Cuayahuitl Romero MODO DE DIRECCIONAMIENTO DIRECTO

ENSAMBLADOR. M.C. Laura Cuayahuitl Romero MODO DE DIRECCIONAMIENTO DIRECTO ENSAMBLADOR M.C. Laura Cuayahuitl Romero MODO DE DIRECCIONAMIENTO DIRECTO IMPORTANTE: LEE CON MUCHO CUIDADO TODO LO ESCRITO EN ESTAS PÁGINAS Y ANALIZA BIEN LOS EJEMPLOS! EL DIA VIERNES 16 DE JUNIO REALIZARÉ

Más detalles

Un. VIII. Generación de Código Objeto

Un. VIII. Generación de Código Objeto Un. VIII. Generación de Código Objeto 8.1 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es entendible por las computadoras.

Más detalles

(4) Unidad 4. Recursos de Programación SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

(4) Unidad 4. Recursos de Programación SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM (4) Unidad 4 Recursos de Programación SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática EPS - UAM (4) Índice 4. Recursos de programación. 4.1. Interrupciones BIOS. 4.2. Interrupciones

Más detalles

USO DE MEMORIA Y PERIFÉRICOS CON EMU8086. Kervin Sánchez Herrera.

USO DE MEMORIA Y PERIFÉRICOS CON EMU8086. Kervin Sánchez Herrera. USO DE MEMORIA Y PERIFÉRICOS CON EMU8086 Kervin Sánchez Herrera. Estructura del Computador MEMORIA Uso de Memoria La memoria ROM ya está escrita y contiene el programa BOOT de inicio, este programa se

Más detalles

LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits

LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits De la creación del programa al proceso en ejecución Objetivo El objetivo de esta práctica es conocer y diferenciar los conceptos de programa

Más detalles

APENDICE B Ensamblador IASM11/Simulador AVSIM11

APENDICE B Ensamblador IASM11/Simulador AVSIM11 APENDICE B Ensamblador IASM11/Simulador AVSIM11 El programa ensamblador IASM11, es una herramienta que permitirá editar y ensamblar programas para el microcontrolador HC11. Este programa corre bajo la

Más detalles

1.2.- EL MICROPROCESADOR.

1.2.- EL MICROPROCESADOR. 1.2.- EL MICROPROCESADOR. El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) unidad central de procesamiento UCP, también conocido

Más detalles

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad I: Arquitectura y Programación de un Microprocesador (8086)

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad I: Arquitectura y Programación de un Microprocesador (8086) Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Arquitectura y Programación de un Microprocesador (8086) Arq. de Computadora I Ing. Carlos Ortega H. 1 Contenidos Arquitectura Von

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

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 [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje

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

PROF. ANGEL MENDEZ YALLI.

PROF. ANGEL MENDEZ YALLI. COLEGIO NACIONAL PROF. ANGEL MENDEZ YALLI. 2011 1 ELEMENTOS DE LA VENTANA DE VISUAL FOXPRO. BARRA DE MENÚ BARRA DE TITULO BARRA DE HERRAMIENTA ESTANDAR AREA DE TRABAJO VENTANA DE COMANDOS BARRA DE ESTADO

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 1.1 A 2.6 P1. Suponiendo que CS=0000h, DS=1000h, ES=FFFFh, SS=2000h,

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control

Más detalles

Creación De Scripts Ejecutables

Creación De Scripts Ejecutables Creación De Scripts Ejecutables Este manual se hace con la finalidad de dar una explicación paso a paso de cómo crear scripts que pueden ejecutar diversas tareas de acuerdo al contenido del texto del guión.

Más detalles

5 - Lenguaje Ensamblador

5 - Lenguaje Ensamblador PROGRAMACIÓN EN ENSAMBLADOR 62 Fuente.asm,.s51,... Fases del Ensamblado Ensamblado Objeto.obj,.r03 Objeto Enlazado Ejecutable.hex,.bin Librerías Eprom Simulador Emulador Monitor PROGRAMACIÓN EN ENSAMBLADOR

Más detalles

Práctica ENS:Ensamblar y depurar

Práctica ENS:Ensamblar y depurar Práctica ENS:Ensamblar y depurar 1. Objetivos Familiarizarse con el manejo básico de la herramienta µvision3 con programas escritos en lenguaje ensamblador. Depurar los programas escritos en lenguaje ensamblador

Más detalles

Unidad IV: Programación de microcontroladores

Unidad IV: Programación de microcontroladores Unidad IV: Programación de microcontroladores El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos,

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

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

Examen de teoría (4 puntos)

Examen de teoría (4 puntos) Examen de teoría (4 puntos) El examen constará de dos partes: S 1ª parte: Test, con una puntuación de 4 puntos y 30 minutos de tiempo S 2ª parte: Ejercicios prácticos, con una puntuación de 6 puntos y

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

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

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

9. Lenguaje ensamblador

9. Lenguaje ensamblador 9. Lenguaje ensamblador Lenguaje máquina: un programa o secuencia de instrucciones viene dado por una secuencia de códigos binarios. Lenguaje ensamblador: secuencia lógica de sentencias pertenecientes

Más detalles

Instrucciones Lógicas y Registro de Banderas

Instrucciones Lógicas y Registro de Banderas 1 Instrucciones Lógicas y Registro de Banderas Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Microprocesadores Objetivo General Analizar la forma en que se ejecutan algunas instrucciones

Más detalles

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION DIIAGRAMAS DE FLUJO Un diagrama de flujo es un dibujo que utiliza símbolos estándar de diagramación de algoritmos para

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 1. Introducción a la programación en ensamblador

Práctica 1. Introducción a la programación en ensamblador Práctica 1 Introducción a la programación en ensamblador 1. Generalidades 2. Introducción 3. Cuestiones 1. Generalidades El desarrollo de las prácticas consistirá en una breve introducción del tema por

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

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

MANEJO DEL MOUSE EN LENGUAJE C++

MANEJO DEL MOUSE EN LENGUAJE C++ MANEJO DEL MOUSE EN LENGUAJE C++ Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. México http://www.itnuevolaredo.edu.mx/takeyas E-mail: [email protected]

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 3 - Arquitectura del CPU

Práctica 3 - Arquitectura del CPU Práctica 3 - Arquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar

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

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Departamento de Arquitectura y Tecnología de Sistemas Informáticos Octubre 2009 1. Sea un computador con palabras y direcciones

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

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura del CPU. Organización del Computador 1 Verano 2016 Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales

Más detalles

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii PROCESAMIENTO DE LOS DATOS Procesamiento de datos ascii a binario y de binario a ascii En ensamblador el tipo de dato es un carácter, por lo tanto es necesario procesar este dato y convertir de su correspondiente

Más detalles

Tema 6. Segmentación y modos de direccionamiento

Tema 6. Segmentación y modos de direccionamiento Tema 6. Segmentación y modos de direccionamiento Laboratorio de Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 21 Índice Segmentación Modos de direccionamiento

Más detalles

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4)

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4) RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4) 1) Se ha escrito el programa adjunto en lenguaje ensamblador del microprocesador 8085. Sabiendo que se encuentra almacenado a partir de la posición 2000H

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

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:[email protected] Oficina:

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

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

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

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

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011 1 ontenido 2 UNIDAD 5 EL LENGUAJE DE ENSAMBLADOR DEL Z80 onjunto de instrucciones Tipos de instrucciones Modos de direccionamiento El ensamblador del Z80 El simulador AVOET Implementación de un sistema

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

3 - Arquitectura interna de un up

3 - Arquitectura interna de un up [email protected] 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos

Más detalles

Tema: Introducción al IDE de Microsoft Visual C#.

Tema: Introducción al IDE de Microsoft Visual C#. Tema: Introducción al IDE de Microsoft Visual C#. Objetivos: El propósito de este tema es que el alumno se familiarice con el entorno de desarrollo de Visual C# Express mientras crea el formulario más

Más detalles

Laboratorio de Procesamiento Digital de Voz Practica 1. INTRODUCCION DE MATLAB Y MANEJO DE ARCHIVOS DE VOZ

Laboratorio de Procesamiento Digital de Voz Practica 1. INTRODUCCION DE MATLAB Y MANEJO DE ARCHIVOS DE VOZ Laboratorio de Procesamiento Digital de Voz Practica 1. INTRODUCCION DE MATLAB Y MANEJO DE ARCHIVOS DE VOZ Objetivo: Conocer las formas principales de archivar información correspondiente a señales de

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

EDITOR VI. La sintaxis del comando vi es, al igual que la de cualquier comando UNIX: vi [opciones] archivo

EDITOR VI. La sintaxis del comando vi es, al igual que la de cualquier comando UNIX: vi [opciones] archivo EDITOR VI El editor vi es el editor por excelencia de UNIX. Es bastante potente y complicado de manejar a pleno rendimiento, debido a la gran cantidad de opciones que tiene, pero es fácil dar los primeros

Más detalles

Funcionamiento de las computadoras

Funcionamiento de las computadoras Funcionamiento de las computadoras Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Plan de la presentación El modelo de von Neuman

Más detalles

A. La estructura del código fuente será la siguiente: copie y pegue la información mediante la computadora

A. La estructura del código fuente será la siguiente: copie y pegue la información mediante la computadora 3. Factorial de un número en sistema decimal A. La estructura del código fuente será la siguiente: copie y pegue la información mediante la computadora name "fact" putc macro char push ax mov al, char

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

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

Creación de Shell Scripts

Creación de Shell Scripts Creación de Shell Scripts Un script es una secuencia de instrucciones que un programa es capaz de seguir, interpretar, y ejecutar, pero el Shell Script no es solamente eso; también son ficheros de texto

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