Compile las preguntas del examen final

Preguntas de repaso en lenguaje ensamblador y respuestas de referencia para el examen final del segundo semestre del curso académico 2005-2006.

Rellena los espacios en blanco

1. El número decimal 369 se convierte en un número binario () 2 y un número hexadecimal () 16.

2. Las instrucciones en la computadora se componen de () y (código de dirección).

3.8086 tiene 20 buses de direcciones y el rango de direcciones es () bytes.

4. La dirección de la siguiente instrucción a ejecutar se almacena en el registro ().

5. Escribir las instrucciones (RET), (IRET) y (IRTD) devueltas por las tres subrutinas del PC IBM.

6. El programa fuente en lenguaje ensamblador debe ser ensamblado por el programa () y conectado por el programa () para generar un archivo ejecutable.

7. Si la dirección de una unidad de almacenamiento se expresa como 2314h: 4132h, entonces su dirección de desplazamiento = (4132) y dirección física = ().

8. El prefijo de la directiva REP se utiliza junto con la directiva ().

9. Puede utilizar los comandos DEBUG() y () para ver y modificar el contenido de la unidad de almacenamiento en la pantalla.

10.(Al)=BFH. Si desea enmascarar los bits 0 y 1, debe ejecutar la instrucción (); si necesita invertir los bits 0 y 1, puede usar la instrucción ().

11. El ensamblaje de macros es aplicable a () y segmentos de subfunción de ();

2. Preguntas de opción múltiple

1. longitud N = 16, el complemento del número con signo 7AE9H se expresa como ().

A.9EA7H b . 76C4H c . 8417H d 7a e9h

2 Comparando el número con signo 3260H con 0B425H, la relación es ().

A. Igual a b. Menor que c. Mayor que d. No se puede comparar

3. La dirección de destino transmitida en la instrucción JMP palabra PTR [BX][DI] ().

A.16 d x(Gibraltar) (BX) (Gibraltar)

C.16d x(SS) (BX) (Di)

4. En la instrucción MOV AX[1000h], el modo de direccionamiento del operando fuente es ().

A. Direccionamiento inmediato b. Direccionamiento directo c. Direccionamiento indirecto intrasegmento d. Direccionamiento de registro

5.

A. Número de tipo de interrupción b. Dirección del punto de interrupción c. Programa de servicio de interrupción d. Dirección de entrada del programa de servicio de interrupción

6 Instrucciones de transferencia condicional en el sistema de instrucción en lenguaje ensamblador. 8086 permite transferir el programa a ().

En cualquier lugar de la sección A.b, la dirección de desplazamiento de la instrucción es -32768 ~ 32767.

Fuera del segmento C.d., la dirección de desplazamiento de esta instrucción es -128~127.

7. Las declaraciones de definición de datos que pueden definir cadenas de código ASCII son ()

A.DB, DW, DD, DQ, DT B. DB, DW, DD C. DB. , DW D. DB

8 Si (AL) = 87H, después de agregar AL y 0F5H, el estado de S, Z, C, O y P es ().

A.SF=0, ZF=0, CF=1, OF=1, PF=0 B.SF=1, ZF=0, CF=1, OF=0, PF=1

C.SF=0, ZF=0, CF=0, OF=1, PF=0 D.SF=1, ZF=0, CF=1, OF=1, PF=1

9. Instrucción de comparación CMP()

A. Dedicada a la comparación de números firmados

C Dedicada a la comparación de cadenas d. o sin firmar.

10. El impacto de las instrucciones de transferencia de datos en los bits de bandera es ()

A No afecta a ambos

C. ·SAHF, POPF, nada más se verá afectado. Excepto las banderas de control, nada más se verá afectado.

3. Preguntas de Verdadero o Falso

() 31. Las subrutinas llamadas entre segmentos deben describirse como procedimientos remotos que utilizan pseudooperación FAR.

() 32.PC utiliza bits como unidad mínima de direccionamiento.

() 33. Cuando SRC es un valor inmediato, DST puede usar direccionamiento de memoria.

() 34. Puede utilizar la instrucción ORG para especificar la dirección de desplazamiento de cada segmento lógico.

() 35. Cuando loope/loopz es igual a /zero, se transferirá a la etiqueta y su condición de salida es (CX)=0 o ZF=0.

( ) 36. IP popular

() 37. Supongamos que 327FH y 0BFFFH son representaciones de complemento con signo, entonces 327FH

() 38. Cruz de símbolos múltiples Las referencias entre módulos deben interpretarse utilizando las directivas PUBLIC y EXTRN.

( )39.MOV AX, VAR1-VAR2 100

( )40. Agregar [SI], 50

4. >

1. Dibujo 1234H

b Dibujo 5678H

Empuje uno

Presione B

Bang

Pop Bay

Respuesta: (a)=(b)=Después de ejecutar el procedimiento anterior.

2. Analiza el siguiente segmento del programa,

MOV·AL, 200

SAR AL, 1

MOV·Blay p>

MOV CL, 2

SAR

Agregar AL, BL

Después de ejecutar el segmento del programa (BL) = (Al) = ¿Qué tal?

3. Base de datos de cadenas 'ABCDEFGHIJ'

MOV, 01; ingrese los caracteres del 1 al 9 desde el teclado.

INT 21H

Además, AL, 0FH

Diciembre

XOR, ah

MOV BX, desplazamiento string

Añadir BX, axe

MOV BX, [BX]

MOV, salida de visualización 02H

INT 21H

Intente responder:

(1) ¿Cuál es la función del segmento de programa anterior?

(2) Si se ingresa el carácter '4' desde el teclado, ¿cuál es el resultado del segmento del programa?

4. Existen los siguientes programas:

Además, Al, Al

JZ BRCH1

RCR Al, 1

JZ BRCH2

RCL AL, 1

INC AL

JZ BRCH3

Después de ejecutar el programa anterior, intente respuesta:

(1) Cuando (Al) =, el programa cambia a BRCH1.

(2) Cuando (al) =, el programa cambia a BRCH2.

(3) Cuando (Al) =, el programa cambia a BRCH3.

5. ¿Qué logra el siguiente segmento del programa?

DAT1 DB 30 DUP(?)

DAT2 DB 10 DUP(?)

MOV CX, 10

MOV·BX, 20 años

MOV SI, 0

MOV Dee, 0

Siguiente: MOV·Al, DAT1〔 BX〕 Si

Datos MOV 2〔DI〕, Aluminio

Empresa SI

Empresa DI

Próximo ciclo

6. Después de ejecutar el siguiente segmento del programa, ¿cuál es el contenido de AL?

MOV·BX, 00FFH

También existe BX, 0FFFH

O BX, 0F0FH

XOR BX, 00FFH

7. Después de ejecutar las siguientes instrucciones, ¿cuál es el contenido del registro AX?

Inicio DW 10H, 20H, 30H, 40H, 50H

EE1 DW 3

MOV BX, inicio desplazado

MOV BX, inicio desplazado

p>

Agregar BX, EE1

MOV Ax, [BX]

8. ¿Cuál es la función de los siguientes segmentos del programa?

CMP AL, 'A'

JC Otro

CMP AL, 'Z' 1

JNC Otro

Carta JMP

Otros: ┇

Carta: ┇

5.

1. Supongamos que uno de AX y BX es positivo y el otro es negativo. El siguiente segmento del programa completa el envío de números positivos a la unidad PLW para su almacenamiento. Complete las instrucciones que faltan en el programa.

Prueba AX, 8000H

BX MOV·PLW

JMP completado

K1:

Completado:

2. Están disponibles los siguientes segmentos de datos:

Segmento de datos

STR1 dB 'ABCDEFGHIJKL'

EQU Earl-STR1

Recuento de la base de datos del búfer DUP(0)

Fin de los datos

El siguiente segmento del programa es transferir inversamente todos los caracteres en STR1 al búfer BUF (es decir, los caracteres en STR1 el primer carácter se envía a la última celda de BUF, el último carácter en STR1 se envía a la primera celda de BUF). Intente completar las instrucciones que faltan en el programa.

MOV SI, desplazamiento BUF-1

MOV DI, búfer de desplazamiento

Recuento MOV·CX

__ __

Bucle: MOVSB

__ __

Bucle LOP

o ()

Pregunta de programación de verbos intransitivos

1 La parte de programación calcula SUM = ∑ AI = A1 A2...A20, y se sabe que A1...A20 se almacena en el área de datos con BUF como dirección principal, i=1, cada uno Los datos Ocupa dos bytes y la suma también es de dos bytes. (Es necesario escribirlo en una estructura de bucle y el control de bucle utiliza control de conteo). (Esta pregunta no necesita escribir el formato del programa fuente, solo necesita escribir la secuencia de instrucciones relevante requerida por la pregunta de la prueba).

2. La unidad DAT almacena datos en bytes de -9 ~ 9. , el cuadrado de 0 ~ 9 El valor se almacena en el área de datos SQRTAB. Busque directamente la tabla y escriba una subrutina para encontrar el valor cuadrado correspondiente a los datos en la unidad DAT en SQRTAB y envíelo a la unidad SQR. Y escriba el método de llamada del programa principal.

Los segmentos de datos son los siguientes:

Segmento de datos

DAT DB XXH

SQRTAB DB 0, 1, 4, 9, ... 81

DB SQR?

Fin de los datos

3. Intente escribir un segmento de programa para desplazar a la derecha las palabras dobles en DX y AX en cuatro bits.

4. Defina un área de datos que contenga cuatro caracteres de datos: 23H, 24H, 25H y 26H. Copie el área de datos 20 veces y muestre los resultados de la copia.

Preguntas de repaso en lenguaje ensamblador y respuestas de referencia para el examen final del segundo semestre del curso académico 2005-2006.

Rellena los espacios en blanco

1. El número decimal 369 se convierte en un número binario (1011001) 2 y en un número hexadecimal (171) 10.

2. Las instrucciones en la computadora se componen de (código de operación) y (código de dirección).

3.8086 tiene 20 buses de direcciones y el rango de direccionamiento es (1 M) bytes.

4. La dirección de la siguiente instrucción a ejecutar se almacena en un registro (registro puntero de instrucción).

5. Escribir las instrucciones (RET), (IRET) y (IRTD) devueltas por las tres subrutinas del PC IBM.

6. El programa fuente en lenguaje ensamblador debe ser ensamblado por un programa (ensamblador) y conectado por un programa (de enlace) para generar un archivo ejecutable.

7. Si la dirección de una unidad de almacenamiento se expresa como 2314h: 4132h, entonces su dirección de desplazamiento = (4132) y dirección física = (27272H).

8. El prefijo de la directiva REP se utiliza junto con la directiva ().

9. Para ver y modificar el contenido de la unidad de almacenamiento en la pantalla, puede utilizar los comandos (d) y (e) de DEBUG.

10.(Al)=BFH. Si necesita enmascarar los bits 0 y 1, ejecute la instrucción (AND AL, 3F); si necesita invertir los bits 0 y 1, puede usar la instrucción (XOR AL, 3F).

11. El ensamblaje de macros es adecuado para segmentos de subfunciones con programas cortos y muchos parámetros.

2. Preguntas de opción múltiple

1. longitud N = 16. La representación en complemento del número con signo 7AE9H es (d).

A.9EA7H b . 76C4H c . 8417H d 7a e9h

2.

A. Igual a b. Menor que c. Mayor que d. No se puede comparar

3. La dirección de destino transmitida en la instrucción JMP palabra PTR [BX][DI] (A).

A.16 d x(Gibraltar) (BX) (Gibraltar)

C.16d x(SS) (BX) (Di)

4. En la instrucción MOV AX[1000h], el modo de direccionamiento del operando fuente es (b).

A. Direccionamiento inmediato b. Direccionamiento directo c. Direccionamiento indirecto intrasegmento d. Direccionamiento de registro

5. >

A. Número de tipo de interrupción b. Dirección del punto de interrupción c. Programa de servicio de interrupción d. Dirección de entrada del programa de servicio de interrupción

6 Instrucciones de transferencia condicional en el sistema de instrucción en lenguaje ensamblador. 8086 puede transferir el programa a cualquier lugar en la sección (a)

A.b, donde la dirección de desplazamiento de la instrucción es -32768 ~ 32767.

Fuera del segmento C.d., la dirección de desplazamiento de esta instrucción es -128~127.

7. La declaración de definición de datos que puede definir una cadena de código ASCII es (D)

A.DB, DW, DD, DQ, DT B. DB, DW, DD C. DB, DW D. DB

8. Si (AL)=87H, entonces el estado de S, Z, C, O y P después de agregar AL 0F5H es (C).

A.SF=0, ZF=0, CF=1, OF=1, PF=0 B.SF=1, ZF=0, CF=1, OF=0, PF=1

C.SF=0, ZF=0, CF=0, OF=1, PF=0 D.SF=1, ZF=0, CF=1, OF=1, PF=1

9. Instrucción de comparación CMP(D)

A. Dedicada a la comparación de números con signo

C. Firmado o sin firmar.

10. El impacto de las instrucciones de transferencia de datos en los bits de bandera es (D)

A No afecta a ambos

C. El SAHF·SAHF del POPF no tiene nada. No hay nada más que banderas de control.

3. Preguntas de Verdadero o Falso

() 31. Las subrutinas llamadas entre segmentos deben describirse como procedimientos remotos que utilizan pseudooperación FAR. T

() 32.PC utiliza bits como unidad mínima de direccionamiento. F

() 33. Cuando SRC es un valor inmediato, DST puede usar direccionamiento de memoria. F

() 34. Puede utilizar la instrucción ORG para especificar la dirección de desplazamiento de cada segmento lógico. T

() 35. Cuando loope/loopz es igual a /zero, se transferirá a la etiqueta y su condición de salida es (CX)=0 o ZF=0. T

( )36. Popular IP F

() 37. Supongamos que 327FH y 0BFFFH son representaciones de complemento con signo, entonces 327FH

() 38. Símbolo cruzado -Las referencias entre múltiples módulos deben interpretarse utilizando las directivas PUBLIC y EXTRN.

( )39.MOV AX, VAR1-VAR2 100 F

( )40. Agregar [SI], 50°F

4.

1. Dibujo 1234H

b Dibujo 5678H

Empuje uno

Presione B

Bang

Pop Bay

Respuesta: (a) = 5678h, (b) = 1234h después de la ejecución de los segmentos del programa anteriores.

2. Analiza el siguiente segmento del programa,

MOV·AL, 200

SAR AL, 1

MOV·Blay p>

MOV CL, 2

Región administrativa especial

Agregar AL, BL

Después de ejecutar el segmento del programa (BL) = 0e4h (Al) = 0ddh ¿Qué tal?

3. Base de datos de cadenas 'ABCDEFGHIJ'

MOV, 01; ingrese los caracteres del 1 al 9 desde el teclado.

INT 21H

Además, AL, 0FH

Diciembre

XOR, ah

MOV BX, desplazamiento string

Añadir BX, axe

MOV BX, [BX]

MOV, salida de visualización 02H

INT 21H

Intente responder:

(1) ¿Cuál es la función del segmento de programa anterior? Determine qué carácter de la cadena se muestra en la pantalla en función de los caracteres del '1' al '9' ingresados ​​desde el teclado.

(2) Si se ingresa el carácter '4' desde el teclado, ¿cuál es el resultado del segmento del programa? El display muestra el carácter "d"

4. Existen los siguientes programas:

También, Al, Al

JZ BRCH1

RCR Al, 1

JZ BRCH2

RCL Al, 1

INC AL

JZ BRCH3

El programa anterior se ejecuta. Finalmente, intente responder:

(1) Cuando (Al) = (Al) = 0, el programa cambia a BRCH1.

(2) Cuando (Al) = (Al) = 1, el programa cambia a BRCH2.

(3) Cuando (Al) = (Al) =-1, el programa cambia a BRCH3.

5. ¿Qué logra el siguiente segmento del programa? Mueva 10 bytes comenzando en la ubicación de memoria 20 desde DAT1 a la ubicación de memoria 10 comenzando desde DAT2.

DAT1 DB 30 DUP(?)

DAT2 DB 10 DUP(?)

MOV CX, 10

MOV·BX, 20 años

MOV SI, 0

MOV Dee, 0

Siguiente: MOV·Al, DAT1〔 BX〕 Si

Datos MOV 2〔DI〕, Aluminio

Empresa SI

Empresa DI

Próximo ciclo

6. Después de ejecutar el siguiente segmento del programa, ¿cuál es el contenido de AL? 0F00H

MOV·BX, 00FFH

También existe BX, 0FFFH

O BX, 0F0FH

XOR BX, 00FFH p>

7. Después de ejecutar las siguientes instrucciones, ¿cuál es el contenido del registro AX? 3000 horas

Inicio DW 10H, 20H, 30H, 40H, 50H

EE1 DW 3

MOV BX, inicio desplazado

Agregar BX, EE1

MOV Ax, [BX]

8. ¿Cuál es la función de los siguientes segmentos del programa? Determinar el contenido de aluminio. Si es una letra mayúscula de la 'a' a la 'z', el programa va a esa letra, en caso contrario pasa a las demás.

CMP AL, 'A'

JC Otro

CMP AL, 'Z' 1

JNC Otro

Carta JMP

Otros: ┇

Carta: ┇

5.

1. Supongamos que uno de AX y BX es positivo y el otro es negativo. El siguiente segmento del programa completa el envío de números positivos a la unidad PLW para su almacenamiento. Complete las instrucciones que faltan en el programa.

Prueba AX, 8000H

JE K1 o JZ K1

BX MOV·PLW

JMP completado

K1: MOV PLW, AX

Completo:

2 Los siguientes segmentos de datos están disponibles:

Segmentos de datos

STR1dB' ABCDEFGHIJKL. '

EQU count-STR1

Recuento de la base de datos del buffer DUP(0)

Fin de los datos

El siguiente segmento del programa es para implementar la conversión de STR1 Todos los caracteres en STR1 se envían al búfer BUF a la inversa (es decir, el primer carácter en STR1 se envía a la última unidad de BUF y el último carácter en STR1 se envía a la primera unidad de BUF). Intente completar las instrucciones que faltan en el programa.

MOV SI, desplazamiento BUF-1

MOV DI, búfer de desplazamiento

Recuento MOV·CX

__ CLD__

Bucle: MOVSB

__ SUB SI, 2__

Bucle LOP

O (Estándar/Agregar DI, 2)

Problemas de programación de verbos intransitivos

1. La parte de programación calcula SUM = ∑ AI = A1 A2...A20, y se sabe que A1...A20 está almacenado en la dirección con BUF como dirección principal. Área de datos, i = 1, cada dato ocupa dos bytes y el total también es de dos bytes. (Es necesario escribirlo en una estructura de bucle y el control de bucle utiliza control de conteo). (Esta pregunta no requiere escribir el formato del programa fuente, solo necesita escribir la secuencia de instrucciones relevante requerida por la pregunta del examen).

Fragmento de programa: MOV AX, 0

MOV BX, offset BUF

MOV·CX, 20 años

Luopu: Añadir hacha, [BX]

Compañía BX

BX Empresa

Loop LOP

Suma MOV, eje

2. La unidad DAT almacena un byte de datos de -9 ~ 9 y el valor cuadrado de 0 ~. 9 se almacena en el área de datos SQRTAB. Busque directamente la tabla y escriba una subrutina para encontrar el valor cuadrado correspondiente a los datos en la unidad DAT en SQRTAB y envíelo a la unidad SQR. Y escriba el método de llamada del programa principal.

Los segmentos de datos son los siguientes:

Segmento de datos

DAT DB XXH

SQRTAB DB 0, 1, 4, 9, ... 81

DB SQR?

Fin de datos

Pila de contador de segmento 1

DW 20H DUP(?)

Fin de pila 1

Fragmento de código

Asumir CS: CODE, DS: DATA, SS: STACK1

Inicio: MOV AX, DATA

MOV DS, AX

Llamar SUBROT

MOV, 4CH

INT 21H

SUBROT Proceso

Empujando el hacha

Empujando BX

Lee·BX, SQRTAB

MOV·Aledat

Prueba aluminio, 80 horas

Siguiente es JNS

Aluminio negativo

Siguiente: XLAT SQRTAB

MOV·SQR

p>

Pop·BX

Barril explosivo

Remojado en agua para ablandarlo

Subrogación ENDP

Fin del código

Fin SRART

3. Intente escribir un segmento de programa para desplazar hacia la derecha las palabras dobles en DX y AX en cuatro bits.

MOV CL, 04

Hacha de piedra, CL

Límite MOV

SHR DX, CL

Shanghái , China

Todavía es BL

4. Defina un área de datos que contenga cuatro caracteres de datos: 23H, 24H, 25H y 26H. Copie el área de datos 20 veces y muestre la copia. resultados. .

Segmento de datos

Modo DB 23H, 24H, 25H, 26H

Visualización DB 80 DUP('), ' $ '

Fecha de fin

Fragmento de código

CLD

LEA SI, modo

Li Di, pantalla

MOV·CX, 80 años

Representa MOVSB

MOV, 09H

LEA DX, display

INT 21H

Remojado en agua para suavizar

Fin del código