Вы находитесь на странице: 1из 53

UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRNICA

ARQUITECTURA DE COMPUTADORAS

TURNO: B MARTES 7:00-8:30


SISTEMA OPERATIVO MS DOS WINDOWS Y SISTEMAOPERATIVO LINUX UBUBNTU ENSAMBLADOR 8088/8086, DIRECCIONAMIENTO Y PROGRAMACION, JUEGO DE INSTRUCCIONES MANUAL INTEL

LABORATORIO N 3 Y 4 REALIZADO POR:


o o o ANGULO ESCOBAR, JEISVER ANTONIO 20052509 . CHAVEZ RIVERA, YANETH 200609 . VALDERRAMA RIVERA, GIANCARLO 2006 .

DOCENTE: ING. ERASMO SULLA ESPINOZA


AREQUIPA PERU

2011 I

INDICE
1.- Sistema Operativo MS.WINDOWS 1.1 Historia 1.2 Versiones 1.3 Caractersticas 1.4 Comandos 1.4.1 Como Usar 1.4.2 Comandos bsicos 1.4.3 Comandos internos 1.4.4 Comandos externos 1.4.5 Re direccionamientos ...4 ..4 ...4 ..5 ..6 ...6 .......6 ....6 ....6 .....7

2 Sistema Operativo LINUX UBUNTU ....8 2.1 Historia y Proceso de Desarrollo ....8 2.2 Interfaz Usuario ..10 2.3 Caractersticas ..11 2.3.1 Ubuntu y la comunidad ....11 2.3.2 Software incluido ...11 2.3.3 Organizacin de paquetes ...12 2.4 Lanzamiento y soporte ..14 2.4.1 Soporte Tcnico Extendido (LTS)....15 2.4.2 Ubuntu 11.10 . 15 2.5 Instalacin 16 2.5.1 CD oficiales ..17 2.5.2 Otras instalaciones ...18 2.6 Fabricantes Asociados ...18 2.7 Ubuntu certified Professional ..19 2.8 Variantes 19 3 Registros internos del microprocesador ....20

4 Conjunto de Instrucciones ...22 4.1 Instrucciones de Transferencia de Datos. ...23 4.2 Control de Bucles (instrucciones simples) ...23 4.3 Instrucciones de Prueba, Comparacin y Saltos. ....24 4.4 Instrucciones de Llamado y Retorno de Subrutinas. ....24 4.5 Instrucciones Aritmticas. ..24 4.6 Instrucciones Lgicas. ....26 4.7 Instrucciones de Desplazamiento, Rotacin y Adeudos. .......26 4.8 Instrucciones de Pila. .....26 4.9 Instrucciones de Control del microprocesador. ....27 4. 10 Instruccin de interrupcin ....27 4.11 Instrucciones usadas para comparar dos enteros sin signo. ....27 4.12 Instrucciones usadas para comparar dos enteros con signo. ...27 4.13 Instrucciones usadas segn el estado de banderas. ..28 5 Modos de direccionamiento y generacin del cdigo objeto ...30 5.1 Direccionamiento Inmediato. ..31 2

5.2 Direccionamiento a Registro. .31 5.3 Direccionamiento Directo. .31 5.4 Direccionamiento de Registro Indirecto. .32 5.5 Direccionamiento de Registro Indirecto con Desplazamiento ...33 5.6 Direccionamiento de Registro Indirecto con un Registro Base y un Registro ndice ...33 5.7 Direccionamiento de Registro Indirecto con un Registro Base y un Registro ndice y un registro constante. ...34 6 Programacin en lenguaje ensamblador.38 Creacin de Archivos Fuente .39 Procedimientos en ensamblador ..41 A: ASSEMBLE ...42 D: DUMP .43 E DIRECCION: EDIT ...44 F: FILL ..44 G: GO .45 H NUM1 NUM2: HEX ..45 L: LOAD 46 M RANGO DIRECCION: MOVE .47 N NOMBRE: NAME 47 P: STEP ...47 Q: QUIT 48 R: REGISTERS ..48 S: SEARCH .49 T: TRACE 49 U: UNASSEMBLE ..50 W: WRITE 51 BIBLIOGRAFIA .....52

1 SISTEMA OPERATIVO MS DOS - WINDOWS MS-DOS (siglas de MicroSoft Disk Operating System, Sistema operativo de disco de Microsoft) es un sistema operativo para computadores basados en x86. Fue el miembro ms popular de la familia de sistemas operativos DOS de Microsoft, y el principal sistema para computadoras personales compatible con IBM PC en la dcada de 1980 y mediados de 1990, hasta que fue sustituida gradualmente por sistemas operativos que ofrecan una interfaz grfica de usuario, en particular por varias generaciones de Microsoft Windows. MS-DOS naci en 1981 al ser encargada Microsoft de producir un sistema operativo para la gama de computadores personales IBM PC de IBM. Rpidamente Microsoft compr los derechos de QDOS tambin conocido como 86-DOS, de Seattle Computer Products, y comenz a trabajar en las modificaciones para poder cumplir con los requerimientos de IBM. La primera edicin, MS-DOS 1.0, fue presentada en 1982. La versin incluida en los PC's de IBM fue conocida como PC DOS. Aunque MS-DOS y PC-DOS fueron desarrollados por Microsoft e IBM en paralelo, los dos productos se separaron con el tiempo. 1.1 HISTORIA MS-DOS se desarroll a partir de QDOS, Quick and Dirty Operating System, tambin conocido como 86-DOS. Su desarrollo se inici oficialmente en 1981 y fue lanzado en 1982 como MS-DOS 1.0. Tuvo ocho versiones principales y alcanz gran difusin pero fue gradualmente reemplazado por sistemas operativos que ofrecan una interfaz grfica de usuario (GUI), en particular, por varias generaciones del sistema operativo Microsoft Windows. 1.2 VERIONES

Disquetes de instalacin de MS-DOS 6.22

PC DOS 1.0 - Liberado en 1981 como complemento al IBM-PC. Primera versin de DOS. Soporta 16 Kb de memoria RAM, disquetes de 5,25 pulgadas de una sola cara
4

de 160 Kb. 22 rdenes. Permite archivos con extensin .com y .exe. Incorpora el intrprete de comandos COMMAND.COM. PC DOS 1.1 - Corregidos muchos errores, soporta disquetes de doble densidad 1.25 Primera versin liberada con el nombre MS-DOS. MS-DOS 2.0 - Complemento del IBM XT liberado en 1983. Ms del doble de nuevos comandos, soporte de disco duro (alrededor de 5 MB). PC DOS 2.1 - Complemento del IBM PCjr. Aadidas algunas mejoras. MS-DOS 2.11 - Aadido soporte para otros idiomas y soporte LAN. MS-DOS 3.2 - Aadida capacidad para disquetes de 3,5 pulgadas y 720 KB. PC DOS 3.3 - Aadido soporte para el ordenador PS/2 de IBM y los nuevos disquetes de 3,5 pulgadas de alta capacidad (1,44 MB). Nuevas pginas de cdigo de caracteres internacionales aadidas, con soporte para 17 pases. MS-DOS 3.3 - Capacidad para crear particiones de disco superiores a 32 MB. Soporte de 4 puertos serie (antes slo 2). Incorporacin de la orden "Files" para poder abrir hasta 255 archivos simultneamente. MS-DOS 4.0 - Generado con el cdigo fuente de IBM, no con el de Microsoft. PC DOS 4.0 - Agregado DOS Shell, algunas mejoras y arreglos. MS-DOS 4.01 - Versin para corregir algn error. MS-DOS 5.0 - Implementado en 1991, incluyendo ms caractersticas de administracin de memoria y herramientas para soporte de macros, mejora del intrprete de rdenes o shell. MS-DOS 6.0 - Liberado en 1993, incluye soporte para Microsoft Windows, utilidades como Defrag (desfragmentacin del disco), DoubleSpace (compresin de archivos), MSBackup (copias de seguridad), MSAV (Microsoft Anti-Virus), MemMaker, etc. MS-DOS 6.2 - Versin para corregir errores. MS-DOS 6.21 - Eliminado el soporte de compresin de disco DoubleSpace. PC DOS 6.3 - Liberado en abril de 1994. MS-DOS 6.22 - ltima versin distribuida por separado. Incluido DriveSpace para sustituir a DoubleSpace. PC DOS 7.0 - Aade Stacker para reemplazar a DoubleSpace. MS-DOS 7.0 - Distribuido junto con Windows 95. Incluye soporte para nombres de archivo largos (hasta ahora haban tenido la restriccin del 8+3). MS-DOS 7.1 - Integrado en Windows 95 OSR2 y posteriormente en Windows 98 y 98 SE. Soporta sistemas de archivos FAT32. MS-DOS 8.0 - Incluido en Windows Me. Es la ltima versin de MS-DOS.

1.3 CARACTERSTICAS MS-DOS es un sistema operativo monotarea y monousuario para ordenadores personales.

1.4 COMANDOS 1.4.1 Cmo usar? El MS-DOS tiene varios usos, a los cuales puedes acceder escribiendo 'cmd' dentro de 'Ejecutar'. All puedes familiarizarte usando algunos comandos bsicos como lo es 'COLOR F3' o 'HELP' por ejemplo. Puedes probar algunos de ellos y luego profundizar ms en el uso de esta herramienta dndole aplicaciones ms practicas. 1.4.2 Comandos bsicos Aqu se muestran algunos de los comandos que utilizaba MS-DOS, y que actualmente pueden ser utilizados desde la lnea de comandos en sistemas operativos Windows. Para acceder a la ayuda de estas, MS-DOS, a partir de la versin 6.2 permite lo siguiente: comando_a_consultar /? (Ej.: copy /?). Pueden ser internos (incluidos dentro del propio COMMAND.COM) o externos (archivos ejecutables en el directorio del MSDOS): 1.4.3 Comandos internos

CD o CHDIR - Cambia el directorio actual. CD nombre_directorio Cambia al directorio jerrquicamente inferior. CLS - Limpia todos los comandos y toda la informacin que hay en pantalla, excepto el incitador de comandos (prompt) usualmente la letra y ruta de la unidad usada (Por ejemplo C:\>) COPY - Copiar un archivo de un directorio a otro COPY CON Copia a un archivo los caracteres introducidos en pantalla (CONsola) DIR - Lista los directorios y archivos de la unidad o directorio actual. FOR - Repite un comando PROMPT- Cambia la lnea de visualizacin de la orden. MD - Crea un nuevo directorio. RD o RMDIR- Elimina un directorio. REM - Permite insertar comentarios en archivos de proceso por lotes. REN o RENAME - Renombra archivos y directorios. SET - Asigna valores a variables de entorno. TIME - Visualiza o cambia la hora del reloj interno. TYPE - Muestra el contenido de un fichero. Se utiliza, principalmente, para ver contenidos de ficheros en formato texto. VER - Muestra la versin del Sistema Operativo. VOL - Muestra la etiqueta del disco duro y su volumen (si lo tiene). MEM - Muestra la cantidad de memoria RAM, la cantidad ocupada y la libre.

1.4.4 Comandos externos

ATTRIB - Sin parmetros, visualiza los atributos de los directorios y archivos. Con parmetros, cambia los atributos de directorios y archivos. Los atributos de los
6

directorios, y los ficheros son: de lectura (r), de escritura (w), de archivo (a), oculto (h), de sistema (s). Parmetros: signos (ms o menos) y letras r, w, a, y h "v". Ejemplo: Attrib +r *.* (atributo de slo lectura, para todos los ficheros de ese directorio). APPEND - Sirve para especificar trayectorias para ficheros de datos. BACKUP - Ejecuta una copia de seguridad de uno o ms archivos de un disco duro a un disquete. CHKDSK - Verifica si hay errores en el disco duro. (Tambin se puede utilizar para corregirlos con el parmetro "/F") DELTREE - Borra un directorio sin importar que contenga subdirectorios con todos sus contenidos. DISKCOPY - Permite hacer una copia idntica de un disquete a otro, pertenece al grupo de las rdenes externas. DOSKEY - Permite mantener residentes en memoria RAM las rdenes que han sido ejecutadas en el punto indicativo. FC - Compara ficheros. FORMAT - Permite crear la estructura lgica, en una unidad fsica de almacenamiento (discos duros, disquetes y unidades de almacenamiento masivo). PRINT - Permite imprimir ficheros.

Se pueden utilizar estos parmetros combinados.


KEYB - Establece el idioma del teclado segn el parmetro adicionado (Ejemplo: KEYB SP para el teclado espaol). LABEL - Muestra o cambia la etiqueta de la unidad de disco duro. MEM - Muestra la memoria RAM, el espacio ocupado y el espacio libre. MOVE - Mueve o cambia de posicin un directorio y/o ficheros. Tambin renombra subdirectorios. SUBST - Crea una unidad lgica virtual a partir de un directorio. TREE - muestra los directorios en forma de ARBOL

1.4.5 Redireccionamientos

< - Re direccionamiento de la entrada estndar. Su sintaxis es comando < fichero. > - Re direccionamiento de la salida estndar. Su sintaxis es comando > fichero. Si el fichero no existe, lo crea. Si ya exista, sobreescribe su contenido. >> - Re direccionamiento de la salida estndar a un fichero existente. Su sintaxis es comando >> fichero. Si el fichero no existe, lo crea. Si ya exista, aade el resultado del comando a continuacin del contenido previo del fichero.

2 SISTEMA OPERATIVO LINUX UBUNTU Ubuntu es un sistema operativo mantenido por Canonical y la comunidad de desarrolladores. Utiliza un ncleo Linux, y su origen est basado en Debian. Ubuntu est orientado en el usuario promedio, con un fuerte enfoque en la facilidad de uso y mejorar la experiencia de usuario. Est compuesto de mltiple software normalmente distribuido bajo una licencia libre o de cdigo abierto. Su patrocinador Canonical, es una compaa britnica propiedad del empresario sudafricano Mark Shuttleworth que en vez de vender Ubuntu con fines lucrativos, se financia por medio de servicios vinculados al sistema operativo y vendiendo soporte tcnico. Adems, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los desarrolladores de la comunidad en mejorar los componentes de su sistema operativo. Cada seis meses se publica una nueva versin de Ubuntu la cual recibe soporte por parte de Canonical, durante dieciocho meses, por medio de actualizaciones de seguridad, parches para bugs crticos y actualizaciones menores de programas. Las versiones LTS (Long Term Support), que se liberan cada dos aos, reciben soporte durante tres aos en los sistemas de escritorio y cinco para la edicin orientada a servidores. 2.1 HISTORIA Y PROCESO DE DESARROLLO Ubuntu es una bifurcacin del cdigo base del proyecto Debian. El objetivo inicial era el de lanzar una nueva versin de Ubuntu cada seis meses, resultando en un sistema ms actualizado. Su primer lanzamiento fue el 20 de octubre de 2004. Los lanzamientos de Ubuntu estn sincronizados para realizarse un mes despus que las del entorno de escritorio GNOME. Ubuntu usa primariamente software libre haciendo excepciones para varios controladores privativos adems del firmware y software no libre incluido en el kernel Linux y el software no libre presente en sus repositorios. Los paquetes de Ubuntu estn basados en la rama inestable de Debian: ambas distribuciones usan el formato de paquete de software deb y las herramientas de administracin de paquetes APT, dpkg, ms algunos front-ends. Los paquetes Debian y Ubuntu no son necesariamente compatibles binariamente; algunas veces los paquetes deb pueden necesitar ser recompilados desde el cdigo fuente para ser usados en Ubuntu. Muchos desarrolladores de Ubuntu tambin mantienen paquetes clave en Debian. Ubuntu coopera con Debian devolviendo cambios y mejoras en el cdigo, aunque existen crticas sobre las escasas aportaciones. En el pasado, Ian Murdock, fundador de Debian, expres su preocupacin por el potencial cambio de los paquetes de Ubuntu con respecto a los de Debian ya que podran llegar a ser completamente incompatibles.

Antes de cada lanzamiento, se lleva a cabo una importacin de paquetes, desde Debian, aplicando las modificaciones especficas de Ubuntu. Un mes antes del lanzamiento, comienza un proceso de congelacin de importaciones, ayudando a que los desarrolladores puedan asegurar que el software sea suficientemente estable. Desde el inicio del proyecto, Shuttleworth proporcion el soporte econmico gracias a los beneficios obtenidos despus de vender su empresa Thawte a VeriSign, por unos 575 millones de dlares estadounidenses. El 8 de julio de 2005, Mark Shuttleworth y su empresa Canonical Ltd. anunciaron la creacin de la Fundacin Ubuntu y aportaron 10 millones de dlares como presupuesto inicial. El propsito de la fundacin es el de asegurar soporte y desarrollo para todas las futuras versiones de Ubuntu. El 12 de marzo de 2009, Ubuntu anunci soporte para plataformas externas de administracin de computacin en nube, como Amazon EC2. A principios de 2009 los ingenieros y diseadores de Canonical se dan cuenta de que la gestin de paquetes e instalacin de aplicaciones es demasiado fragmentada y hasta compleja, por ende se planifica la creacin de una aplicacin central para el manejo e instalacin de aplicaciones. En octubre de 2009 Canonical lanza oficialmente el Centro de software de Ubuntu (Ubuntu Software Center), permite buscar, instalar, desinstalar aplicaciones, y adems permite agregar repositorios de terceros.27 En octubre de 2010 se introduce la venta de aplicaciones por medio de pagos en lnea en el Centro de software de Ubuntu. El 3 de junio de 2010, Mark Shuttleworth anuncia el trabajo en conjunto con el proyecto Linaro y su desarrollo de cdigo abierto para Linux en procesadores con tecnologa ARM. A fines de septiembre se da a conocer antes del lanzamiento de Ubuntu 10.10, que esta versin incluira un mejor y ms estable soporte para procesadores ARM. En octubre y noviembre de 2010, se anuncian drsticos e importantes cambios en el escritorio de Ubuntu, la inclusin de la interfaz de usuario Unity (creada por Canonical), la cual ser utilizada en la versin de escritorio de Ubuntu. Tambin Mark Shuttleworth anuncia que en futuras versiones de Ubuntu, Unity se implementar en el servidor grfico Wayland, y no en el servidor grfico X (como se haca habitualmente). El 18 de enero de 2011, Mark Shuttleworth anuncia la inclusin de aplicaciones creadas en Qt para ser lanzadas a partir de "Natty+1" (despus del lanzamiento de Ubuntu 11.04) y en futuras versiones de Ubuntu. Una de las metas de esta decisin es facilitar la integracin al sistema de aplicaciones Qt, en comparacin con las tpicas aplicaciones desarrolladas en GTK que lucen nativas en la interfaz de usuario de Ubuntu. Para terminar con las dificultades tcnicas de configuracin y preferencias del sistema entre Qt y GTK, se crearn enlaces dconf para las aplicaciones Qt, con lo que se pretende centralizar la configuracin del sistema, ya sea GTK o Qt, en un solo lugar.
9

El 9 de marzo de 2011, Canonical anuncia la discontinuidad de 'Ubuntu Netbook Edition', debido a la integracin de la interfaz Unity en su versin de escritorio a partir de Ubuntu 11.04, y as eliminar la redundancia de sus versiones con un mismo escritorio. Canonical tambin anuncia que los nombres 'Ubuntu Desktop Edition' y 'Ubuntu Server Edition' se eliminan, dejando solamente el nombre 'Ubuntu' para uso en todo tipo de computadoras, y 'Ubuntu Server' para su uso en servidores. 2.2 INTERFAZ DE USUARIO

Dash que despliega los iconos de las aplicaciones en Ubuntu 11.10.

Ubuntu desde su primer lanzamiento utiliz la interfaz de usuario predeterminada del escritorio GNOME, con un panel inferior para listar ventanas y un panel superior para mens e indicadores de sistema, pero desde la versin 11.04 Natty Narwhal la interfaz de usuario predeterminada es Unity, adems de las actuales herramientas de GNOME. Durante el proceso de desarrollo de GNOME 3, la nueva interfaz de usuario, GNOME Shell, no comparta las ideas de diseo, interaccin, y experiencia de usuario de los desarrolladores de Ubuntu. Dado el caso, el equipo de desarrollo de Ubuntu pens en desarrollar su propia interfaz de usuario; Unity fue diseado como shell para el escritorio de GNOME para incrementar la eficiencia de espacio e interaccin con el escritorio. La actual interfaz de usuario de Ubuntu est compuesta por tres importantes elementos: un panel superior para indicadores de sistema y mens, un lanzador de aplicaciones al costado izquierdo, y un tablero que despliega lugares y aplicaciones. Ubuntu adems de la interfaz Unity, utiliza las herramientas de GNOME que forman el resto del escritorio, el gestor de ventanas Compiz para las transiciones de efectos visuales, y varios elementos visuales diseados por Canonical; tales como barras de desplazamiento Overlay Scrollbars, varios indicadores de sistema como el men de sonido, el men de mensajera, y el men de estado de usuario, iconos Ubuntu Mono e Humanity, temas light-themes, las burbujas de notificacin OSD, y los mens de aplicaciones globales.

10

2.3 CARACTERSTICAS En su ltima versin, Ubuntu soporta oficialmente dos arquitecturas de hardware en computadoras personales y servidores: x86 y AMD64 (x86-64); siendo la versin 6.10 la ltima que oficialmente soport la arquitectura PowerPC, despus de lo cual es solo soportada por la comunidad. Sin embargo, extraoficialmente, Ubuntu ha sido portado a tres arquitecturas ms: SPARC, IA-64 y Playstation 3. A partir de la versin 9.04 lanzada en abril de 2009 se empez a ofrecer soporte oficial para procesadores ARM, comnmente usados en dispositivos mviles, PDA etc. Al igual que la mayora de las distribuciones basadas en GNU/Linux, Ubuntu es capaz de actualizar a la vez todas las aplicaciones instaladas en la mquina a travs de repositorios. Ubuntu est siendo traducido a ms de 130 idiomas, y cada usuario es capaz de colaborar voluntariamente a esta causa, a travs de Internet. 2.3.1 Ubuntu y la comunidad Los usuarios pueden participar en el desarrollo de Ubuntu, escribiendo cdigo, solucionando bugs, probando versiones inestables del sistema, etc; adems, en febrero de 2008 se puso en marcha la pgina Brainstorm que permite a los usuarios proponer sus ideas y votar las del resto. Tambin se informa de las ideas propuestas que se estn desarrollando o estn previstas. 2.3.2 El software incluido

Centro de software de Ubuntu 5.0, incluido en Ubuntu 11.10.

Posee una gran coleccin de aplicaciones para la configuracin de todo el sistema, valindose principalmente de interfaces grficas. El entorno de escritorio predeterminado de Ubuntu es GNOME y se sincroniza con sus liberaciones. Existen otras dos versiones oficiales de la distribucin, una con el entorno KDE, llamada Kubuntu, y otra con el
11

entorno Xfce, llamada Xubuntu; existen otros escritorios disponibles, que pueden ser instalados en cualquier sistema Ubuntu independientemente del entorno de escritorio instalado por defecto.

Aplicaciones de Ubuntu: Ubuntu es conocido por su facilidad de uso y las aplicaciones orientadas al usuario final. Las principales aplicaciones que trae Ubuntu son: navegador web Mozilla Firefox, cliente de mensajera instantnea Empathy, cliente de redes sociales Gwibber, cliente de correo Thunderbird, reproductor multimedia Totem, reproductor de msica Banshee, gestor y editor de fotos Shotwell, cliente de torrents Transmission, grabador de discos Brasero, suite ofimtica LibreOffice, y el instalador central para buscar e instalar aplicaciones Centro de software de Ubuntu. Seguridad y accesibilidad: El sistema incluye funciones avanzadas de seguridad y entre sus polticas se encuentra el no activar, de forma predeterminada, procesos latentes al momento de instalarse. Por eso mismo, no hay un cortafuegos predeterminado, ya que no existen servicios que puedan atentar a la seguridad del sistema. Para labores o tareas administrativas en la lnea de comandos incluye una herramienta llamada sudo (de las siglas en ingls de SuperUser do), con la que se evita el uso del usuario administrador. Posee accesibilidad e internacionalizacin, de modo que el sistema est disponible para tanta gente como sea posible. Desde la versin 5.04, se utiliza UTF-8 como codificacin de caracteres predeterminado. No slo se relaciona con Debian por el uso del mismo formato de paquetes .deb. Tambin tiene uniones muy fuertes con esa comunidad, contribuyendo con cualquier cambio directa e inmediatamente, y no slo anuncindolos. Esto sucede en los tiempos de lanzamiento. Muchos de los desarrolladores de Ubuntu son tambin responsables de los paquetes importantes dentro de la distribucin Debian. Para centrarse en solucionar rpidamente los bugs, conflictos de paquetes, etc. se decidi eliminar ciertos paquetes del componente main, ya que no son populares o simplemente se escogieron de forma arbitraria por gusto o sus bases de apoyo al software libre. Por tales motivos inicialmente KDE no se encontraba con ms soporte de lo que entregaban los mantenedores de Debian en sus repositorios, razn por la que se sum la comunidad de KDE creando la distribucin GNU/Linux Kubuntu. 2.3.3 Organizacin de paquetes Ubuntu divide todo el software en cuatro secciones, llamadas componentes, para mostrar diferencias en licencias y la prioridad con la que se atienden los problemas que informen los usuarios. Estos componentes son: main, restricted, universe y multiverse. Por defecto se instalan paquetes de los componentes main y restricted Los paquetes del componente universe de Ubuntu generalmente se basan en los paquetes de la rama inestable (Sid) y en el repositorio experimental de Debian.
12

main: contiene solamente los paquetes que cumplen los requisitos de la licencia de Ubuntu, y para los que hay soporte disponible por parte de su equipo. ste est pensado para que incluya todo lo necesario para la mayora de los sistemas Linux de uso general. Los paquetes de este componente poseen ayuda tcnica garantizada y mejoras de seguridad oportunas. restricted: contiene paquetes soportados por los desarrolladores de Ubuntu debido a su importancia, pero que no est disponible bajo ningn tipo de licencia libre para incluir en main. En este lugar se incluyen los paquetes tales como los controladores propietarios de algunas tarjetas grficas, como por ejemplo, los de ATI y NVIDIA. El nivel de la ayuda es ms limitado que para main, puesto que los desarrolladores pueden no tener acceso al cdigo fuente. universe: contiene una amplia gama de programas, que pueden o no tener una licencia restringida, pero que no recibe apoyo por parte del equipo de Ubuntu sino por parte de la comunidad. Esto permite que los usuarios instalen toda clase de programas en el sistema guardndolos en un lugar aparte de los paquetes soportados: main y restricted. multiverse: contiene los paquetes sin soporte debido a que no cumplen los requisitos de software libre. 2.4 LANZAMIENTOS Y SOPORTE Versin 4.10 5.04 5.10 6.06 LTS 6.10 7.04 7.10 8.04 LTS 8.10 Nombre en clave Warty Warthog Lanzamiento 20 de octubre de 2004

Hoary Hedgehog 8 de abril de 2005 Breezy Badger Dapper Drake Edgy Eft Feisty Fawn Gutsy Gibbon Hardy Heron Intrepid Ibex 13 de octubre de 2005 1 de junio de 2006 26 de octubre de 2006 19 de abril de 2007 18 de octubre de 2007 24 de abril de 2008 30 de octubre de 2008

13

9.04 9.10 10.04 LTS 10.10 11.04 11.10 12.04 LTS Rojo Verde Azul

Jaunty Jackalope 23 de abril de 2009 Karmic Koala Lucid Lynx 29 de octubre de 2009 29 de abril de 2010

Maverick Meerkat 10 de octubre de 2010 Natty Narwhal Oneiric Ocelot 28 de abril de 2011 13 de octubre de 2011

Precise Pangolin 26 de abril de 2012

Versin de escritorio sin soporte Versin de escritorio con soporte Versin de escritorio en desarrollo

Las versiones estables se liberan cada 6 meses y Canonical proporciona soporte tcnico y actualizaciones de la seguridad para la mayora de las versiones de Ubuntu durante 18 meses, excepto para las versiones LTS (Long term support) que ofrece 3 aos para la versin escritorio y 5 aos para la versin servidor, a partir de la fecha del lanzamiento. Existen planes para lanzar una rama de Ubuntu bajo el nombre en clave Grumpy Groundhog, la cual solo estar disponible para desarrolladores. 2.4.1 Soporte tcnico extendido (LTS) Cada 4 versiones de Ubuntu se libera una versin con soporte tcnico extendido a la que se aade la terminacin LTS. Esto significa que los lanzamientos LTS contarn con actualizaciones de seguridad de paquetes de software durante tres aos en entorno de escritorio y cinco aos en servidor por parte de Canonical, a diferencia de los otros lanzamientos de Ubuntu que slo cuentan con 18 meses de soporte.

14

La primera LTS fue la versin 6.06 de la cual se liber una remasterizacin (la 6.06.1) para la edicin de escritorio y dos remasterizaciones (6.06.1 y 6.06.2) para la edicin servidor, ambas incluan actualizaciones de seguridad y correccin de errores. La segunda LTS fue la versin 8.04 Hardy Heron, de la cual ya va por la cuarta y ltima revisin de mantenimiento (la 8.04.4). La ltima versin LTS que ha sido lanzada es la 10.04, Lucid Lynx, fue liberada en abril de 2010, y cuya versin de mantenimiento actual va por la 10.04.3. 2.4.2 Ubuntu 11.10

Ubuntu 11.10 (Oneiric Ocelot)

Ubuntu 11.10 incluye el entorno Unity 2D, el cual se usa por defecto en equipos que no puedan utilizar la interfaz Unity. Unity 2D no requiere de controladores de video, pero debido a eso no utiliza efectos de escritorio generados por Compiz como si lo hace Unity. Los elementos de la interfaz Unity fueron portados a GTK 3 gracias a GNOME 3, debido a esto llegaron cambios de diseo en Nautilus y el Centro de control. Se incorpora el nuevo motor de temas Unico, el cual tiene como objetivo manejar los nuevos temas GTK+ 3, nico reemplaza al anterior motor Murrine que utilizaba GTK 2.68 69 Por primera vez Qt es incluido en la instalacin debido a su uso en Unity 2D, y as facilitar la integracin al sistema de aplicaciones Qt. La interfaz de Unity ha tenido varios cambios, el botn de Ubuntu en el panel superior fue borrado y puesto en el lanzador, adems los accesos directos a los Lens de aplicaciones y archivos fueron borrados del lanzador. Un nuevo Lens de msica fue integrado al dash. Las categoras en los Lens ahora son botones al lado derecho, y se agregaron accesos directos en la parte inferior del Dash para cambiar entre Lens. Se redise completamente la interfaz de usuario del Centro de software de Ubuntu, para mejorar la usabilidad y caractersticas presentes en el gestor de paquetes Synaptic, adems de un nuevo icono. El cliente de twitter Gwibber, redise completamente su interfaz de
15

usuario, adems de ser ms rpido y ligero. LightDM es la nueva pantalla de entrada de sesin de Ubuntu, reemplazando a GDM, y tiene un nuevo diseo denominado Unity Greeter. Los mens del indicador de mensajes y el indicador de usuario se unificaron en un solo indicador de mensajera, tambin hay un nuevo indicador de usuario para cambiar entre usuarios o invitado, y el indicador de dispositivo tiene ms accesos directos a funciones del sistema. Se implement un nuevo cambiador de aplicaciones con la combinacin de teclas (Alt+Tab), aparecern los mismos iconos del lanzador, el tema visual Ambiance tiene barras superiores oscuras en las herramientas y Radiance tiene barras claras. Deja Dup es la nueva aplicacin para respaldar y restaurar el sistema. El cliente de correo predeterminado es Thunderbird, y reemplaz a Evolution. Ubuntu 11.10 utiliza imgenes ISO hbridas, esto permitir copiar directamente los archivos de la imagen ISO de Ubuntu en un dispositivo USB y correr el LiveUSB desde ah, sin la necesidad de terceras aplicaciones como se realizaba anteriormente. En esta versin no se incluye el escritorio clsico de GNOME 2. El editor de video PiTiVi, el gestor de paquetes Synaptic, y la aplicacin Computer Janitor tambin se eliminaron de la instalacin por defecto. 2.5 INSTALACIN

Instalacin que permite probar desde el LiveCD o instalar.

Los requisitos mnimos recomendados, teniendo en cuenta los efectos de escritorio, deberan permitir ejecutar una instalacin de Ubuntu.

Procesador x86 a 1 GHz. Memoria RAM de 1 GB. Disco Duro de 15 GB (swap incluida).
16

Tarjeta grfica y monitor capaz de soportar una resolucin de 800x600. Lector de CD-ROM, puerto USB o tarjeta de red. Conexin a Internet puede ser til. Los efectos de escritorio, proporcionados por Compiz, se activan por defecto en las siguientes tarjetas grficas:

Intel (i915 o superior, excepto GMA 500, nombre en clave Poulsbo) NVidia (con su controlador propietario o el controlar abierto incorporado Nouveau) ATI (a partir del modelo Radeon HD 2000 puede ser necesario el controlador propietario)

Si se dispone de una computadora con un procesador de 64 bits (x86-64), y especialmente si dispone de ms de 3 GB de RAM, se recomienda utilizar la versin de Ubuntu para sistemas de 64 bits. 2.5.1 CD oficiales Desde el 5 de abril de 2011 Canonical decidi poner fin al servicio de envo gratuito de discos originales, pero todava se pueden obtener mediante la compra directa en el sitio Ubuntu Shop, o mediante los equipo de distribucin LoCoTeam de cada pas. Tambin es posible descargar las imgenes ISO de los discos por descarga directa o a travs de redes P2P y archivos Bittorrent torrents, reduciendo as la carga en los servidores. Para ser grabados en CD o unidades porttiles USB. Ubuntu est disponible de forma opcional en DVD para minimizar su dependencia de Internet, con ms aplicaciones.

Instalacin de escritorio (desktop): es el medio ms usado por los usuarios ya que, al ser un LiveCD o LiveUSB, permite probar Ubuntu sin hacer ningn cambio en el equipo, y permite instalarlo permanentemente ms tarde. Instalacin en servidores (server): permite instalar Ubuntu permanentemente en una computadora usada como servidor. No instala una interfaz grfica de usuario por defecto. Instalacin alternativa (alternate): facilita la creacin de sistemas OEM preconfigurados, configuracin automatizada de despliegues, actualizacin desde instalaciones anteriores sin acceso a la red, gestin de particiones LVM o RAID y la instalacin en equipos con poca memoria RAM gracias al uso de un instalador a modo de texto.

17

2.5.2 Otras instalaciones

Wubi: un instalador libre y oficial de Ubuntu para sistemas operativos Windows cuyo objetivo es el de permitir que usuarios de ese sistema, no acostumbrados a Linux, puedan probar Ubuntu sin el riesgo de perder informacin durante un formateo o la modificacin de particiones. El programa viene de serie en el LiveCD de Ubuntu, aunque es posible descargarlo de la pgina oficial. LiveUSB: una herramienta que viene de serie y que permite la creacin de un LiveUSB de la distribucin, de modo que se pueda cargar el sistema desde una memoria USB permitiendo guardar datos y configuraciones en el mismo, pero con la limitacin de que slo funciona en una computadora cuya placa base soporte el arranque desde un medio USB. LiveCD/DVD personalizado: existen herramientas como Reconstructor, UCK o remastersys que permiten a cualquiera crear fcilmente un LiveCD/DVD personalizado de una instalacin existente de Ubuntu. CD de instalacin mediante red: se trata de una imagen ISO de apenas unos 10 MB que contiene los paquetes necesarios para descargar el sistema base desde los repositorios oficiales de Ubuntu y posteriormente elegir el escritorio deseado.

2.6 FABRICANTES ASOCIADOS Despus del lanzamiento de Ubuntu 10.04, el sitio de Dell menciona diez puntos a favor de Ubuntu y sus usos. Destaca puntos como social desde el principio, rpido inicio del sistema, simple y elegante, diseado para la internet, Ubuntu es seguro, entre otros puntos. Dell ofrece equipos netbooks y notebooks con Ubuntu pre-instalado desde el ao 2007 hasta la actualidad. Empresas como System76 y ZaReason ofrecen Ubuntu 10.10 pre-instalado en computadores de escritorio, servidores, notebooks, y netbooks. El fabricante Kogan Technologies a partir del ao 2011 comenz a implementar Ubuntu con la interfaz Unity en sus Laptops. En febrero de 2011, Ubuntu publica en su sitio una lista de las computadoras certificadas y probadas en Ubuntu, en aquella lista se encuentran fabricantes como Dell, Acer, HP, Lenovo, IBM, Toshiba, Asus, System76, Intel, Samsung, etc. En mayo de 2011, Canonical anuncia un plan de colaboracin con el fabricante Lenovo en China. Con ello se certifican oficialmente 30 diferentes modelos de Thinkpad de Lenovo con Ubuntu, y ms por venir en el resto del ao.
18

En junio de 2011, Canonical se asocia con el desarrollador Mobica para implementar la tecnologa de Ubuntu Core en dispositivos fijos de siguiente generacin con conexin a Internet, como televisores inteligentes, set-top box para televisores, y dispositivos digitales para el hogar. En junio de 2011, Canonical se asocia con el desarrollador Pelagicore para implementar la tecnologa de Ubuntu Core en vehculos con dispositivos de entretenimiento e informacin. En junio de 2011, el fabricante Asus comienza a vender netbooks Eee PC con Ubuntu 10.10 pre-instalado, siendo tres modelos los que se vendern, y ms modelos en lo que resta del ao. 2.7 UBUNTU CERTIFIED PROFESSIONAL En el ao 2006 Canonical Ltd. y Linux Professional Institute firman un acuerdo para proveer un examen especfico de Ubuntu, Ubuntu Certified Professional que permita certificar los conocimientos de los profesionales de Ubuntu. Los requisitos para ser Ubuntu Certified Professional son:

Tener el nivel LPIC-1 (acredita conocimientos Linux independientes de la distribucin) Realizar el examen especfico de Ubuntu (LPI 199)

Los exmenes de certificacin habilitan a los estudiantes para:


Instalacin y configuracin de sistemas Ubuntu. Trabajo productivo en la lnea de comandos de Linux. Configurar la conectividad de red y de los principales servicios de red. Realizar tareas de administracin de rutina: arrancar y apagar el sistema, administrar cuentas de usuario y sistemas de archivos, y mantener la seguridad del sistema.

2.8 VARIANTES Existen diversas variantes de Ubuntu disponibles, las cuales poseen lanzamientos simultneos con Ubuntu. Las ms significativas son:

Lubuntu, versin que utiliza por defecto el entorno de escritorio ligero LXDE Kubuntu, que utiliza KDE en vez de GNOME. Edubuntu, diseado para entornos escolares (que a partir de la versin 8.04 es un paquete agregado dejando de existir como distribucin aparte). Xubuntu, el cual utiliza el entorno de escritorio Xfce.

19

Ubuntu Netbook Edition, solamente para OEM netbooks con procesador ARM (actualmente fuera de circulacin). Kubuntu Netbook Edition, igualmente creada para mquinas netbook con interfaz KDE (actualmente fuera de circulacin). Ubuntu Studio, diseada para el trabajo con multimedia, aunque no es un proyecto reconocido oficialmente por Ubuntu. Otra variante similar es ArtistX. Tiflobuntu,134 es una versin de Ubuntu para personas ciegas y con visin reducida. Funciona mediante lnea braille.

Edubuntu, Kubuntu, Lubuntu y Xubuntu son proyectos oficiales de la Fundacin Ubuntu.

3 REGISTROS INTERNOS DEL MICROPROCESADOR La Unidad Central de Proceso (CPU, por sus siglas en ingls) tiene 14 registros internos cada uno de 16 bits. Los primeros cuatro, AX, BX, CX y DX, son de uso general y se pueden usar tambin como registros de 8 bits. Es decir, AX se puede dividir en AH y AL (AH es el byte alto, high, y AL es el byte bajo, low) Lo mismo es aplicable a los otros tres (BX en BH y BL, CX en CH y CL y DX en DH y DL) Estos son los nicos registros que pueden usarse de modo dual (en 8 o 16 bits) Los registros de la CPU son conocidos por sus nombres propios, que son: AX BX CX DX DS ES SS CS BP SI DI SP IP F (acumulador) (registro base) (registro contador) (registro de datos) (registro del segmento de datos) (registro del segmento extra) (registro del segmento de pila) (registro del segmento de cdigo) (registro de apuntadores base) (registro ndice fuente) (registro ndice destino) (registro del apuntador de pila) (registro del apuntador de siguiente instruccin) (registro de banderas)

El registro AX se usa para almacenar resultados, lectura o escritura desde o hacia los puertos. El BX sirve como apuntador base o ndice. El CX se utiliza en operaciones de iteracin, como un contador que automticamente se incrementa o decrementa de acuerdo con el tipo de instruccin usada. El DX se usa como puente para el acceso de datos.

20

El DS es un registro de segmento cuya funcin es actuar como polica donde se encuentran los datos. Cualquier dato, ya sea una variable inicializada o no, debe estar dentro de este segmento. La nica excepcin es cuando tenemos programas del tipo *.com, ya que en stos slo puede existir un segmento. El registro ES tiene el propsito general de permitir operaciones sobre cadenas, pero tambin puede ser una extensin del DS. El SS tiene la tarea exclusiva de manejar la posicin de memoria donde se encuentra la pila (stack) Esta es una estructura usada para almacenar datos en forma temporal, tanto de un programa como de las operaciones internas de la computadora personal (PC, por sus siglas en ingls) En trminos de operacin interna, la CPU usa este segmento para almacenar las direcciones de retorno de las llamadas a rutinas. El registro de segmentos ms importante es el CS o segmento de cdigo. Es aqu donde se encuentra el cdigo ejecutable de cada programa, el cual est directamente ligado a los diferentes modelos de memoria. El registro BP (base pointer) se usa para manipular la pila sin afectar al registro de segmentos SS. Es til cuando se usa interfaz entre lenguajes de alto nivel y el ensamblador. Puesto que dicha interfaz se basa en el concepto de la pila BP, nos permite acceder parmetros pasados sin alterar el registro de segmento SS. Los registros SI y DI son tiles para manejar bloques de cadenas en memoria, siendo el primero el ndice fuente y el segundo el ndice destino. En otras palabras, SI representa la direccin donde se encuentra la cadena y DI la direccin donde ser copiada. El registro SP apunta a un rea especfica de memoria que sirve para almacenar datos bajo la estructura LIFO (ltimo en entrar, primero en salir), conocida como pila (stack) El registro IP (instruction pointer) apunta a la siguiente instruccin que ser ejecutada en memoria. A continuacin se describe el significado de cada bit del registro F (banderas) Todas las banderas Apagadas: NV UP DI PL NZ NA PO NC Todas las banderas prendidas: OV DN EI NG ZR AC PE CY Significado de los bits: Overflow Direction NV = no hay desbordamiento O V = S lo hay

UP = hacia adelante DN = hacia atrs

Interrupts DI = desactivadas EI = activadas Sign PL = positivo NG = negativo Zero NZ = no es cero ZR = s lo es


21

Auxiliary Carry NA = no hay acarreo auxiliar AC = hay acarreo auxiliar Parity PO = paridad non E = paridad par Carry NC = no hay acarreo CY = s lo hay El registro de banderas es un registro de 16 bits, pero no todos los bits se usan. PSW Contiene 9 banderas. Tres banderas de control TF, DF, IF y seis banderas de status CF, PF, AF, ZF, SF, OF. Estas 6 ltimas banderas representan el resultado de una operacin aritmtica o lgica. Permiten al programa alterar el curso de ejecucin basado en los valores lgicos que almacenan.

AF Llevar auxiliar = 1, indica que hubo llevar del nibble (4 bits) 0 al nibble 1. O un pedir prstamo del nibble alto al nibble bajo. CF Llevar = 1, cuando ha ocurrido un llevar o pedir prstamo del resultado (8 o16 bits) OF Sobreflujo = 1, indica que ha ocurrido un sobreflujo aritmtico. SF Signo. Esta bandera se activa cuando el bit ms significativo del resultado es 1. Ya que los nmeros binarios negativos son representados usando notacin C2, SF refleja el signo del resultado: 0 indica + 1 indica PF Paridad. Cuando esta bandera est activa, el resultado de la operacin tiene un nmero par de unos. Esta bandera se usa para verificar errores en la transmisin. ZF Cero. Esta bandera se activa cuando el resultado de la operacin es cero. Las tres banderas de control sern discutidas despus durante el curso DF =bandera de direccin IF =bandera de interrupcin TF =bandera de tram pa 4 CONJ UNTO DE INSTRUCCIONES (Microprocesadores 8086/8088) Se pueden clasificar en los siguientes grupos:
22

4.1 Instrucciones de Transferencia de Datos. Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria principal, de y a los registros de datos, puertos de E/S y registros de segmentacin. Las instrucciones de transferencia de datos son las siguientes: MOV XCHG IN transfiere intercambia entrada

OUT salida XLAT traduce usando una tabla LEA carga la direccin efectiva LDS carga el segmento de datos LES carga el segmento extra LAHF carga los indicadores en AH SAHF guarda AH en los indicadores PUSH FUENTE (sp) fuente POP DESTINO destino (sp)

4.2 Control de Bucles (instrucciones simples) stas posibilitan el grupo de control ms elemental de nuestros programas. Un bucle es un bloque de cdigo que se ejecuta varias veces. Hay 4 tipos de bucles bsicos: Bucles sin fin Bucles por conteo Bucles hasta Bucles mientras

Las instrucciones de control de bucles son las siguientes:

LOOP LOOPZ,LOOPE LOOPNZ,LOOPNE JCXZ

realizar un bucle realizar un bucle si es cero realizar un bucle si no es cero salta si CX es cero

23

4.3 Instrucciones de Prueba, Comparacin y Saltos. Este grupo es una continuacin del anterior, incluye las siguientes instrucciones: TEST JE, JZ JNE, JNZ JS JNS JP, JPE JNP, JOP JO JNO JB, JNAE JNB, JAE JBE, JNA JNBE, JA JL, JNGE JNL, JGE JLE, JNG JNLE, JG salta si es igual a cero salta si no igual a cero salta si signo negativo salta si signo no negativo salta si paridad par salta si paridad impar salta si hay capacidad excedida salta si no hay capacidad excedida salta si por abajo (no encima o igual) salta si no est por abajo (encima o igual) salta si por abajo o igual (no encima) salta si no por abajo o igual (encima) salta si menor que (no mayor o igual) salta si no menor que (mayor o igual) salta si menor que o igual (no mayor) salta si no menor que o igual (mayor)

4.4 Instrucciones de Llamado y Retorno de Subrutinas. Para que los programas resulten eficientes y legibles tanto en lenguaje ensamblador como en lenguaje de alto nivel, resultan indispensables las subrutinas: CALL RET 4.5 Instrucciones Aritmticas. Estas instrucciones son las que realiza directamente el 8086/8088 a. Grupo de adicin: ADD suma ADC suma con acarreo AAA ajuste ASCII para la suma DAA ajuste decimal para la suma llamada a subrutina retorno al programa o subrutina que llam

24

b. Grupo de sustraccin: SUB resta SBB resta con acarreo negativo AAS ajuste ASCII para la resta DAS ajuste decimal para la resta c. Grupo de multiplicacin: MUL multiplicacin IMUL multiplicacin entera AAM ajuste ASCII para la multiplicacin d. Grupo de divisin: DIV divisin IDIV divisin entera AAD ajuste ASCII para la divisin e. Conversiones: CBW pasar octeto a palabra CWD pasar palabra a doble palabra NEG negacin f. Tratamiento de cadenas: Permiten el movimiento, comparacin o bsqueda rpida en bloques de datos: MOVC transferir carcter de una cadena MOVW transferir palabra de una cadena CMPC comparar carcter de una cadena CMPW comparar palabra de una cadena SCAC buscar carcter de una cadena
25

SCAW buscar palabra de una cadena LODC cargar carcter de una cadena LODW cargar palabra de una cadena STOC guardar carcter de una cadena STOW guardar palabra de una cadena REP repetir CLD poner a 0 el indicador de direccin STD poner a 1 el indicador de direccin 4.6 Instrucciones Lgicas. Son operaciones bit a bit que trabajan sobre octetos o palabras completas: NOT OR AND XOR producto lgico suma lgica suma lgica exclusiva

4.7 Instrucciones de Desplazamiento, Rotacin y Adeudos. Bsicamente permiten multiplicar y dividir por potencias de 2 SHL, SAL SHR SAR ROL ROR RCL RCR 4.8 Instrucciones de Pila. Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas): SH POP PUSHF POPF desplazar a la izquierda (desplazamient o aritmtico) desplazar a la derecha desplazamiento aritmtico a la derecha rotacin a la izquierda rotacin a la derecha rotacin con acarreo a la izquierda rotacin con acarreo a la derecha

introducir indicadores extraer indicadores


26

4.9 Instrucciones de Control del microprocesador. Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjuncin con otros procesadores: NOP HLT WAIT LOCK ESC no operacin parada espera bloquea escape

4. 10 Instruccin de interrupcin STI: poner a 1 el indicador de interrupcin TI: borrar el indicador de interrupcin C: Interrupcin LI: interrupcin por capacidad excedida (desbordamiento) L: retorno de interrupcin Las instrucciones de transferencia condicional del control del programa se pueden clasificar en 3 grupos: 4.11 Instrucciones usadas para comparar dos enteros sin signo.
a.

b. c. d. e. f.

JA o JNBE. Salta si est arriba o salta si no est abajo o si no es igual (jump if above o jump if not below or equal) El salto se efecta si la bandera ce CF = 0 o si la bandera de ZF = 0 JAE o JNB. Salta si est arriba o es igual o salta si no est abajo (jump if above or equal o jump if not below) El salto se efecta si CF = 0. JB o JNAE. Salta si est abajo o salta si no est arriba o si no es igual (jump if below or equal o jump if not above or equal) El salto se efecta si CF = 1. JBE o JNA. Salta si est abajo o si es igual o salta si no est arriba (jump if below or equal o jump if not above) El salto se efecta si CF = 1. JE o JZ. Salta si es igual o salta si es cero (jump equal o jump if zero) El salto se efecta si ZF = 1 (tambin se aplica a comparaciones de enteros con signo) JNE o JNZ. Salta si no es igual o salta si no es cero (jump if not equal o jump if not zero) El salto se efecta si ZF = 0 (tambin se aplica a comparaciones de enteros con signo)

4.12 Instrucciones usadas para comparar dos enteros con signo. a) JG o JNLE. Salta si es ms grande o salta si no es menor o igual (jump if greater o jump if not less or equal) El salto se efecta si ZF = 0 o OF = SF. b) JGE o JNL. Salta si es ms grande o igual o salta si no es menor que (jump if
27

c) d)

greater or equal o jump if not less) El salto se efecta si SF = OF. JL o JNGE. Salta si es menor que o salta si no es mayor o igual (jump if less o jump if not greater or equal) El salto se efecta si SF = OF. JLE o JNG. Salta si es menor o igual o salta si no es ms grande (jump if less or equal o jump if not greater) El salto se efecta si ZF = 1 o SF = OF.

4.13 Instrucciones usadas segn el estado de banderas. a. JC Salta si hay acarreo (jump if carry) El salto se efecta si CF = 1. b. JNC Salta si no hay acarreo (jump if not carry) El salto se efecta si CF = 0. c. JNO Salta si no hay desbordamiento (jump if not overflow) El salto se efecta si OF= 0. d. JNP o JPO Salta si no hay paridad o salta si la paridad en non. El salto se efecta si PF = 0. e. JNS Salta si el signo est apagado (jump if not sign) El salto se efecta si SF = 0. f. JO Salta si hay desbordamiento (jump if overflow) El salto se efecta si OF = 1. g. JP o JPE Salta si hay paridad o salta si la paridad es par El salto se efecta si PF=1. h. JS Salta si el signo est prendido (jump if sign set) El salto se efecta si SF = 1. Las comparaciones con signo van de acuerdo con la interpretacin que usted le quiera dar a los bytes o palabras de su programa. Por ejemplo, suponga que tiene un byte cuyo valor es 11111111 en binario y que desea compararlo con otro cuyo valor es 00000000. Es 11111111 mayor que 00000000? S y NO, eso depende de la interpretacin que usted le quiera dar. Si trabaja con nmeros enteros sin signo S LO SER, pues 255 es mayor que 0. Por el contrario, si tiene signo entonces SER MENOR puesto que 1 es siempre menor que 0. Lo anterior lleva a seleccionar las instrucciones de comparacin y de salto de acuerdo con la interpretacin que se les d a los bytes o palabras; reflexione sobre este punto. Los saltos condicionales se encuentran limitados al rango de 128 a +127 bytes como mxima distancia, ya sea adelante o hacia atrs. Si desea efectuar un salto a mayores distancias es necesario crear una condicin mixta entre saltos condicionales y no condicionales. ITERACCIONES. Con los saltos condicionales y no condicionales se pueden crear estructuras de iteracin bastante complejas, aunque existen instrucciones especficas para ello tal como loop. Esta instruccin es muy til cuando se va a efectuar cierto bloque de instrucciones un nmero finito de veces. He aqu un ejemplo: CUENTA: DW, 100 .
28

MOV ITERA: . LOOP

CX, CUENTA

ITERA

El bloque de instrucciones que se encuentra entre la etiqueta ITERA y la instruccin loop ser ejecutado hasta que el registro CX sea igual a 0. Cada vez que se ejecuta la instruccin loop, el registro CX es decrementado en 1 hasta llegar a 0. Esta instruccin tiene la limitante de que debe encontrarse en el rango de +128 a 127 (mximo nmero de bytes entre ITERA y loop) ITERACCIONES CONDICIONALES. Existen otras dos variantes de la instruccin loop. Las instrucciones loope y loopz decrementan CX e iteran si CX = 0 y ZF = 1, mientras que loopne y looppnz iteran si CX 0 y ZF 0. Un punto importante es que al decrementarse CX las banderas NO RESULTAN AFECTADAS. Por lo tanto, le corresponde a usted afectarlas dentro del bloque de iteracin. FORMATO DE LAS INSTRUCCIONES Cada instruccin en lenguaje ensamblador del 8088 est compuesta de 4 campos: Etiqueta operacin operando comentario

El campo comentario se utiliza para propsitos de documentacin y es opcional. Campo etiqueta: Una etiqueta debe comenzar con un carcter alfabtico y puede contener hasta 31 caracteres, incluyendo: Letras de la A a la Z Nmeros del 0 al 9 Los smbolos especiales: - $ . @ % No se puede utilizar un nombre que coincida con una palabra reservada o directiva del ensamblador. Si el nombre incluye un punto, entonces el pun- to debe ser el primer carcter. Campo operacin: Contiene el nemotcnico de la instruccin, que es de 2 a 6 caracteres.

29

Campo operando: Contiene la posicin o posiciones donde estn los datos que van a ser manipulados por la instruccin. Campo comentario: Se utiliza para documentar el cdigo fuente del ensamblador. Debe separarse del ltimo campo por al menos un espacio e iniciar con ;. Cuando inicia un comentario en una lnea sta deber tener en la primera columna el carcter.

5 MODOS DE DIRECCIONAMIENTO Y GENERACION DEL CODIGO OBJETO Generacin de la direccin de la instruccin: Todos los registros internos del 8086/8088 son de 16 bits. El bus de direccin es de 20 bits, por lo que se usa ms de un registro interno para generar la direccin de 20 bits. Los 2 registros usados para la direccin de la instruccin son el IP y el CS. Se combinan en una forma especial para generar la direccin de 20 bits. direccin de 20 bits = 1610 * CS + IP Por ejemplo: Si los registros CS e IP contienen los valores: CS = 1000H IP = 0414 H La direccin de 20 bits es: 1610 * 1000H + 0414H = 10000H + 0414H = 10414H Esta es la direccin en memoria desde la cual la nueva instruccin debe buscarse. Al registro IP se le refiere como offset, el registro CS * 1610 apunta a la direccin de inicio o segmento en memoria desde el cual se calcula el offset. La Figura A muestra grficamente cmo se calcula la direccin de 20 bits.

30

Cada direccin generada por el 8086/8088 usa uno de los 4 registros de segmento. Este registro de segmento es recorrido 4 bits hacia la izquierda antes de ser sumado al offset. La instruccin del CPU especfica cules registros internos se usa para generar el offset. Vamos a ver los diferentes modos de direccionamiento tomando como ejemplo la instruccin MOV. Instruccin MOV Transfiere un byte desde el operando fuente al operando destino. Tiene el siguiente formato: MOV destino, fuente

5.1 Direccionamiento Inmediato. El operando fuente aparece en la instruccin. Un ejemplo, es el que mueve un valor constante a un registro interno. MOV AX, 568 5.2 Direccionamiento a Registro. Indica que el operando a ser usado est contenido en uno de los registros internos de propsito general del CPU. En el caso de los registros AX, BX, CX o DX los registros pueden ser de 8 a 16 bits Ejemplos: MOV AX, BX ; AX BX MOV AL, BL ; AL BL Cuando usamos direccionamiento a registro, el CPU realiza las operaciones internamente, es decir, no se genera direccin de 20 bits para especificar el operando fuente. 5.3 Direccionamiento Directo.
31

Especifica en la instruccin la localidad de memoria que contiene al operando. En este tipo de direccionamiento, se forma una direccin de 20 bits. Ejemplo: MOV CX, COUNT El valor de COUNT es una constante. Es usada como el valor offset en el clculo de la direccin de 20 bits El 8086/8088 siempre usa un registro de segmento cuando calcula una direccin fsica. Cul registro se debe usar para esta instruccin? Respuesta: DS En la Figura B, se muestra el clculo de la direccin desde la cual se tomar el dato que se carga en CX.

Cuando accedamos datos, el registro DS se usa con un offfset para calcular la direccin de 20 bits, ste es el segmento por omisin. Puede ser invalidado por usar un prefijo de segmento en la instruccin. Ejemplo: MOV CX, ES: COUNT Uso del segmento de datos y una constante para desplazamiento Este es el segmento por omisin que se usa. Sin embargo, cualquiera de los 4 segmentos puede usarse. Esto se efecta especificando el registro apropiado en la instruccin. Por ejemplo, suponga que deseamos usar el registro ES en lugar del DS: MOV CX, ES: COUNT 5.4 Direccionamiento de Registro Indirecto.
32

Con el modo de direccionamiento de registro ndice, la direccin offset de 16 bits est contenida en un registro base o registro ndice. Esto es, la direccin reside en el registro BX, BP, SI o DI. Ejemplo: MOV AX, [SI] El valor de 16 bits contenido en el registro SI debe ser el offset usado para calcular la direccin de 20 bits. Otra vez, debe usarse un registro de segmento para generar la direccin final. El valor de 16 bits en SI se combina con el segmento apropiado para generar la direccin. 5.5 Direccionamiento de Registro Indirecto con Desplazamiento Este tipo de direccionamiento incluye a los dos modos de direccionamiento anteriores. La direccin offset de 16 bits se calcula sumando el valor de 16 bits especificado en un registro interno y una constante. Por ejemplo, si usamos el registro interno DI y el valor constante (desplazamiento), donde COUNT ha sido previamente definido, el nemotcnico para esta construccin es: MOV AX, COUNT [DI] Si: COUNT = DI = 0872H Entonces, la direccin offset de 16 bits es 0872H 5.6 Direccionamiento de Registro Indirecto con un Registro Base y un Registro ndice Este modo de direccionamiento usa la suma de dos registros internos para obtener la direccin offset de 16 bits a usarse en el clculo de la direccin de 20 bits. Ejemplos: MOV MOV [BP] [DI], AX AX, [BX] [SI] ; el offset es BP + DI ; el offset es BX + SI 0378H 04FAH

Este es el modo de direccionamiento ms complejo. Es idntico al modo de direccionamiento anterior, excepto que se suma una constante.
33

Ejemplo: Suponga que tenemos los siguientes valores en los registros: DI = 0367H BX = 7890H COUNT = 7C09H 5.7 Direccionamiento de Registro Indirecto con un Registro Base y un Registro ndice y un registro constante. Este modo de direccionamiento indica que el offset especificado por la suma de DI + BX + COUNT sea usado para mover el dato en memoria en el registro AX. MOV AX, COUNT [BX] [DI] La direccin offset de 16 bits es 7C09H. La direccin completa en 20 bits se calcula de la expresin: 1610*DS + 7C09H Si el DS contiene 3000H, la direccin completa de 20 bits es: 3000H + 7C09H = 37C09H Cdigo Objeto del 8086/8088 Como programador, debes escribir los nemotcnicos. El cdigo objeto es generado por la computadora (son los bytes que ejecuta el CPU) Con el conjunto de instrucciones del 8086/8088, cada tipo de modo de direccionamiento puede requerir un nmero diferente de bytes. En los ejemplos siguientes proporcionaremos el nmero de bytes requeridos por cada modo de direccionamiento. Bit W y campo REG La instruccin MOV AX, 568H Indica mover inmediatamente al registro interno AX el valor 568H. El registro interno puede ser de 1 byte o de una palabra. Esta instruccin requiere 2 o 3 bytes, como se indica en la Figura C. 0012H

34

El primer byte contiene los bits ms significativos (MSB) como 1011. El prximo bit es W. W indica: 0 para byte Esto es, si el registro destino es de 16 bits o de 8 bits. Los siguientes 3 bits del primer byte, campo REG, determinan cul registro est involucrado. La Figura D, muestra el cdigo de seleccin del registro. 1 para word

REG REGISTRO DE 000 AXBITS 16 001 CX 010 DX 011 BX 100 SP 101 BP 110 SI REG REGISTRO DE 111 DI BITS 16

REGISTR O AL 8 BITS DE CL DL BL AH CH DH REGISTR O BH 8 BITS DEFIGURA D. Registro involucrado en la operacin

Campo DATA. Si el registro de destino es de 1 byte, el dato debe estar en el segundo byte de la instruccin. Si el destino es de una palabra, el segundo byte de la instruccin son los 8 bits menos significativos (lsb) del dato, el tercer byte de la instruccin son los 8 bits ms significativos (MSB) del dato. La siguiente tabla, muestra los nemotcnicos 2 o 3 bytes Bit D, MOD y R/M En este ejemplo, moveremos datos desde memoria o moveremos un registro hacia o desde otro registro. Usaremos una instruccin como: MOV AX, BX
35

Esta instruccin es de 2 bytes porque no nos referimos a memoria. Los bytes aparecern como lo muestra la Figura E:

El primer byte contiene los 2 bits menos significativos como DW. El bit W es para word=1 o para byte=0. La D es para indicar si el dato ser almacenado en el operando especificado por los campos MOD y R/M (D = 0) o si va a ser almacenado en el registro especificado por el campo REG (D = 1) La Figura F muestra las asignaciones para MOD y R/M. Note en la descripcin de MOD=1 1, el campo R/M es codificado con un formato de registro. Este formato se mostr en la Figura D. Para esta instruccin deseamos almacenar el dato en el registro AX. Por lo tanto el bit D = 0. Esto significa que el dato debe ser almacenado en la localidad especificada por los campos MOD y R/M. Por lo tanto, MOD = 11. El campo R/M = 000, indicando que el registro AX es el destino para los datos. El campo REG para el segundo byte de datos es 011 indicando que el registro BX es el registro fuente a ser utilizado. El segundo byte de la instruccin es 11 011 000 = D8. Por lo que el cdigo objeto para la instruccin es: MOV AX, BX D8 Cdigo Objeto para el uso de Registro Base y Registro ndice Examinemos un ltimo ejemplo para generar cdigo objeto para el 8086/8088. En ste vamos a calcular el cdigo objeto para la instruccin: MOV CX, COUNT [BX] [SI] Esta instruccin es de 4 bytes, com FUNCIN INT 21 (AH)=1 ENTRADA DESDE EL TECLADO Esta funcin espera a que se digite un carcter en el teclado. Muestra el carcter en la pantalla (eco) y retorna el cdigo ASCII en el registro AL. (AL) = carcter ledo desde el teclado
36

es 89

Ejemplo: MOV AH, 1 INT 21h ;AL = dato ASCII ledo desde el teclado (AH)=2 SALIDA EN EL EXHIBIDOR (display) Despliega un carcter en la pantalla. Algunos caracteres tienen un significado especial: 7 CAMPANA: Suena durante un segundo 8 BACKSPACE: Mueve el cursor hacia la izquierda un carcter 9 TABULADOR: Mueve el tabulador a su prxima posicin (cada 8 caracteres) 0Ah LF: Mueve el cursor a la siguiente lnea 0Dh CR: Mueve el cursor al inicio de la lnea corriente (DL): Carcter a desplegar en la pantalla Ejemplo: Desplegar un character MOV DL, 40 ; carcter a desplegar MOV AH, 2 INT 21h ; aparece en la posicin corriente del cursor ; el carcter contenido en DL

Ejemplo: Hacer que suene la campana 2 segundos MOV DL, 7 ; DL = campana MOV AH, 02 INT 21h ; 1 segundo INT 21h ; 1 segundo (AH)=8 ENTRADA DESDE EL TECLADO SIN ECO Lee un carcter desde el teclado, pero no se despliega en la pantalla (AL) = carcter ledo desde el teclado MOV AH, 08 INT 21h ;AL = character (AH)=9 DESPLIEGA UNA CADENA DE CARACTERES
37

Despliega en la pantalla la cadena apuntada por el par de registros DS:DX. Debemos marcar el fin de la cadena con el carcter $ DS:DX apuntan a la cadena que se va a desplegar (AH)=0A h LEE UNA CADENA Lee una cadena de caracteres desde el teclado Dnde queda la informacin? (AH)=25h ACTIVA EL VECTOR DE INTERRUPCIN Activa un vector de interrupcin, para que apunte a una nueva rutina (AL) = nmero de interrupcin ES:BX direccin del manipulador de interrupciones (AH)=35h CONSIGUE VECTOR DE INTERRUPCIN Consigue la direccin de la rutina de servicio para el nmero de interrupcin dado en AL (AL) = nmero de interrupcin ES:BX direccin del manipulador de interrupcin (AH)=4Ch SALIDA AL DOS Retorna al DOS. Trabaja para ambos archivos *.com y *.Exe. Recuerde que INT 20h trabaja solamente para archivos *.com (AL) = cdigo de retorno, normalmente activo a 0, pero se puede activar a cualquier otro nmero y usar los comandos del DOS, IF y ERRORLEVEL, para detectar errores. 6 PROGRAMACIN EN LENGUAJE ENSAMBLADOR Los archivos deben terminar con la extensin ASM. Las letras minsculas trabajan igual que las maysculas, pero durante el presente trabajo se utilizarn maysculas para evitar confusin entre el nmero 1 y la minscula l, el 0 (cero) y la letra O. Considrense las siguientes lneas de un programa: .MODEL SMALL .CODE MOV AH, 2H MOV DL, 2AH INT 21H INT 20H END

38

Una H despus de cada nmero indica al ensamblador que los nmeros son hexadecimales. Recuerde que DEBUG asume que todos los nmeros son hexadecimales pero el ensamblador asume que todos los nmeros son decimales. El ensamblador puede confundir nmeros con etiquetas, para evitar esto coloque un 0 (cero) antes de un nmero hexadecimal que inicie con una letra. Ejemplo: MOV DL, ACH ; AC es una etiqueta MOV DL, 0ACH ; AC es un nmero hexadecimal Con el fin de hacer ms legibles los programas, usaremos el tabulador para el espaciado. A las directivas del ensamblador se les llama tambin pseudo-operaciones. Se les conoce como directivas porque en lugar de generar instrucciones, proporcionan informacin y direcciones al ensamblador. La pseudo-operacin END marca el fin del archivo fuente. Creacin de Archivos Fuente El ensamblador puede usar archivos fuente que contengan caracteres ASCII estndar. Considere que no todos los procesadores de texto escriben archivos en disco usando solamente los caracteres ASCII estndar. Antes de ensamblar un programa verifique que est en cdigo ASCII. Puede ver caracteres extraos en el programa. Muchos procesadores de texto agregan informacin de formateo adicional en el archivo. El ensamblador los trata como errores. Utilice la versin no documento de su procesador de texto. Tambin se requiere una lnea en blanco despus de la instruccin END.

Para ensamblar el programa: A>MASM PROGRAMA; MICROSOFT MACRO ASSEMBLER VERSION 5.10 COPYRIGHT MICROSOFT CORP 1981, 1988. ALL RIGHTS RESERVED 49822 + 219323 BYTES SYMBOL SPACE FREE 0 WARNING ERRORS 0 SEVERE ERRORS A> El ensamblador crea un archivo intermedio *.OBJ el cual contiene nuestro programa e informacin adicional usada por otro programa llamado LINKER <encadenador>. Encadenar al archivo *.OBJ A>LINK ARCHIVO;
39

Microsoft Overlay Linker Version 3.64 copyright microsoft corp 1983-1988. All rights reserved LINK : warning L4021: No Stack Segment Hemos creado nuestro archivo *.EXE. Ahora s necesitamos crear nuestra versin *.COM. El archivo EXE2BIN.EXE del DOS convierte un archivo EXE a un archivo BIN. A>EXE2BIN ARCHIVO ARCHIVO.COM A> Si listamos los archivos que hemos creado, obtendramos: A>DIR ARCHIVO.* Volume in drive A has no label directory of A:\ archivo.ASM 100 archivo.OBJ 200 archivo.EXE 600 archivo.COM 50 Recuerde los detalles del DEBUG. A>DEBUG ARCHIVO.COM -U 397F:0100 B402 MOV AH, 02 397F:0102 B22A MOV DL, 2A 397F:0104 CD21 INT 21 397F:0106 CD20 INT 20 Note que las dos primeras y la ltima lnea no aparecen en el listado. Se eliminan en la versin final del lenguaje de mquina porque son directivas y stas son para documentacin. El ensamblador toma en cuenta esta documentacin a costa de ms lneas de cdigo. Comentarios. Para comentar una lnea ponga el ;. Todo lo que est despus del ; el ensamblador lo considera como comentario. Etiquetas. Pueden tener hasta 31 caracteres y pueden contener letras, nmeros y cualesquiera de los siguientes smbolos: . interrogacin punto
40

@ arroba _ subrayado $ dlar Las etiquetas no deben iniciar con un nmero decimal y el punto se utiliza solamente como el primer carcter. Una de las principales diferencias entre el DEBUG y el ensamblador reside en las etiquetas. Recuerde que con DEBUG debemos hacer el clculo nosotros. El ensamblador refiere a etiquetas y l calcula el desplazamiento. Cuando ponemos : despus de una etiqueta, decimos que la etiqueta es cercana (NEAR). El trmino NEAR tiene que ver con los segmentos. Procedimientos en ensamblador El ensamblador asigna direcciones a las instrucciones. Cada vez que hacemos un cambio al programa, debemos ensamblar nuevamente dicho programa. Considrese el siguiente programa: .MODEL SMALL .CODE PRINT _A_J PROC MOV DL, A ; inicia con el carcter A MOV CX, 10 ; imprime 10 caracteres PRINT _LOOP: CALL WRITE _CHAR ; imprime carcter INC DL ; siguiente carcter del alfabeto LOOP PRINT _LOOP ; continua MOV AH, ACh ; retorna al DOS INT 21h PRINT _A_J ENDP WRITE _CHAR PROC MOV AH, 02 ; activa el cdigo de la funcin para sacar CHAR INT 21h ; imprime el carcter que est en DL RET ; retorna de este procedimiento WRITE _CHAR ENDP END PRINT _A_J PROC y ENDP son directivas para definir procedimientos. PROC define el inicio y ENDP define el final. En este ejemplo, tenemos 2 procedimientos; por lo tanto, necesitamos indicarle al ensamblador cul debe usar como el procedimiento principal (donde debe el
41

microprocesador iniciar la ejecucin de nuestro programa) La directiva END indica al ensamblador cual es el procedimiento principal. El procedimiento principal puede estar en cualquier lugar del programa. Sin embargo como estamos tratando con archivos *.COM, debemos colocar primero el procedimiento principal. NOTA: Si encuentras algn mensaje de error que no reconozcas, verifica que hayas digitado el programa adecuadamente. Si an falla, consulta el manual del ensamblador Despus, usa el DEBUG para desensamblar el programa y ver cmo el ensamblador pone los procedimientos juntos. C> DEBUG PRINT:A_J.COM A: ASSEMBLE Sin parmetros ensambla las instrucciones que se introduzcan, guardndolas en la direccin siguiente a la que se lleg en el ltimo "a". Cuando se utiliza este comando se le puede dar como parmetro la direccin donde se desea que se inicie el ensamblado, si se omite el parmetro el ensamblado se iniciar en la localizacin especificada por CS:IP, usualmente 0100H, que es la localizacin donde deben iniciar los programas con extensin .COM, y ser la localizacin que utilizaremos debido a que debug solo puede crear este tipo especfico de programas. Tambin se le puede decir qu zona se desea ver con a <direccion> pudiendo ser la direccin absoluta (a segmento:desplazamiento) o relativa al segmento de cdigo actual (a desplazamiento). Parmetros: <dir_comienzo> Resultados: se pueden escribir instrucciones en ensamblador a partir de la direccin de memoria CS:<dir_comienzo>, hasta que se pulse INTRO. Si no especificamos el parmetro <dir_comienzo> se toma como direccin de inicio CS:IP Ejemplo: Vamos a usar la instruccin MOV, que como veremos ms adelante, sirve para copiar datos de la memoria a los registros y viceversa, adems de copiar datos entre registros, que es justo lo que vamos a usar en el ejemplo. -a 2048:0106 mov ax,bx 2048:0108 mov bx,cx 2048:010A -u 106 108 2048:0106 89D8 MOV AX,BX 2048:0108 89CB MOV BX,CX
42

Como veremos ms adelante, la instruccin 'U' sirve para hacer volcados de memoria, pero no viendo el contenido de la misma, sino interpretndola como instrucciones en lenguaje ensamblador. ; Ejemplo 2 -r cs CS 2048 :2050 -a 200 2050:0200 mov ax,bx 2050:0202 -u 200 200 2050:0200 89D8 MOV AX,BX D: DUMP Muestra el contenido de una zona de memoria en hexadecimal y en ASCII. Sin parmetros muestra los primeros 128 bytes a partir de la posicin a la que se lleg en el ltimo "d". Si se le da un rango, mostrar ese rango. Parmetros: <dir_1> ; Direccin de comienzo del volcado [<dir_2>] ; Direccin final del volcado. Resultado: Presenta por pantalla el contenido de las direcciones de memoria entre DS:<dir_1> y DS:<dir_2> ( si no se ha especificado el segundo parmetro, nos hace un volcado desde <dir_1> Ejemplo: -d 100 2048:0100 92 D3 3D 64 00 77 0B 3D-50 00 73 03 05 64 00 05 ..=d.w.=P.s..d.. 2048:0110 6C 07 A3 BF E1 E8 4C 00-B0 08 F8 5F 34 00 37 20 l.....L...._4.7 2048:0120 FF EB F8 33 C0 51 B9 0A-00 80 3C 30 72 12 80 3C ...3.Q....<0r..< 2048:0130 39 77 0D F6 E1 02 04 80-D4 00 2D 30 00 46 EB E9 9w........-0.F.. 2048:0140 59 C3 AC 3A 06 2B E1 74-0E 3C 2F 74 0A 3C 2D 74 Y..:.+.t.<-t 2048:0150 06 3C 2E 74 02 F9 C3 80-3C 30 72 F9 80 3C 39 77 .<.t....<0r..<9w 2048:0160 F4 F8 EB F2 50 53 8B 1E-8E D3 B8 C6 DB E8 31 FE ....PS........1. 2048:0170 3B 77 09 77 03 5B 58 C3-FF 06 8E D3 8B 1E 8E D3 ;w.w.[X......... -d 100 110 2048:0100 92 D3 3D 64 00 77 0B 3D-50 00 73 03 05 64 00 05 ..=d.w.=P.s..d.. 2048:0110 6C l (NOTA: El contenido de la memoria seguramente no coincide.)

43

E DIRECCION: EDIT Permite editar, byte por byte, una zona de memoria. Muestra -en hexadecimal- el byte de esa posicin y permite escribir otro valor para cambiarlo. Pulsando espacio pasa al byte siguiente, dejando como estaba el anterior si no se ha cambiado, o guardando los cambios si s se ha hecho. Para terminar la edicin se pulsa INTRO. Parmetros: <dir_comienzo> [lista de palabras a escribir] Resultados: Se escribe a partir de la direccin de memoria DS:<dir_comienzo> la lista de palabras (dos dgitos hexadecimales) del segundo parmetro. Si no se especifica un segundo parmetro entonces DEBUG no permite introducir palabra a palabra los datos que queramos, a partir de la direccin DS:<dir_comienzo>. Podemos pasar a la palabra siguiente de memoria presionando la tecla ESPACIO, cuando hayamos terminado de introducir los datos que queramos, hay que pulsar INTRO Ejemplo: -e 100 00 01 02 -d 100 102 2048:0100 00 01 02 ... ; Ejemplo 2 -e 100 2048:0100 00. 01.04 02.05 64. -d 100 103 2048:0100 00 04 05 64 ...d F: FILL Llena una zona de memoria con un valor determinado. Como al terminar un programa la zona de memoria en que se resida no se borra (ponindola a cero, por ejemplo), a menudo es til para distinguir entre lo que son datos del programa actual y lo que es basura del anterior. Parmetros: <dir_comienzo> <dir_final> <patrn> ; Palabra con la que queremos rellenar Resultados: Rellenamos las direcciones de memoria entre DS:<dir_comienzo> y DS:<dir_final> con el patrn especificado Ejemplo: -f 100 105 66 -d 100 105 2048:0100 66 66 66 66 66 66 ffffff Ejemplo:
44

-f 100 FFFF 0 Llena de ceros lo que hay desde la posicin 100 (hexadecimal) hasta el final del segmento. G: GO Sin parmetros, empieza a ejecutar desde la posicin cs:ip hasta que se acabe el programa. Si la orden es "g <direccion>", la ejecucin empieza en cs:ip y termina (debug pone un break point) justo antes de ejecutar la instruccin que se encuentra en <direccion>. Parmetros: [<=dir_origen>] <dir_destino> ( NOTA: HAY QUE INCLUIR EL '=' ) Resultados: se ejecutan instrucciones desde CS:<dir_origen> hasta CS:<ir_destino>, si no se especifica la direccin origen, se toma como direccin origen CS:IP. Por cierto no se os ocurra ejecutar el comando 'G' a secas, porque podis parar en alguna instruccin que no tiene sentido o podis obtener un bonito cuelgue de la ventana MS-DOS o un bloqueo del sistema, si lo ests ejecutando A PANTALLA COMPLETA; a no ser que por casualidades del destino, DEBUG encuentre una int 20h, o cualquier cosa peor. Ejemplo: Vamos a usar una interrupcin de MS-DOS para presentar una letra por pantalla, esta subrutina es el servicio 02h de la interrupcin 21h, y pasndole como parmetro el valor hexadecimal del carcter ASCII a. -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0100 NV UP EI PL NZ NA PO NC 2048:0100 92 XCHG DX,AX -a 100 2048:0100 mov ax,0200 2048:0103 mov dl,61 2048:0105 int 21 2048:0107 -g 107 a AX=0261 BX=0000 CX=0000 DX=0061 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0107 NV UP EI PL NZ NA PO NC 2048:0107 3D5000 CMP AX,0050 -g =100 107 a AX=0261 BX=0000 CX=0000 DX=0061 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0107 NV UP EI PL NZ NA PO NC 2048:0107 3D5000 CMP AX,0050 H NUM1 NUM2: HEX Muestra por pantalla el resultado (en hexadecimal) de las operaciones num1+num2 y num1-num2.
45

Parmetros: 2 nmeros hexadecimales de 4 dgitos (mximo) Uso: la instruccin "H <op_1> <op_2>" nos devuelve la suma y la resta ( en complemento a dos) de los dos operandos suministrados Resultado: <resultado_1> ; Es la suma ( <op_1> + <op_2>), <resultado_2> ; es la resta (<op_1>- <op_2>) Ejemplo: -h 0003 0002 0005 0001 -h 0000 0001 0001 FFFF Como se observa, el resultado de la segunda operacin es FFFF que es el equivalente en complemento a 2 de -1 L: LOAD La sintaxis completa es l [direccion] [unidad] [sector] [n sectores]. Si se le dan todos los parmetros lee de la unidad dada, empezando en el sector indicado, tantos sectores como determine "nsectores" y los guarda en la posicin de memoria especificada por "direccin". Poniendo slo l direccin intenta cargar el fichero definido con la orden n (ver abajo) en esa posicin. Parmetros: <direc_destino> <unidad> <primer_sector> <numero> Resultados: Esta instruccin carga en comenzando en la direccin de memoria DS:<dir_destino> el <numero> de sectores especificados de la <unidad> ( NOTA: A= 0, B=1, C=2, ... ) Ejemplo: voy a leer el sector 0 del disco A y lo vuelco a partir de la direccin DS:100, (ESTO NO QUIERE DECIR QUE OS TENGA QUE SALIR LO MISMO EN VUESTRO VOLCADO) -l 100 0 0 1 -d 100 300 2048:0100 EB 3E 90 29 79 3B 46 5D-49 48 43 00 02 01 01 00 .>.)y;F]IHC..... 2048:0110 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00 ...@............ 2048:0120 00 00 00 00 00 00 29 5D-46 DB 1C 4E 4F 20 4E 41 ......)]F..NO NA 2048:0130 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 F1 7D ME FAT12 .} 2048:0140 FA 33 C9 8E D1 BC FC 7B-16 07 BD 78 00 C5 76 00 .3.....{...x..v. 2048:0150 1E 56 16 55 BF 22 05 89-7E 00 89 4E 02 B1 0B FC .V.U."..~..N.... 2048:0160 F3 A4 06 1F BD 00 7C C6-45 FE 0F 8B 46 18 88 45 ......|.E...F..E 2048:0170 F9 FB 38 66 24 7C 04 CD-13 72 3C 8A 46 10 98 F7 ..8f$|...r<.F... 2048:0180 66 16 03 46 1C 13 56 1E-03 46 0E 13 D1 50 52 89 f..F..V..F...PR.
46

2048:0190 46 FC 89 56 FE B8 20 00-8B 76 11 F7 E6 8B 5E 0B F..V.. ..v....^. 2048:01A0 03 C3 48 F7 F3 01 46 FC-11 4E FE 5A 58 BB 00 07 ..H...F..N.ZX... 2048:01B0 8B FB B1 01 E8 94 00 72-47 38 2D 74 19 B1 0B 56 .......rG8-t...V 2048:01C0 8B 76 3E F3 A6 5E 74 4A-4E 74 0B 03 F9 83 C7 15 .v>..^tJNt...... 2048:01D0 3B FB 72 E5 EB D7 2B C9-B8 D8 7D 87 46 3E 3C D8 ;.r...+...}.F><. 2048:01E0 75 99 BE 80 7D AC 98 03-F0 AC 84 C0 74 17 3C FF u...}.......t.<. 2048:01F0 74 09 B4 0E BB 07 00 CD-10 EB EE BE 83 7D EB E5 t............}.. 2048:0200 BE 81 7D EB E0 33 C0 CD-16 5E 1F 8F 04 8F 44 02 ..}..3...^....D. 2048:0210 CD 19 BE 82 7D 8B 7D 0F-83 FF 02 72 C8 8B C7 48 ....}.}....r...H 2048:0220 48 8A 4E 0D F7 E1 03 46-FC 13 56 FE BB 00 07 53 H.N....F..V....S 2048:0230 B1 04 E8 16 00 5B 72 C8-81 3F 4D 5A 75 A7 81 BF .....[r..?MZu... 2048:0240 00 02 42 4A 75 9F EA 00-02 70 00 50 52 51 91 92 ..BJu....p.PRQ.. 2048:0250 33 D2 F7 76 18 91 F7 76-18 42 87 CA F7 76 1A 8A 3..v...v.B...v.. 2048:0260 F2 8A 56 24 8A E8 D0 CC-D0 CC 0A CC B8 01 02 CD ..V$............ 2048:0270 13 59 5A 58 72 09 40 75-01 42 03 5E 0B E2 CC C3 .YZXr.@u.B.^.... 2048:0280 03 18 01 27 0D 0A 44 69-73 63 6F 20 69 6E 63 6F ...'..Disco inco 2048:0290 72 72 65 63 74 6F 20 20-20 FF 0D 0A 45 72 72 6F rrecto ...Erro 2048:02A0 72 20 45 2F 53 20 20 20-20 20 FF 0D 0A 43 61 6D r E/S ...Cam 2048:02B0 62 69 65 20 65 6C 20 64-69 73 63 6F 20 79 20 70 bie el disco y p 2048:02C0 72 65 73 69 6F 6E 65 20-75 6E 61 20 74 65 63 6C resione una tecl 2048:02D0 61 20 20 20 20 0D 0A 00-49 4F 20 20 20 20 20 20 a ...IO 2048:02E0 53 59 53 4D 53 44 4F 53-20 20 20 53 59 53 80 01 SYSMSDOS SYS.. 2048:02F0 00 57 49 4E 42 4F 4F 54-20 53 59 53 00 00 55 AA .WINBOOT SYS..U. 2048:0300 BE .

M RANGO DIRECCION: MOVE Mueve la zona de memoria delimitada por "rango" a la direccin "direccin". N NOMBRE: NAME Da un nombre de fichero sobre el que actan l y w. P: STEP Trace puede ser incmodo si no se quiere depurar el cdigo de las rutinas de interrupcin , o si ya se sabe el cdigo que hay en las subrutinas y tan slo interesa seguir avanzando sin entrar en ellas. En estos casos se usa p. Parmetros: <=dir_origen> <NUM_instrucciones> Resultados: es como el comando 'T' sin embargo si llamamos a una subrutina y usramos el comando 'T' entraramos dentro del cdigo de la subrutina, por lo que si ejecutamos una interrupcin de MS-DOS no sabramos que estamos haciendo
47

Ejemplo: -r AX=0261 BX=0000 CX=0000 DX=0061 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0107 NV UP EI PL NZ NA PO NC 2048:0107 3D5000 CMP AX,0050 -a 100 2048:0100 mov ax,0200 2048:0103 mov dl,61 2048:0105 int 21 2048:0107 -p =100 3 AX=0200 BX=0000 CX=0000 DX=0061 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0103 NV UP EI PL NZ NA PO NC 2048:0103 B261 MOV DL,61 AX=0200 BX=0000 CX=0000 DX=0061 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0105 NV UP EI PL NZ NA PO NC 2048:0105 CD21 INT 21 a AX=0261 BX=0000 CX=0000 DX=0061 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0107 NV UP EI PL NZ NA PO NC Q: QUIT Salir de debug y volver al DOS.

R: REGISTERS Sin parmetros, muestra el contenido de los registros de la CPU, as como la prxima instruccin a ejecutar. r registro muestra el contenido del registro especificado y cambia el prompt de "-" a ":" invitando a que se cambie su valor. Pulsando Enter sin ms lo deja como estaba. Parmetros: [registro] Resultado: Si especificamos un registro, DEBUG nos permite modificar el contenido de ese registro, si no lo hemos especificado, nos presenta por pantalla el contenido de los registros principales del procesador, adems nos muestra la instruccin apuntada por CS:IP Registro de flags: Para poder cambiar el registro de flags, hay que usar el comando "H F" y aparecer algo tal que as: NV UP EI PL NZ NA PO NC - ; meter aqu una lista de los indicadores que se quieran. Desbordamiento ( si/no)
48

Poner: OV Quitar: NV Direccin (reduccin / incremento) Poner: DN quitar UP Interrupcin (activar/desactivar) Poner: EI quitar: DI Signo (negativo / positivo) Poner: NG quitar: PL Cero (s / no) Poner: ZR quitar: NZ Acarreo Auxiliar (s / no ) Poner: AC quitar: NA Paridad (par / impar) Poner: PE quitar: PO Acarreo (s / no) Poner: CY quitar: NC Ejemplo: -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0100 NV UP EI PL NZ NA PO NC 2048:0100 92 XCHG DX,AX ; Ejemplo 2 -r ax AX 0000 :01 -r AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0100 NV UP EI PL NZ NA PO NC 2048:0100 92 XCHG DX,AX S: SEARCH Busca una secuencia de bytes o una cadena en el rango especificado, mostrando la direccin en que aparece en pantalla. s 100 500 cd 13 Busca todas las llamadas a la interrupcin 13h (cdigo mquina cdh 13h). s 100:0 ffff "virus" muestra las zonas de memoria del segmento 100h en que aparece la palabra "virus". T: TRACE Ejecuta la instruccin apuntada por cs:ip y vuelve a debug. Permite ejecutar paso a paso un programa y observar en cada instruccin el efecto producido. Si haciendo "trace" se llega a una subrutina (CALL) o a una interrupcin (INT) la siguiente instruccin que se ejecutar ser la primera de la subrutina o la primera de la rutina de atencin de la interrupcin correspondiente.

49

Parmetros: [< =direccin>] ; Direccin a partir de la cual se quiere que se tracee (OJO: HAY QUE PONER EL '=' ) <num_instrucciones> ; Nmero de instrucciones que hay que ejecutar Resultados: se ejecutan las <NUM_instrucciones> instrucciones a partir de CS:<direccin> (si se ha especificado <direccin>) o se ejecutan <NUM_instrucciones> a partir de CS:IP, si no se especifica el parmetro <NUM_instrucciones> se ejecuta una nica instruccin Ejemplo: -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0100 NV UP EI PL NZ NA PO NC 2048:0100 3D0000 CMP AX,0000 -r bx BX 0000 :2 -a 100 2048:0100 mov ax,bx 2048:0102 -t AX=0002 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0102 NV UP EI PL NZ NA PO NC 2048:0102 00AC01D8 ADD [SI+D801],CH DS:D801=74 ; Ejemplo 2 -r AX=0000 BX=0007 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0100 NV UP EI PL NZ NA PO NC 2048:0100 3D0000 CMP AX,0000 -a 100 2048:0100 mov ax,bx 2048:0102 mov cx,bx 2048:0104 -t 2 AX=0007 BX=0007 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0102 NV UP EI PL NZ NA PO NC 2048:0102 89D9 MOV CX,BX AX=0007 BX=0007 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2048 ES=2048 SS=2048 CS=2048 IP=0104 NV UP EI PL NZ NA PO NC 2048:0104 01D8 ADD AX,BX U : UNASSEMBLE

50

Desensambla una zona de memoria. Si no se le dan parmetros empieza a hacerlo en la direccin apuntada por cs:ip. Tambin se le puede decir qu zona se quiere ver con u <direccin> pudiendo ser la direccin absoluta (u segmento:desplazamiento) o relativa al segmento de cdigo actual (u desplazamiento). Si se da un rango de direcciones desensamblar esa zona: u 1000 2000 desensambla el cdigo que haya desde cs:1000 a cs:2000. Todos los nmeros son tratados como hexadecimales, as que u 1000 empieza a desensamblar desde la posicin 4096 (decimal) del segmento de cdigo. Parmetros: <dir_comienzo> [<dir_final>] Resultados: se desensamblan las direcciones de memoria a partir de CS:<dir_comienzo> hasta CS:<dir_final> ( <dir_final> es opcional ) Ejemplo: -u 100 11e 2050:0100 7403 JZ 0105 2050:0102 E97F00 JMP 0184 2050:0105 8B4EFA MOV CX,[BP-06] 2050:0108 E303 JCXZ 010D 2050:010A B90200 MOV CX,0002 2050:010D 83C108 ADD CX,+08 2050:0110 B82871 MOV AX,7128 2050:0113 50 PUSH AX 2050:0114 51 PUSH CX 2050:0115 9A1A025D2F CALL 2F5D:021A 2050:011A 0BC0 OR AX,AX 2050:011C 7463 JZ 0181 2050:011E 8B3E2A71 MOV DI,[712A] ; Ejemplo 2 -u 100 2050:0100 7403 JZ 0105 2050:0102 E97F00 JMP 0184 2050:0105 8B4EFA MOV CX,[BP-06] 2050:0108 E303 JCXZ 010D 2050:010A B90200 MOV CX,0002 2050:010D 83C108 ADD CX,+08 2050:0110 B82871 MOV AX,7128 2050:0113 50 PUSH AX 2050:0114 51 PUSH CX 2050:0115 9A1A025D2F CALL 2F5D:021A 2050:011A 0BC0 OR AX,AX 2050:011C 7463 JZ 0181 2050:011E 8B3E2A71 MOV DI,[712A]
51

W: WRITE La sintaxis completa es w [direccin] [unidad] [sector] [n sectores] Con todos los parmetros escribe en la unidad y sectores dados el contenido de la direccin de memoria. Pasndole slo la direccin escribe en el fichero definido con n tantos bytes como determinen el par de registros BX:CX a partir de la posicin de memoria dada.

52

BIBLIOGRAFIA www.monografias.com/trabajos/manualdos/manualdos.shtml www.matuk.com/teclado/1993/enero/ene_111993.html www.todoexpertos.com/herramientas/leernsgpublico.asp?idproceso=409936 www.matuk.com/teclado/1994/enero/ene_101994.html www.atlas-iap.es/"pepcardo/index.shtml www.experts.exchange.com/Operating-Systems http://es.wikipedia.org/wiki/MS-DOS http://es.wikipedia.org/wiki/Ubuntu

53

Вам также может понравиться