¿Quién tiene un examen de lenguaje ensamblador?

1. Preguntas de opción múltiple

1. Existe un traductor que puede traducir programas fuente escritos en lenguaje ensamblador a lenguaje de máquina que la CPU pueda reconocer. Este compilador se llama programa (ensamblador).

2. El valor del código ASCII del carácter "a" es (41H).

3. El segmento implícito de la instrucción MOVAX [BP] es (SS).

4. Instrucción de direccionamiento inmediato (addax, 1234H).

5. Indique al STC que establezca el bit de acarreo (conjunto 1).

6.AX = 5aah, BX=FFFFH. Después de ejecutar las instrucciones XOR AX y BX, AX = (a5h).

7.AX=100H, DX=123H. Después de ejecutar la instrucción MUL DX, DX=(1).

8.AX=100H, DX=123H. Después de ejecutar las instrucciones SUB AX y DX, el bit de acarreo = (1).

9.BX=100H, CX=1202H. Después de ejecutar las instrucciones SHL BX y CL, BX=(400H).

10 Se sabe que (AH)=12H, (BL) = 09h, luego de ejecutar ADC AH y BL, AH=(BBH o BCH).

En segundo lugar, rellena los espacios en blanco.

1...Hay muchas instrucciones para hacer DX=0, escribe dos tipos de (MOV DX, 0), (sub DX, DX), (XOR DX, DX), (y DX, 0).

2. La función de la instrucción JNE es (saltar cuando los dos números no son iguales).

3. En la transferencia de parámetros de subrutina, la función de la instrucción RET 2 es (saber la dirección al regresar y luego abrir 2 bytes).

4.al, la función en 60H es (leer un byte del puerto 60H a AL).

5. Si la impresora pierde el código ASCII (0D, 0A), la impresora ejecutará (retorno de carro) y (avance de línea).

En tercer lugar, preguntas de respuesta corta.

1. La subrutina regresa al programa DOS (al menos un programa solo necesita escribir comandos de teclado).

1:

Mover eje, datos

Mover ds, ax

……

Mover ah, 4ch

Int 21h

2:

Empujar ds

XOR hacha, hacha

Empujar hacha

p>

……

Remojado en agua para suavizar

2. Enumere 7 registros que se pueden utilizar para cálculos y operaciones.

Disponible: Ax, bx, cx, dx, si, di, bp.

No disponible: ds, cs, es, ip, ss, sp.

3. ¿Por qué utilizar macros cuando la velocidad de ejecución es crítica y subrutinas cuando el espacio de almacenamiento es crítico?

Al ensamblar el programa fuente, el ensamblador procesa las llamadas de macro y la CPU ejecuta directamente las llamadas de subrutina cuando se ejecuta el programa. Cuando se llama a una subrutina, se ejecutarán más instrucciones de llamada e instrucciones RET que el código después de la llamada de macro y se requieren instrucciones adicionales para pasar parámetros, por lo que la velocidad de ejecución es ligeramente más lenta; Utilice macros cuando la velocidad sea crítica. Dado que cada llamada de macro requiere una expansión de macro y el contenido del cuerpo de la macro se copia nuevamente, los programas escritos en ensamblaje de macro tendrán segmentos de programa iguales o similares repetidos en el código de destino, ocupando una gran cantidad de espacio de memoria; instrucción de llamada. No importa cuántas veces se llame, el código de destino de la subrutina solo aparece una vez en el programa ejecutado final y el código de destino es relativamente corto. Entonces, la clave para el espacio de almacenamiento es usar subrutinas.

4. Descripción: Tres métodos de transferencia de parámetros de subrutina.

1. Pasar parámetros usando registros

2. Pasar parámetros usando variables de memoria

3. Pasar parámetros en la pila

lenguaje C. Las subfunciones generalmente usan la pila para pasar parámetros.

En cuarto lugar, diseñar preguntas operativas.

Escriba una subrutina para convertir los valores 0~F (establecidos en al, A~F están en mayúscula) en valores ASCII para su visualización (el parámetro de retorno lo pasa AL). Se requiere una definición de procedimiento, una subrutina denominada ZH.

ZH está más cerca

Pulido químico mecánico aluminio, 9

JA A1

Aluminio añadido, 30H

A1: Añadir aluminio, 37H

ENDP

Quinto, problema de cálculo.

Programa para calcular la suma acumulada de números impares del 1 al 11. Todos los segmentos y programas, así como los programas principales y subrutinas, necesitan utilizar variables o matrices para volver a la funcionalidad de DOS. Requisitos: utilice la programación de macroensamblaje y el programa estará completo. (Si el programa es relativamente largo, escríbalo en dos columnas).

Segmento de datos aa db 1, 3, 5, 7, 9, 11, 24h strg db '00$ 'Segmento de pila final de datos pila Db 200 dup(0) segmento de código final de pila suponiendo cs: código, ds: data, ss: Stack a 1 proc far Inicio: Mov ax, data Mov ds, ax Mov ax, 0 Mov si, 0 Mov cx, 6 call A2 mov ah, al shr ah, 6544

Segmento de datos

bdB'00$'

Fin de datos

Superposición de segmento SSEG 'Overlay'

DB 80H DUP( ? )

Fin SSEG

Segmento de código

Asumir ds: datos, SS: SSEG, cs: código

Proceso A1 lejos

Inicio: MOV AX, DATA

MOV DS, AX

Llamar L1

MOV Ah, Al

MOV CL, 4

Shh, CL

Además, AL, 0FH

Agregar, 30H

Agregar aluminio, 30H

MOV B[0], ah

MOV B[1], aluminio

mov dX, offset B

mov ah, 9h

int 21h

MOV, 4CH

INT 21H

A1 ENDP

Cerca de L1 PROC

MOV AL, 0

MOV BL, 1

MOV CL, 6

LOOP1: Agregar AL, BL

Agregar BL, 2

Bucle LOOP1

Remojar en agua para suavizar

L1 ENDP

Fin del código

Fin Comienzo