Lenguaje Ensamblador MIPS: Preguntas Clave
48 Questions
2 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es la función de la seudo-instrucción 'li'?

  • Carga inmediata una constante en un registro (correct)
  • Suma dos registros
  • Copia un registro a otro
  • Realiza un brinco en el código
  • ¿Qué instrucción de lenguaje ensamblador se utiliza para copiar el contenido de un registro a otro?

  • addi
  • sub
  • move (correct)
  • add
  • ¿Qué representa '000000' en el formato de instrucción del lenguaje máquina?

  • Código de instrucción para operaciones de salto
  • Código de todas las instrucciones R (correct)
  • Código de instrucción para operaciones de carga
  • Número del registro destino
  • ¿Cuál de los siguientes NO es un formato de instrucción en MIPS?

    <p>Formato C</p> Signup and view all the answers

    ¿Qué componente del código máquina 'add $t0, $s1, $s2' corresponde al número del registro $t0?

    <p>01001</p> Signup and view all the answers

    En el formato I, ¿qué tipo de operando se incluye?

    <p>Número inmediato</p> Signup and view all the answers

    ¿Qué se entiende por lenguaje de máquina?

    <p>Lenguaje binario que entiende el hardware</p> Signup and view all the answers

    ¿Qué instrucción se traduce como '000000fffffgggggddddd00000100000'?

    <p>add</p> Signup and view all the answers

    ¿Cuál es la instrucción que mueve el valor de LO a un registro?

    <p>mflo</p> Signup and view all the answers

    ¿Qué instrucción se utiliza para cargar una palabra de la memoria a un registro?

    <p>lw</p> Signup and view all the answers

    ¿Cómo se indica el segmento de datos en un programa MIPS?

    <p>.data</p> Signup and view all the answers

    ¿Qué tipo de datos se almacenan en el segmento de datos dinámicos?

    <p>Espacio asignado con malloc</p> Signup and view all the answers

    ¿Cuál es el propósito de la instrucción sw?

    <p>Almacenar un valor de registro en memoria</p> Signup and view all the answers

    El segmento de texto comienza a partir de qué dirección en un sistema MIPS?

    <p>0x40000000</p> Signup and view all the answers

    ¿Dónde se almacenan los stack frames en un sistema MIPS?

    <p>Segmento de pila</p> Signup and view all the answers

    ¿Cuál es el tamaño de una palabra (word) en MIPS?

    <p>4 bytes</p> Signup and view all the answers

    ¿Cómo se declara un string en el código MIPS?

    <p>mssg:.asciiz 'Hola mundo'</p> Signup and view all the answers

    ¿Cuál es la función principal de la instrucción syscall en MIPS?

    <p>Permitir la entrada y salida de datos.</p> Signup and view all the answers

    En el ejemplo dado, ¿qué valor se le asigna a la variable z?

    <p>17</p> Signup and view all the answers

    ¿Qué instrucción se utiliza para imprimir un string en la consola en MIPS?

    <p>li $v0, 4</p> Signup and view all the answers

    ¿Cuál es la función de los registros $x0 y $v0 en un syscall?

    <p>$x0 siempre contiene cero y $v0 devuelve el valor resultante.</p> Signup and view all the answers

    ¿Cuál es el primer paso para hacer una llamada al sistema en MIPS?

    <p>Cargar el número de llamada en $v0.</p> Signup and view all the answers

    ¿Qué tipo de instrucciones son las pseudo-instrucciones en MIPS?

    <p>Instrucciones que son alternativas a las instrucciones reales.</p> Signup and view all the answers

    ¿Qué instrucción se utiliza para finalizar un programa en MIPS?

    <p>li $v0, 10</p> Signup and view all the answers

    ¿Cuál es el resultado de aplicar la operación sll $t2, $s0, 4?

    <p>t2 se multiplica por 16.</p> Signup and view all the answers

    ¿Cuál es la función principal de la operación nor en lógica?

    <p>Funciona como un operador not.</p> Signup and view all the answers

    ¿Qué operación lógica se utiliza para extraer información de un número binario usando una máscara?

    <p>and</p> Signup and view all the answers

    Al realizar un corrimiento a la derecha con srlv $r0, $r1, $r2, ¿qué resultado se obtiene?

    <p>r0 toma el valor de r1 desplazado a la derecha r2 veces.</p> Signup and view all the answers

    ¿Qué hace la operación andi $r0, $r1, C?

    <p>Realiza un and entre $r1 y una constante C.</p> Signup and view all the answers

    ¿Cómo se utiliza el corrimiento a la izquierda para multiplicar un número?

    <p>Desplazando los bits hacia la izquierda.</p> Signup and view all the answers

    ¿Cuál es la principal característica de los registros en MIPS?

    <p>Tienen una capacidad de 4 bytes.</p> Signup and view all the answers

    ¿Cuál es el resultado de aplicar la máscara 00111100 a la cadena binaria 11100101 con un AND?

    <p>00100100</p> Signup and view all the answers

    ¿Qué instrucciones se consideran aritméticas en MIPS?

    <p>Suma, resta, multiplicación y división.</p> Signup and view all the answers

    ¿Para qué se utiliza el resultado de un corrimiento a la derecha en operaciones lógicas?

    <p>Para dividir un número entre una potencia de dos.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre la memoria en MIPS es incorrecta?

    <p>La dirección de una palabra es la dirección del byte más bajo.</p> Signup and view all the answers

    ¿Cuántos registros enteros hay en la arquitectura MIPS?

    <p>32 registros.</p> Signup and view all the answers

    ¿Qué tipo de operaciones realizan las instrucciones de transferencia de datos en MIPS?

    <p>Carga de memoria a registro y almacenamiento de registro a memoria.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre la configuración de MIPS es correcta?

    <p>Utiliza 32 bits para direccionar la memoria.</p> Signup and view all the answers

    ¿Qué tipo de instrucciones se ocupan para realizar operaciones lógicas en MIPS?

    <p>AND, OR y corrimiento (shift).</p> Signup and view all the answers

    ¿Qué es un registro en el contexto de MIPS?

    <p>Una memoria integrada en la CPU con acceso rápido.</p> Signup and view all the answers

    ¿Qué instrucción carga el valor de la variable g en el registro $s1?

    <p>lw $s1, 0($t0)</p> Signup and view all the answers

    ¿Cómo se declara una variable entera en MIPS?

    <p>x: .word -1</p> Signup and view all the answers

    ¿Cuál de las siguientes instrucciones actualiza la variable f en memoria?

    <p>sw $s0, f</p> Signup and view all the answers

    ¿Qué tipo de datos se manejan en este curso según el contenido?

    <p>Enteros, arreglos y strings</p> Signup and view all the answers

    ¿Qué instrucción se utiliza para obtener la dirección de la variable x?

    <p>la $t0, x</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones es correcta sobre las instrucciones MIPS?

    <p>La arquitectura MIPS es una arquitectura load/store.</p> Signup and view all the answers

    ¿Qué representación tiene la declaración 'x:.word 17'?

    <p>x es un apuntador a 4 bytes que contiene el valor 17.</p> Signup and view all the answers

    ¿Cuál es el resultado de la instrucción 'add $t0, $s1, $s2'?

    <p>Suma el valor de g y h y lo guarda en $t0.</p> Signup and view all the answers

    Study Notes

    Lenguaje Ensamblador MIPS

    • MIPS (Microprocesador sin etapas de tubería entrelazadas) es una familia de microprocesadores RISC desarrollada por MIPS Technologies desde 1981 y por Imagination Technologies desde 2012.

    Características de MIPS

    • Principio de regularidad: Todas las instrucciones ocupan 4 bytes (32 bits).
    • Principio de simplicidad: Instrucciones sencillas. Solo hay 3 formatos de instrucción.

    Usos de MIPS

    • En consolas de videojuegos (Nintendo y Sony).
    • En sistemas embebidos (routers Cisco, dispositivos Windows CE, gateways, entre otros).

    Clases de Instrucciones

    • Aritméticas: Suma, resta, multiplicación, división.
    • Transferencia de datos: Carga (load) de memoria a registro, almacena (store) de registro a memoria.
    • Lógicas: AND, OR, desplazamiento (shift).
    • Brincos condicionales.
    • Brincos incondicionales.
    • Hay instrucciones para números reales y enteros.

    Operandos

    • Registros.
    • Memoria.

    Registros

    • Un registro es una memoria integrada en la CPU.
    • Poseen poca capacidad (4 bytes o 32 bits en MIPS), pero de acceso rápido.
    • Hay 32 registros enteros ($s0-$s7, $t0-$t9, $a0-$a3, $v0-$v1, $zero, $gp, $fp, $sp, $ra, $at).
    • Hay 32 registros flotantes ($f0-$f31).
    • Se utilizan para guardar valores temporales y resultados de operaciones aritméticas.

    Memoria

    • Se usa para guardar variables.
    • MIPS usa byte addressing.
    • La memoria es un arreglo de bytes.
    • La dirección de una palabra es la dirección del byte más alto.
    • Las palabras son de 4 bytes (32 bits).
    • Los registros son de 4 bytes (32 bits).
    • La memoria está alineada. Las palabras deben comenzar en direcciones que son múltiplo de 4.
    • MIPS se puede configurar por hardware como big-endian o little-endian.
    • Se usan 32 bits para direccionar la memoria.
    • La memoria tiene:
      • 2³² bytes con direcciones desde 0 hasta 2³² – 1.
      • 2³⁰ palabras con direcciones desde 0 hasta 2³² – 4.

    Registros vs Memoria

    • La mayoría de las CPUs modernas mueven las variables de la memoria principal a los registros, operan sobre ellos y regresan el resultado a la memoria.
    • Esto se conoce como arquitectura load/store.
    • MIPS emplea la arquitectura load/store.

    Instrucciones Aritméticas

    • add: suma de registros.
    • addu: suma de registros sin signo.
    • addi: suma inmediata.
    • addiu: suma inmediata sin signo.
    • sub, subu: restas.
    • div, divu: divisiones.
    • mult, multu: multiplicaciones.

    Instrucciones MIPS Aritméticas

    • La suma y la resta tienen 3 operandos.
    • El orden de los operandos es fija (primero el destino, luego las fuentes).

    Instrucciones Aritméticas (Ejemplos)

    • add $r0, $r1, $r2 # $r0 ← $r1 + $r2
    • addi $r0, $r1, C # $r0 ← $r1 + C
    • addu $r0, $r1, $r2# $r0 ← $r1 + $r2
    • addiu $r0, $r1, $r2# $r0 ← $r1 + C

    Instrucciones Aritméticas (Overflow)

    • Si al sumar se produce overflow, add y addi lo indican.
    • addu y addiu lo ignoran.

    Instrucciones Aritméticas (otras)

    • Las restas sub, subu funcionan de la misma manera.
    • Las divisiones y multiplicaciones tienen dos argumentos.
    • Dejan el resultado en dos registros especiales: LO y HI.
    • Hay instrucciones para copiar datos de LO y HI a los registros normales.

    Instrucciones Aritméticas (mult, div)

    • mult $r0, $r1 # $r0 × $r1
    • div $r0, $r1 # $r0 / $r1

    Transferencia de datos

    • mflo: mueve el valor de LO a un registro.
    • mfhi: mueve el valor de HI a un registro.
    • lw: mueve (carga) una palabra (4 bytes) de memoria a un registro.
    • sw: mueve (almacena) el valor de un registro (4 bytes) a memoria.

    Usos de la memoria

    • Por convención, los sistemas basados en MIPS dividen la memoria en tres segmentos:
      • Segmento de texto (text segment)
      • Segmento de datos (data segment)
      • Segmento de pila (stack segment)
    • El segmento de texto, a partir de la dirección 0x400000, es donde se guarda el código del programa.
    • A su vez, el segmento de datos consta de dos partes:
      • Datos estáticos: Contiene variables de tamaño fijo que se necesitan durante todo el programa.
      • Datos dinámicos: Contiene variables que se crean durante el programa.
    • El segmento de pila (stack segment), a partir de la dirección 0x7FFFFFFC, es donde se guardan los stack frames.

    Seudo-instrucciones

    • Son instrucciones que un programa ensamblador reconoce pero que no existen en la definición del ISA.
    • El ensamblador mapea cada seudo-instrucción a dos o más instrucciones reales.
    • Se usan para comodidad de los programadores. Algunos ejemplos: li, move.

    Lenguaje Máquina

    • El lenguaje de máquina es un lenguaje binario.
    • El hardware solo entiende bits.
    • El ensamblador traduce cada instrucción de lenguaje ensamblador a lenguaje de máquina.
    • Por ejemplo, la instrucción add $t0, $s1, $s2 se traduce en binario a 000000100011001001001000001000002 → 0232482016.

    Formatos de Instrucciones

    • En MIPS, hay tres formatos de instrucción: R, I y J.

    Operaciones Lógicas

    • Shift (desplazamiento) a la izquierda (sll, sllv), a la derecha (srl, srlv).
    • AND, ANDI, OR, ORI, XOR, XORI, NOR, NORI.

    Instrucciones de Control

    • Brincos condicionales (beq, bne, slt - comparar para brincar).
    • Brincos incondicionales (j, jr, jal).

    Ciclo While

    • Traducción mecánica de ciclos while, do-while y for a MIPS.

    Arreglos de Enteros

    • Se declaran en el segmento de datos usando la directiva .word.
    • Para acceder a los elementos del arreglo, se utiliza un índice y el offset correspondiente.

    Llamadas a Funciones

    • En MIPS, los argumentos se pasan en registros como $a0, $a1, $a2, $a3.
    • Los valores de regreso se devuelven en los registros $v0, $v1.

    Stack Frame

    • El llamador tiene la obligación de guardar ciertos registros
    • El stack frame involucra la gestión de memoria para argumentos y la preservacion de registros.
    • El stack frame se guarda en la sección de la pila. Salvar los registros, reservar espacio para el nuevo frame y ajustar el stack pointer.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    MIPS Instruction Set PDF

    Description

    Pon a prueba tus conocimientos sobre el lenguaje ensamblador MIPS con este cuestionario. Aquí encontrarás preguntas sobre instrucciones, formatos y componentes del código máquina. Ideal para estudiantes de informática y electrónica.

    More Like This

    MIPS Instruction Formats
    12 questions
    MIPS Instruction Set Cheat Sheet
    6 questions
    MIPS Control Flow Instructions Quiz
    8 questions

    MIPS Control Flow Instructions Quiz

    CuteWatermelonTourmaline avatar
    CuteWatermelonTourmaline
    Use Quizgecko on...
    Browser
    Browser