You are on page 1of 5

Equipo pequeo hombre El equipo Little Man (LMC) fue creado por el Dr.

Stuart Madnick como un modelo de instruccin. Los modelos de LMC una simple von Neumann arquitectura de computadores, por lo que tiene todas las caractersticas bsicas de un ordenador moderno. La LMC se puede programar en la mquina (aunque por lo general en decimal), o cdigo ensamblador. Contenido Una arquitectura de LMC 2 Ejecucin del ciclo 3 LMC comandos: numrico 4 LMC comandos: mnemonic 4.1 Mnemnico ejemplo, el uso y el simulador de LMC 5 Usar etiquetas 5.1 Etiqueta de ejemplo, el uso LMC arquitectura El modelo de LMC se basa en el concepto de un pequeo hombre encerrado en una habitacin pequea. En un extremo de la sala, hay 100 buzones de correo (la memoria), numerados del 0 al 99, que cada uno puede contener una instruccin de 3 dgitos. Adems, hay dos buzones de correo en el otro extremo marcado bandeja de entrada y de salida que se utilizan para recibir y enviar datos. En el centro de la habitacin, hay un rea que contiene un simple 2 funciones (suma y resta) calculadora conocido como el acumulador y un contador reseteable conocido como el contador de programa. El contador de programa es similar a lo que doorperson utiliza para llevar un registro de cuntas personas han entrado en una instalacin - se puede contar hasta uno, o puede ser puesta a 0. Como se especifica en la arquitectura de von Neumann, la memoria contiene instrucciones y datos. El usuario carga los datos en los buzones y luego las seales del pequeo hombre para comenzar la ejecucin. Ejecucin del ciclo El pequeo hombre realiza los siguientes pasos para ejecutar un programa: Comprobar el contador de programa, vaya al buzn de correo con el nmero y la captacin de la instruccin Incrementar el contador de programa (es decir, aadir uno al valor actual, de modo que ahora se refiere al buzn de correo siguiente al que se acceder en el prximo ciclo) Decodificar la instruccin (que incluye la determinacin de la accin a realizar y el buzn en el que se llevar a cabo) Ejecutar la accin Repetir el ciclo Vase tambin: Ciclo de Instruccin LMC comandos: numrico Mientras que la LMC se refleja el funcionamiento real de los procesadores binarios, se realiz la

simplificacin de los nmeros decimales para minimizar la complejidad para los estudiantes que no pueden trabajar cmodamente en el sistema binario / hexadecimal. Cada instruccin de LMC es un nmero decimal de 3 dgitos. El primer dgito representa el comando a realizar y los dos ltimos dgitos representan la direccin del buzn de afectados por el comando. Instrucciones 1xx - ADD - Tome el valor almacenado en el buzn de correo xx y agregarlo a cualquier valor que se encuentra actualmente en el acumulador. 2xx - RESTA - Tome el valor almacenado en el buzn de correo xx y restarlo de cualquier valor que se encuentra actualmente en el acumulador. 3xx - TIENDA - Tomar el valor del acumulador (no destructiva) y gurdelo en xx buzn de correo (destructiva). 5xx - CARGA - Tomar el valor de buzn xx (no destructiva) y entrar en l en el acumulador (destructiva). 6xx - RAMA (incondicional) - Restablecer el contador de programa a la xx valor. Es decir, xx ser la siguiente instruccin ejecutada. 7xx - BRANCH IF ZERO - Si el acumulador contiene el valor 0, restablecer el contador del programa del xx de valor. De lo contrario, no hacer nada. 8xx - SUCURSAL si es positivo - Si el acumulador es 0 o positivo, restablecer el contador de programa para el valor xx. De lo contrario, no hacer nada. 901 - ENTRADA - ir a la carpeta, buscar el valor del usuario, y lo puso en el acumulador (destructivo) 902 - SALIDA - Recuperar el valor del acumulador (no destructiva), y lo puso en la bandeja de salida para que el usuario lea. 000 - HALT - Deje de trabajar. Ejemplo de un programa Este programa tiene dos nmeros como entrada y salidas de la diferencia. Notas buzn de Instruccin 00 901 Bandeja de entrada -> ACUMULADOR buscar el primer nmero 01 308 ACCUMULATO R -> Memoria [08] que se mueven fuera del camino 02 901 Bandeja de entrada -> ACUMULADOR buscar el segundo nmero 03 309 ACCUMULATO R -> Memoria [09] que se mueven fuera del camino 04 MEMORIA 508 [08] -> ACUMULADOR ahora que las dos entradas se recuperan, mover la parte posterior primero en el acumulador 05 209 ACCUMULATO R = acumulador - MEMORIA [09] Nmero de restar segundos 06 902 ACCUMULATO R -> salida Bandeja de salida del resultado para el usuario 07 000 HALT hemos terminado! LMC comandos: mnemonic CARGA mnemnico - LDA numrica / cdigo de la mquina - 5 Cargar el contenido del buzn dado en el acumulador (calculadora). Nota: el contenido del buzn no se cambian. TIENDA mnemnico - STA numrico / de cdigo de mquina - 3

Guarde el contenido del acumulador (calculadora) para el buzn de la direccin indicada. Nota: el contenido de la accumlator no se cambian. AADIR mnemnico - Aadir numrica / cdigo de la mquina - 1 Agregue el contenido del buzn dado en el acumulador (calculadora). Nota: el contenido del buzn no se cambian, y las acciones de los acumuladores no se definen las instrucciones que aadir las cantidades que de ms de 3 dgitos. RESTA mnemnico - cdigo numrico de la mquina SUB / - 2 Resta el contenido del buzn dado desde el acumulador (calculadora). Nota: el contenido del buzn no se cambian, y las acciones de los acumuladores no estn definidos para restar instrucciones que hacen que los resultados negativos - sin embargo, un indicador negativo se establecer de modo que BRP puede ser utilizado correctamente (ver ms abajo). ENTRADA mnemnico - INP numrico / de cdigo de mquina - 901 Copiar el valor de la "en la caja" en el acumulador (calculadora). Mnemnico SALIDA - cdigo numrico salida / de la mquina - 902 Copie el valor del acumulador (calculadora) para la "caja de fuera". Nota: el contenido de la accumlator no se cambian. Mnemnico END - Equipo de Alto Nivel numrico / cdigo de la mquina - 000 Hace que el equipo del hombre poco para detener la ejecucin de su programa. RAMA Si es cero mnemnico - BRZ numrica / cdigo de la mquina - 7 Si el contenido de la accululator (calculadora) son 000, el PC (contador de programa) se establecer en la direccin indicada. Nota: puesto que el programa se almacena en la memoria, los datos y las instrucciones del programa tienen la misma direccin / ubicacin formato. Sucursal si mnemnico cero o positivo - BRP numrica / cdigo de la mquina - 8 Si el contenido de la accululator (calculadora) son 000 o positivo (es decir, la bandera negativo no est definido), el PC (contador de programa) se establecer en la direccin indicada. Nota: puesto que el programa se almacena en la memoria, los datos y las instrucciones del programa tienen la misma direccin / ubicacin formato. PODER SIEMPRE mnemnico - BRA numrica / cdigo de la mquina - 6 Establecer el contenido del contador de programa a la direccin indicada. DATOS mnemnico - DAT cdigo numrico / de la mquina - no

Esta es una instruccin de ensamblador que simplemente carga el valor en el buzn disponible. DAT tambin puede ser usado en conjunto con las etiquetas para declarar variables. Por ejemplo, DAT 984 almacenar el valor 984 en un buzn. Mnemnico ejemplo, el uso y el simulador de LMC Usando lo anterior nemotcnica, la versin en lenguaje ensamblador del programa para restar dos nmeros es la siguiente. Este programa puede ser compilado y ejecutado en el siguiente simulador de LMC. Este simulador java applets basados incluye instrucciones completas y programas de ejemplo, un compilador para convertir el conjunto en cdigo de mquina, una interfaz de control para ejecutar y supervisar los programas, y una descripcin paso a paso detallado de cada instruccin de LMC. INP STA 08 INP STA 09 LDA 08 SUB 09 SALIDA Equipo de Alto Nivel El uso de etiquetas La conveniencia de la mnemotecnia reunidos se desprende de este ejemplo - El programador ya no es necesario memorizar una serie de annimos cdigos numricos, y ahora se puede programar con un conjunto de instrucciones ms memorable. Sin embargo, el programador sigue siendo necesaria para mantener manualmente un registro de ubicacin del buzn. Adems, si una instruccin iba a ser introducido en algn lugar del programa, la instruccin HLT final sera bajar a la direccin 08. Supongamos que el usuario introduce 600 en la primera entrada. Este valor se sobrescribe el 000 (TCP) de instrucciones. Desde el ao 600 significa "Poder al buzn de 0", el programa, en vez de detener, se quedan atascados en un bucle sin fin. Para solucionar esta dificultad, la mayora de los lenguajes ensambladores (incluido el LMC) permiten el uso de etiquetas. Una etiqueta es simplemente una palabra siempre como un nombre a la izquierda de una lnea en particular en el texto del programa, que el ensamblador se convertir en la direccin apropiada en el momento del montaje. Cuando se ve a la derecha de la instruccin, las etiquetas se tomar el valor de la direccin calculada. Las etiquetas se utilizan comnmente para: identificar a una instruccin en particular como un objetivo de una instruccin de identificar el espacio como una variable llamada (con DAT) cargar datos en el programa en el tiempo de montaje para su uso por el programa. Este uso no es evidente hasta que uno considera que no hay forma de aadir una a un contador. Uno podra preguntar al usuario introducir una al principio, pero sera mejor tener esta carga en el momento del montaje

Etiqueta de ejemplo, el uso Este programa tendr una entrada de usuario y la cuenta regresiva a cero. INP Subbucle ONE / / Esta direccin se llama LOOP, restar el valor almacenado en la UNA SALIDA BRZ SALIR / / Si estamos en 0, a continuacin, saltar a la ubicacin SALIR OOP BRA / / No estamos en 0, se remontan al inicio del ciclo SALIR Equipo de Alto Nivel UN DAT 1 / / Poner el valor 1 en este buzn de correo, y lo llaman UN (declaracin de variables)

You might also like