wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

1er. parcial Software base

Total questions: 90

Worksheet time: 1hrs 14mins

Name
Class
Date
1.

¿Qué unidad del procesador se encarga de realizar operaciones aritméticas y lógicas?

a)

ALU (Arithmetic Logic Unit)

b)

Unidad de control

c)

Registros de propósito general

d)

Bus de datos

2.

¿Cuál de los siguientes es un registro de propósito especial en una CPU x86?

a)

Registro FLAGS

b)

Registro IP

c)

Registro AX

d)

Registro GPR

3.

¿Cuál es la principal ventaja del uso de registros en los procesadores?

a)

Permiten acceso ultrarrápido a datos

b)

Reducen el tamaño del procesador

c)

Eliminan la necesidad de memoria RAM

d)

Incrementan la capacidad de almacenamiento

4.

¿Cuál de los siguientes es un procesador multinúcleo?

a)

Intel Core i9

b)

Intel 8086

c)

ARM Cortex M0

d)

Zilog Z80

5.

¿Qué tecnología permite ejecutar múltiples hilos en un mismo núcleo de procesador?

a)

Hyper-Threading

b)

Overclocking

c)

RISC

d)

Pipelining

6.

¿Cuál de los siguientes registros almacena la dirección de la siguiente instrucción a ejecutar?

a)

Registro IP (Instruction Pointer)

b)

Registro SP

c)

Registro AX

d)

Registro FLAGS

7.

¿Cuál es la principal función de los registros de estado en un procesador?

a)

Indicar condiciones como overflow, zero flag o carry flag

b)

Almacenar direcciones de memoria

c)

Guardar datos temporales

d)

Gestionar el acceso a la memoria

8.

¿Qué tipo de procesadores están optimizados para eficiencia energética y rendimiento en dispositivos móviles?

a)

Procesadores ARM

b)

Procesadores x86

c)

Procesadores CISC

d)

Procesadores de 8 bits

9.

¿Cuál es un ejemplo de software que utiliza registros para gestionar procesos?

a)

Sistema operativo

b)

Antivirus

c)

Navegador web

d)

Hoja de cálculo

10.

¿Qué tecnología emergente busca mejorar el rendimiento de los procesadores mediante el uso de bits cuánticos?

a)
Procesadores de 5 nm
b)
Computación clásica
c)
Redes neuronales avanzadas
d)
Computación cuántica
11.

¿Qué característica distingue a la memoria RAM de la memoria ROM?

a)
Es de acceso secuencial
b)
Almacena datos temporalmente
c)
Se utiliza solo para la memoria caché
d)
Es volátil
12.

¿Cuál es una ventaja de la memoria SRAM sobre la DRAM?

a)

Es más rápida y consume menos energía

b)
Es más cara
c)
Tiene menor capacidad de almacenamiento
d)
Es más lenta y consume más energía
13.

¿Qué tipo de direccionamiento almacena el valor directamente en la instrucción?

a)
Direccionamiento absoluto
b)
Direccionamiento directo
c)
Direccionamiento por registro
d)
Direccionamiento inmediato
14.

¿Cuál de los siguientes modos de direccionamiento usa un puntero para acceder a la memoria?

a)
Direccionamiento indirecto
b)
Direccionamiento directo
c)
Direccionamiento absoluto
d)
Direccionamiento por desplazamiento
15.

¿Cuál es la fase del ciclo de instrucción en la que la CPU obtiene la instrucción desde la memoria?

a)
Fetch (Obtención)
b)
Load (Carga)
c)
Transfer (Transferencia)
d)
Store (Almacenamiento)
16.

¿Cómo se representa la información en las computadoras digitales?

a)
En formato decimal
b)
En caracteres ASCII
c)
En formato binario (0s y 1s)
d)
En código Morse
17.

¿Cuál de los siguientes tipos de direccionamiento usa el contador de programa para calcular la dirección?

a)
Direccionamiento relativo
b)
Direccionamiento de pila
c)
Direccionamiento por registro
d)
Direccionamiento indirecto
18.

¿Qué ventaja tiene el direccionamiento por registro?

a)
Aumenta el tamaño de la memoria caché
b)
Facilita la programación en ensamblador
c)
Reduce el consumo de energía del procesador
d)
Es más rápido porque evita accesos a memoria
19.

¿Qué impacto tiene el ciclo Fetch-Decode-Execute en un sistema operativo?

a)
Administra procesos siguiendo este ciclo
b)
Elimina la necesidad de sistemas operativos
c)
Aumenta la velocidad del procesador
d)
Facilita la programación en lenguajes de alto nivel
20.

¿Qué técnica permite ejecutar varias instrucciones al mismo tiempo en un procesador moderno?

a)
Cache optimization
b)
Single-threading
c)
Pipelining
d)
Memory allocation
21.

¿Cuál es una característica de la arquitectura de Von Neumann?

a)
Uso en todos los tipos de computadoras
b)
Un solo bus de datos compartido
c)
Memoria unificada para datos e instrucciones
d)
Procesamiento exclusivamente secuencial
22.

¿Qué tecnología ha mejorado la eficiencia de los sistemas multiprocesador?

a)
Uso de múltiples hilos por núcleo
b)
Incremento de la caché L3
c)
Arquitectura de un solo núcleo
d)
Múltiples núcleos en un solo procesador
23.

¿Qué se utiliza en las redes de computadoras de arquitecturas clásicas para la comunicación entre dispositivos?

a)
Buses de comunicación
b)
Protocolos de enrutamiento
c)
Cables de alimentación
d)
Tarjetas de red
24.

¿Qué sistema de memoria es clave en las arquitecturas clásicas?

a)
Almacenamiento en cinta magnética
b)
Acceso directo a la memoria sin procesador
c)
Gestión de datos en memoria RAM y caché
d)
Uso de memoria virtual exclusivamente
25.

¿Qué importancia tiene la seguridad en sistemas clásicos?

a)
Aumenta la vulnerabilidad de los datos
b)
Facilita el acceso a información sensible
c)
Protege la integridad de los datos y evita accesos no autorizados
d)
Reduce la necesidad de copias de seguridad
26.

¿Qué tipo de datos procesa una computadora digital?

a)
Datos en formato decimal
b)
Información en formato de imagen
c)
Información en formato binario (0s y 1s)
d)
Datos en lenguaje de programación
27.

¿Cuál es una de las principales aplicaciones de las computadoras digitales en la industria?

a)
Aumento de la producción de papel
b)
Desarrollo de software de entretenimiento
c)
Control manual de maquinaria
d)
Automatización de procesos industriales
28.

¿Qué componente es esencial en una computadora digital?

a)
Microprocesador
b)
Placa base
c)
Fuente de alimentación
d)
Disco duro
29.

¿Qué modelo de arquitectura define la mayoría de las computadoras digitales actuales?

a)
Arquitectura de Memoria
b)
Arquitectura Von Neumann
c)
Arquitectura de Procesador
d)
Arquitectura de Red
30.

¿Cuál es una ventaja del sistema binario en computadoras digitales?

a)
Reduce el consumo de energía
b)
Aumenta la complejidad del hardware
c)
Facilita la programación en C++
d)
Facilita la representación y procesamiento de información
31.

¿Qué es un lenguaje de máquina?

a)
Código binario que la CPU interpreta directamente
b)
Instrucciones de ensamblador
c)
Código fuente de un programa
d)
Lenguaje de programación de alto nivel
32.

¿Qué nivel de la máquina multinivel se encarga de la ejecución de instrucciones en el procesador?

a)
Nivel de red
b)
Nivel de sistema operativo
c)
Nivel de microarquitectura
d)
Nivel de hardware
33.

¿Cuál de los siguientes dispositivos utiliza una arquitectura multinivel?

a)
Un teléfono inteligente
b)
Una computadora portátil
c)
Un reloj digital
d)
Un servidor en la nube
34.

¿Qué nivel de la máquina multinivel permite la interacción del usuario con el software?

a)
Nivel de red
b)
Nivel de programación de alto nivel
c)
Nivel de sistema operativo
d)
Nivel de aplicaciones de usuario
35.

¿Qué importancia tiene el modelo jerárquico en la arquitectura multinivel?

a)
Mejora la seguridad de la red
b)
Aumenta la complejidad del sistema
c)
Reduce el tiempo de respuesta del servidor
d)
Permite la compatibilidad entre tecnologías y dispositivos
36.

¿Qué describe la estructura de máquina multinivel?

a)
Un sistema de almacenamiento en la nube
b)
Un modelo de red de igual a igual
c)
Un enfoque de programación lineal
d)
Un modelo jerárquico donde cada nivel proporciona servicios al nivel superior
37.

¿Cuál es un ejemplo de aplicación de la arquitectura multinivel en hardware y software?

a)
Un servidor en la nube gestionando múltiples máquinas virtuales
b)
Un sistema operativo corriendo sin aplicaciones
c)
Un software de edición de imágenes en un dispositivo sin memoria
d)
Un servidor local sin virtualización
38.

¿Qué nivel de la máquina multinivel define la forma en que los circuitos implementan instrucciones?

a)
Nivel de hardware
b)
Nivel de sistema operativo
c)
Nivel de red
d)
Nivel de microarquitectura
39.

¿Qué nivel gestiona recursos y provee interfaces para la ejecución de programas?

a)
Nivel de firmware
b)
Nivel de red
c)
Nivel de usuario avanzado
d)
Nivel de sistema operativo
40.

¿Qué tecnología permite ejecutar múltiples sistemas operativos en un solo hardware?

a)
Virtualización
b)
Optimización de red
c)
Sistemas de archivos distribuidos
d)
Emulación de hardware
41.

¿Qué nivel permite la ejecución de programas sin preocuparse por la interacción con el hardware?

a)
Nivel de programación de bajo nivel
b)
Nivel de sistema operativo
c)
Nivel de microcontrolador
d)
Nivel de lenguaje de alto nivel
42.

¿Cómo se comunican los distintos niveles de la máquina multinivel?

a)
Mediante comunicación por voz
b)
A través de protocolos de red
c)
A través de interfaces bien definidas
d)
Con cables de alimentación
43.

¿Cuál es una ventaja del modelo multinivel en computadoras modernas?

a)
Aumenta el tiempo de acceso a la memoria
b)
Facilita el uso de hardware obsoleto
c)
Incrementa la complejidad del sistema
d)
Optimiza la eficiencia y escalabilidad del sistema
44.

¿Qué componente es crucial para la ejecución de instrucciones en el nivel de microarquitectura?

a)
Unidad de control
b)
Memoria RAM
c)
Disco duro
d)
Pipeline de ejecución
45.

¿Qué nivel de la estructura multinivel es donde interactúan los usuarios con la computadora?

a)
Nivel de sistema operativo
b)
Nivel de red
c)
Nivel de aplicaciones de usuario
d)
Nivel de firmware
46.

¿Cuál método genera un archivo ejecutable?

(a)  

47.

¿Cuál traduce y ejecuta el código línea por línea?

(a)  

48.

¿Cuál trabaja con lenguaje ensamblador?

(a)  

49.

¿Qué método traduce todo el código antes de ejecutarlo?

(a)  

50.

¿Qué método traduce instrucciones en lenguaje ensamblador a lenguaje máquina?

(a)  

51.

¿Qué método es más lento en tiempo de ejecución?

(a)  

52.

¿Qué método permite detectar errores antes de la ejecución del programa?

(a)  

53.

¿Qué método ejecuta instrucciones sin generar un archivo ejecutable?

(a)  

54.

¿Cuál de estos métodos requiere menos memoria en ejecución?

(a)  

55.

¿Qué método permite probar código en tiempo real sin necesidad de compilar?

(a)  

56.

¿Cuál de estos métodos se usa para traducir código ensamblador?

(a)  

57.

¿Qué método necesita que el programa sea completamente traducido antes de ejecutarse?

(a)  

58.

¿Cuál es más eficiente en términos de velocidad de ejecución?

(a)  

59.

¿Cuál permite modificar código y verlo ejecutado de inmediato?

(a)  

60.

¿Qué método es común en lenguajes como Python y JavaScript?

(a)  

61.

¿Cuál es el método utilizado por lenguajes como C y C++?

(a)  

62.

¿Qué método traduce lenguaje de bajo nivel a lenguaje máquina?

(a)  

63.

¿Qué método detecta errores antes de que se ejecute el programa?

(a)  

64.

¿Cuál de estos métodos requiere una fase previa de traducción?

(a)  

65.

¿Qué método traduce instrucciones paso a paso y ejecuta cada una al instante?

(a)  

66.

¿Cuál de estos métodos es más utilizado en sistemas embebidos?

(a)  

67.

¿Cuál es más adecuado para escribir código en tiempo real?

(a)  

68.

¿Qué método produce código más eficiente y rápido al ejecutarse?

(a)  

69.

¿Qué método permite la depuración en tiempo real sin recompilar?

(a)  

70.

¿Cuál es utilizado principalmente en lenguajes de alto nivel como Java y Python?

(a)  

71.

¿Cuál de estos métodos genera archivos ejecutables independientes?

(a)  

72.

¿Qué método se usa comúnmente en la programación de microcontroladores?

(a)  

73.

¿Cuál de estos métodos es el más antiguo?

(a)  

74.

¿Qué método usa instrucciones como MOV, ADD y SUB?

(a)  

75.

¿Cuál es el método utilizado por lenguajes como Java antes de ejecutarse en la JVM?

(a)  

76.

¿Qué método hace que el código fuente sea independiente de la máquina?

(a)  

77.

¿Cuál es un ejemplo de compilador famoso?

4 lines
78.

¿Cuál es un ejemplo de intérprete famoso?

4 lines
79.

¿Cuál es un ejemplo de ensamblador famoso?

4 lines
80.

¿Cuál método es más fácil para aprender a programar?

(a)  

81.

¿Qué método convierte directamente lenguaje ensamblador a código máquina?

(a)  

82.

¿Qué método es mejor cuando se necesita portabilidad del código?

(a)  

83.

¿Qué método es ideal para programas que deben ejecutarse en múltiples plataformas?

(a)  

84.

¿Cuál método es más utilizado en videojuegos y software de alto rendimiento?

(a)  

85.

¿Qué método se usa en sistemas operativos para optimizar la velocidad?

(a)  

86.

¿Cuál es el método preferido en inteligencia artificial y aprendizaje automático?

(a)  

87.

¿Qué método puede generar código más optimizado para una arquitectura específica?

(a)  

88.

¿Cuál método permite probar fragmentos de código sin necesidad de compilar todo?

(a)  

89.

¿Qué método es ideal cuando se trabaja con código ensamblador directamente?

(a)  

90-129.

Estructura del Lenguaje Ensamblador: Directivas, Instrucciones, Etiquetas y Comentarios

El lenguaje ensamblador es un lenguaje de programación de bajo nivel que permite a los programadores escribir código que se traduce directamente a instrucciones ejecutables por la CPU. Se utiliza principalmente en programación de sistemas, optimización de software y desarrollo de controladores de hardware. A diferencia de los lenguajes de alto nivel como Python o C, el ensamblador proporciona un control absoluto sobre el hardware y la memoria, lo que lo hace esencial en aplicaciones que requieren un rendimiento optimizado. Para comprender su funcionamiento, es fundamental conocer su estructura, la cual está compuesta por directivas, instrucciones, etiquetas y comentarios.

En primer lugar, las directivas son elementos del ensamblador que indican cómo debe interpretarse el código, pero no generan instrucciones ejecutables en la CPU. Estas directivas son utilizadas por el ensamblador para organizar y estructurar el código, definiendo secciones de memoria, declarando constantes o especificando el punto de entrada del programa. Un ejemplo común de directiva es .data, que se usa para definir la sección donde se almacenarán las variables y datos constantes. Otra directiva importante es .text, que indica la sección de código ejecutable del programa. También existe .bss, que se emplea para definir variables que no tienen valores iniciales y que ocupan espacio en memoria.

Las directivas también permiten definir macros y configurar parámetros específicos del ensamblador. Por ejemplo, en NASM, la directiva .global _start define el punto de entrada del programa. Sin estas directivas, el código ensamblador carecería de una estructura organizada, lo que dificultaría su lectura y ejecución. Algunas directivas pueden modificar el formato del código, especificando el tipo de procesador para el cual está diseñado o estableciendo opciones de alineación de memoria. En resumen, las directivas son fundamentales para definir la estructura del programa y preparar las secciones de memoria antes de la ejecución de las instrucciones.

Las instrucciones en ensamblador son las órdenes que la CPU ejecuta directamente. A diferencia de las directivas, estas instrucciones se traducen en código máquina y son responsables de manipular registros, realizar cálculos y controlar el flujo del programa. Entre las instrucciones más comunes se encuentran MOV, que se usa para mover datos de un lugar a otro, ADD y SUB para realizar sumas y restas, CMP para comparar valores, JMP para saltar a otra parte del código y INT para llamar a interrupciones del sistema.

Un ejemplo de instrucción en ensamblador sería MOV AX, 5, que copia el valor 5 en el registro AX. Otra instrucción común es ADD AX, BX, que suma los valores almacenados en los registros AX y BX y almacena el resultado en AX. Las instrucciones pueden operar sobre registros, direcciones de memoria o valores inmediatos, dependiendo del tipo de operación que se quiera realizar. Las instrucciones de comparación como CMP son fundamentales para la toma de decisiones dentro del código ensamblador, ya que permiten evaluar condiciones antes de ejecutar un salto condicional con JE o JNE.

Las instrucciones también incluyen operaciones lógicas como AND, OR y XOR, que se utilizan para manipular bits dentro de un registro o una posición de memoria. Estas operaciones son esenciales en programación de bajo nivel, donde la manipulación directa de bits puede optimizar el rendimiento de ciertas tareas. Además, el ensamblador permite el uso de instrucciones de control de flujo como CALL y RET, que se emplean para llamar y retornar de subrutinas, respectivamente. Estas instrucciones son útiles para organizar el código en módulos más manejables y reutilizables.

Otro elemento esencial en la estructura del lenguaje ensamblador son las etiquetas. Estas actúan como identificadores dentro del código y permiten nombrar ubicaciones en la memoria o en el flujo del programa. Las etiquetas se utilizan principalmente para definir puntos de salto en la ejecución del código, facilitando la implementación de bucles, condicionales y subrutinas.

Por ejemplo, en ensamblador, se puede definir una etiqueta inicio: para marcar el comienzo de un bucle y luego usar JMP inicio para volver a esa sección del código. Las etiquetas ayudan a que el código sea más legible y evitan la necesidad de usar direcciones de memoria absolutas, lo que facilita la reubicación y mantenimiento del programa. También pueden usarse para definir variables en la sección de datos, lo que permite acceder a ellas de manera más intuitiva en lugar de utilizar direcciones de memoria específicas.

Las etiquetas son fundamentales en el control de flujo de un programa en ensamblador. Un ejemplo de su uso sería en una estructura condicional donde, tras una comparación con CMP, se usa una instrucción de salto condicional como JE etiqueta_siguiente para dirigir la ejecución del programa a otra parte del código si la condición es verdadera. Este tipo de control de flujo es esencial en cualquier lenguaje de programación, y en ensamblador se maneja de manera explícita mediante etiquetas y saltos condicionales.

Por último, los comentarios son una parte crucial de cualquier lenguaje de programación, incluyendo ensamblador. Aunque no afectan la ejecución del código, los comentarios mejoran la legibilidad y comprensión del programa. En ensamblador, los comentarios comienzan con un punto y coma ;, y permiten documentar cada línea de código para explicar su propósito.

Por ejemplo, una línea de código como MOV AX, 10 ; Cargar el valor 10 en AX utiliza un comentario para indicar la función de la instrucción. Los comentarios son especialmente útiles en ensamblador, ya que el código puede volverse difícil de entender debido a su cercanía con el lenguaje máquina. Documentar adecuadamente cada sección del código facilita su mantenimiento y depuración.

El uso de comentarios también es recomendable para indicar modificaciones en el código o señalar posibles errores que podrían ocurrir en la ejecución. En proyectos grandes, los comentarios ayudan a que otros programadores comprendan rápidamente la funcionalidad de cada sección del código sin necesidad de analizar cada instrucción individualmente. Sin embargo, es importante que los comentarios sean claros y concisos, evitando el exceso de información innecesaria que pueda hacer que el código sea más difícil de leer.

Para ilustrar cómo se combinan estos elementos en un programa en ensamblador, consideremos el siguiente ejemplo:

section .data

mensaje db 'Hola, mundo!', 0

section .text

global _start

_start:

MOV AX, mensaje ; Cargar dirección de mensaje

INT 21h ; Llamar a interrupción para imprimir mensaje

MOV AX, 4C00h ; Salir del programa

INT 21h ; Llamada al sistema para terminar

En este código, .data es una directiva que define la sección de datos, donde mensaje es una etiqueta que almacena un texto. En .text, que es la sección de código ejecutable, _start es la etiqueta que marca el inicio del programa. MOV es una instrucción que carga datos en un registro, mientras que INT llama a una interrupción del sistema para imprimir el mensaje y luego finalizar la ejecución. Los comentarios explican cada instrucción, lo que facilita la comprensión del código.

En conclusión, la estructura del lenguaje ensamblador se basa en directivas, instrucciones, etiquetas y comentarios, cada uno con un propósito fundamental. Las directivas organizan el código y definen secciones de memoria, las instrucciones controlan el flujo del programa y realizan operaciones en la CPU, las etiquetas permiten gestionar la ejecución del código de manera estructurada y los comentarios facilitan la comprensión y mantenimiento del programa.

90.

¿Qué es el lenguaje ensamblador?

a)
Es un lenguaje de bajo nivel que permite escribir código directamente interpretable por la CPU.
b)
Es un lenguaje de scripting que se ejecuta en el navegador.
c)
Es un lenguaje de programación orientado a objetos.
d)
Es un lenguaje de alto nivel que se utiliza para aplicaciones web.
91.

¿Para qué se utiliza el lenguaje ensamblador?

a)
Se usa exclusivamente en programación web.
b)
Se usa en programación de sistemas, optimización de software y desarrollo de controladores de hardware.
c)
Se aplica solo en el diseño gráfico.
d)
Se utiliza para crear videojuegos.
92.

¿Cuál es la diferencia principal entre ensamblador y un lenguaje de alto nivel?

a)
El ensamblador se traduce directamente a código máquina, mientras que los lenguajes de alto nivel requieren un compilador o intérprete.
b)
El ensamblador es un lenguaje orientado a objetos.
c)
El ensamblador es más fácil de aprender que los lenguajes de alto nivel.
d)
Los lenguajes de alto nivel se ejecutan más rápido que el ensamblador.
93.

¿Qué son las directivas en ensamblador?

a)
Son variables que se utilizan para almacenar datos en el código.
b)
Son instrucciones que el ensamblador ejecuta directamente.
c)
Son órdenes que el ensamblador usa para organizar y estructurar el código, pero no generan instrucciones ejecutables.
d)
Son comentarios que explican el código en ensamblador.
94.

¿Cuál es la función de la directiva .data en ensamblador?

a)
Define la sección donde se ejecutan instrucciones.
b)
Define la sección donde se almacenan solo funciones.
c)
Define la sección donde se gestionan errores.
d)
Define la sección donde se almacenarán variables y datos constantes.
95.

¿Para qué se utiliza la directiva .text en ensamblador?

a)
La sección donde se definen las variables del programa.
b)
La sección donde se almacenan los datos estáticos.
c)
La sección donde se escribe el código ejecutable del programa.
d)
La sección donde se realizan las operaciones de entrada/salida.
96.

¿Qué hace la directiva .bss en ensamblador?

a)
Define variables sin valores iniciales, reservando espacio en memoria.
b)
Define variables con valores iniciales, reservando espacio en memoria.
c)
Define constantes que no pueden ser modificadas.
d)
Elimina variables de la memoria.
97.

¿Cuál es la función de la directiva .global _start?

a)
Establece la dirección de memoria del programa.
b)
Define las variables globales del programa.
c)
Indica el final de la ejecución del programa.
d)
Define el punto de entrada del programa.
98.

¿Qué diferencia hay entre una directiva y una instrucción?

a)
Las directivas son órdenes ejecutadas por la CPU, mientras que las instrucciones son instrucciones para el ensamblador.
b)
Las directivas son comandos de la CPU, mientras que las instrucciones son directrices para el ensamblador.
c)
Las directivas son instrucciones de alto nivel, mientras que las instrucciones son de bajo nivel.
d)
Las directivas son instrucciones para el ensamblador, mientras que las instrucciones son órdenes ejecutadas por la CPU.
99.

¿Qué son las instrucciones en ensamblador?

a)
Son las instrucciones que la CPU utiliza para almacenar datos en la memoria.
b)
Son las órdenes que la CPU ejecuta para crear gráficos en pantalla.
c)
Son las órdenes que la CPU ejecuta directamente para manipular registros y datos.
d)
Son las instrucciones que se utilizan para programar en lenguajes de alto nivel.
100.

¿Qué hace la instrucción MOV AX, 5?

a)
Copia el valor AX en 5.
b)
Suma 5 al registro AX.
c)
Resta 5 del registro AX.
d)
Copia el valor 5 en el registro AX.
101.

¿Para qué se usa la instrucción ADD en ensamblador?

a)
Suma un valor o el contenido de un registro a otro.
b)
Multiplica el contenido de dos registros.
c)
Resta un valor de otro registro.
d)
Divide un valor entre otro.
102.

¿Qué hace la instrucción SUB AX, BX?

a)
Resta el valor de BX al de AX y almacena el resultado en AX.
b)
Suma el valor de AX y BX y almacena el resultado en BX.
c)
Divide el valor de AX entre el de BX y almacena el resultado en BX.
d)
Multiplica el valor de AX por el de BX y almacena el resultado en AX.
103.

¿Cuál es la función de CMP AX, BX?

a)
Compara los valores de AX y CX sin modificar los registros.
b)
Compara los valores de AX y BX sin modificar los registros.
c)
Modifica los valores de AX y BX.
d)
Suma los valores de AX y BX y almacena el resultado en AX.
104.

¿Qué instrucción se usa para saltar a otra parte del código sin condiciones?

a)
SALTO etiqueta
b)
GOTO etiqueta
c)
JMP condición
d)
JMP etiqueta
105.

¿Qué instrucción se usa para saltar solo si dos valores son iguales?

a)
JNE etiqueta (Jump if Not Equal)
b)
JL etiqueta (Jump if Less)
c)
JG etiqueta (Jump if Greater)
d)
JE etiqueta (Jump if Equal).
106.

¿Qué es una etiqueta en ensamblador?

a)
Es un tipo de variable en programación.
b)
Es un identificador que marca una posición en la memoria o en el código.
c)
Es un comando que ejecuta una función.
d)
Es un formato de archivo para almacenar datos.
107.

¿Cómo se usa una etiqueta en ensamblador?

a)
Se define un número seguido de un punto y se usa en operaciones aritméticas.
b)
Se define un nombre seguido de dos puntos, y se puede referenciar en instrucciones de salto.
c)
Se coloca al final de cada línea de código.
d)
Se utiliza solo para comentarios en el código.
108.

¿Para qué se usan las etiquetas en ensamblador?

a)
Para almacenar datos temporales en la memoria.
b)
Para optimizar el rendimiento del código.
c)
Para marcar ubicaciones en el código y hacer más fácil el control de flujo.
d)
Para definir variables globales en el programa.
109.

¿Qué diferencia hay entre JMP y JE?

a)
JMP es un salto incondicional, mientras que JE solo salta si la comparación previa resultó en igualdad.
b)
JMP y JE son ambos saltos condicionales que dependen de la comparación previa.
c)
JE es un salto incondicional, mientras que JMP solo salta si la comparación previa resultó en igualdad.
d)
JMP solo salta si la comparación previa resultó en igualdad, mientras que JE es incondicional.
110.

¿Qué son los comentarios en ensamblador?

a)
Son líneas de código que generan errores de ejecución.
b)
Son elementos que optimizan el rendimiento del programa.
c)
Son anotaciones en el código que ayudan a documentarlo, sin afectar su ejecución.
d)
Son instrucciones que se ejecutan durante la compilación.
111.

¿Cómo se escribe un comentario en ensamblador?

a)
Usando el carácter #, seguido del texto del comentario.
b)
Escribiendo el texto del comentario en mayúsculas.
c)
Utilizando el carácter //, seguido del texto del comentario.
d)
Usando el carácter ;, seguido del texto del comentario.
112.

¿Por qué son importantes los comentarios en ensamblador?

a)
Los comentarios son solo para programadores experimentados y no son necesarios para principiantes.
b)
Los comentarios en ensamblador son importantes para optimizar el rendimiento del código.
c)
Los comentarios en ensamblador son importantes porque el código ensamblador puede ser difícil de leer sin explicaciones.
d)
Los comentarios en ensamblador son opcionales y no afectan la ejecución del código.
113.

¿Cómo se almacena una cadena de texto en ensamblador?

a)
mensaje db 'Hola, mundo!'
b)
mensaje db 'Hola, mundo!', 0
c)
mensaje db 'Hola, mundo!','0'
d)
mensaje 'Hola, mundo!'
114.

¿Qué hace la instrucción INT 21h en ensamblador?

a)
Ejecuta un programa en memoria.
b)
Copia datos de un archivo a otro.
c)
Muestra un mensaje en pantalla.
d)
Llama a una interrupción del sistema DOS.
115.

¿Para qué se usa la instrucción HLT?

a)
Inicia la ejecución del programa.
b)
Reinicia el sistema operativo.
c)
Cierra todas las aplicaciones abiertas.
d)
Detiene la ejecución del programa.
116.

¿Cuál es la función de PUSH AX en ensamblador?

a)
Mueve el valor de AX a la dirección de memoria 0x0000.
b)
Guarda el valor de AX en la pila.
c)
Elimina el valor de AX de la memoria.
d)
Copia el valor de AX en el registro BX.
117.

¿Cómo se recupera un valor guardado en la pila en ensamblador?

a)
Con la instrucción POP.
b)
Con la instrucción RET.
c)
Con la instrucción CALL.
d)
Con la instrucción PUSH.
118.

¿Qué hace la instrucción RET en ensamblador?

a)
Salta a una dirección específica en la memoria.
b)
Finaliza una subrutina y regresa al punto de llamada.
c)
Finaliza el programa y detiene la ejecución.
d)
Inicia una subrutina y regresa al punto de llamada.
119.

¿Qué hace CALL subrutina en ensamblador?

a)
Finaliza la ejecución del programa.
b)
Llama a una subrutina definida en otra parte del código.
c)
Salta a una etiqueta en el código.
d)
Crea una nueva variable en memoria.
120.

¿Cuál es la función de LOOP etiqueta?

a)
Repite un bloque de código indefinidamente.
b)
Detiene un bloque de código cuando un contador llega a 0.
c)
Ejecuta un bloque de código una sola vez.
d)
Repite un bloque de código hasta que un contador llegue a 0.
121.

¿Qué hace la instrucción OR AX, AX?

a)
Cambia el valor de AX a 0.
b)
Verifica si AX es 0 sin modificar su valor.
c)
Suma 1 al valor de AX.
d)
Multiplica AX por 2.
122.

¿Cómo se almacena un número en memoria en ensamblador?

a)
Usando la directiva db, por ejemplo: numero db '10'.
b)
Almacenando el número en una variable de tipo string.
c)
Usando la directiva dw, por ejemplo: numero dw 10.
d)
Usando la directiva db, por ejemplo: numero db 10.
123.

¿Qué diferencia hay entre db, dw y dd en ensamblador?

a)
db almacena dobles palabras, dw almacena bytes y dd almacena palabras (16 bits).
b)
db almacena bytes, dw almacena palabras (16 bits) y dd almacena dobles palabras (32 bits).
c)
db almacena palabras, dw almacena bytes y dd almacena kilobytes.
d)
db almacena caracteres, dw almacena dobles palabras y dd almacena palabras (16 bits).
124.

¿Qué hace la instrucción NOP?

a)
No realiza ninguna operación y solo avanza la ejecución.
b)
Reinicia el sistema operativo.
c)
Detiene la ejecución del programa temporalmente.
d)
Realiza una operación de suma y avanza la ejecución.
125.

¿Qué hace MOV BX, [2000H] en ensamblador?

a)
Carga en BX el valor almacenado en la dirección de memoria 2000H y lo suma a AX.
b)
Carga en AX el valor almacenado en la dirección de memoria 2000H.
c)
Carga en BX el valor de la dirección de memoria 2000H sin leer su contenido.
d)
Carga en BX el valor almacenado en la dirección de memoria 2000H.
126.

¿Cuál es el propósito de la sección .text en un programa en ensamblador?

a)
Definir las variables globales del programa.
b)
Contener el código ejecutable del programa.
c)
Almacenar datos temporales del programa.
d)
Contener la documentación del código.
127.

¿Qué sucede si olvidamos declarar .global _start en ensamblador?

a)
El programa se ejecutará sin problemas.
b)
El ensamblador generará un error de sintaxis.
c)
El punto de entrada se establecerá automáticamente.
d)
El ensamblador no sabrá cuál es el punto de entrada del programa.
128.

¿Qué sucede si intentamos ejecutar MOV AX, mensaje sin definir mensaje?

a)
El programa se cerrará inesperadamente.
b)
El ensamblador ejecutará el código sin problemas.
c)
El ensamblador mostrará un error porque mensaje no está definido.
d)
El mensaje se definirá automáticamente.
129.

¿Qué hace la instrucción JNE etiqueta?

a)
No realiza ninguna acción si la comparación previa no resultó en igualdad.
b)
Salta a la etiqueta solo si la comparación previa no resultó en igualdad.
c)
Salta a la etiqueta independientemente del resultado de la comparación.
d)
Salta a la etiqueta solo si la comparación previa resultó en igualdad.