Preguntas básicas de compilación (con respuestas. Por favor explique)
BA
Pregunta de comparación: DB' ABC 'cambiará los datos de los bytes de orden bajo Los bytes de orden superior se almacenan en la memoria en orden: ()
Ba
Mi pregunta (1) es una comparación de dos preguntas. Estoy muy frustrado. ¿Es incorrecta la respuesta a la segunda pregunta? ¿Por qué C ya no está ahí?
Respuesta: La respuesta a la segunda pregunta es incorrecta. La respuesta correcta es ABC.
(2)La primera pregunta. Si se cambia a 'ABCD'. La respuesta es: ¿DCBA?
Respuesta: Si la primera pregunta se cambia a 'ABCD', no podrás aprobar el examen. DW es una directiva que define datos de palabras (dos bytes). Más de dos caracteres significa más de lo que la palabra unidad puede representar. El método correcto es: DW 'AB', 'CD' y el orden de almacenamiento en la memoria es: BADC.
;-
P2: Las instrucciones que son completamente equivalentes a las instrucciones BX y BUF son:
Respuesta Mov BX, BUF B. LDS BX, BUF C .MOV BX, palabra PTR BUF
d .MOV BX, desplazamiento BUF A: D
(1) ¿Cuál es la diferencia entre C y D? Sé que no debo elegir AB. Entonces ¿por qué no elegir C?
Respuesta: La respuesta dada es completamente correcta.
Instrucción
Li·BX
La función es cargar la dirección efectiva de la variable BUF en el registro BX, la instrucción
MOV BX , palabra PTR BUF
La primera palabra (dos bytes) de la variable BUF se envía al registro BX.
Uno es la dirección y el otro es el contenido de la dirección.
;-
T3: Problemas de análisis del programa
Proceso HTOA
También AL, 0FH
Aluminio agregado , 90H
DAA
Convertidor analógico a digital aluminio, 40 horas
DAA
Remojado en agua para ablandar
HTOA·ENDP
Por favor responda: 1. Si AL=09H antes de que se ejecute la subrutina, AL=() después de que se ejecute la subrutina.
2. Si AL=0DH antes de que se ejecute la subrutina, AL =()1 después de que se ejecute la subrutina 39 horas y 2 minutos.44H
Mis preguntas (1) ¿Qué significa DAA?
Respuesta: DAA es un número decimal más DAA (ajuste decimal después de la suma), que se utiliza para ajustar el valor de al. Es el resultado de indicarle a Add o ADC que opere en dos códigos BCD comprimidos. El código BCD comprimido almacena dos códigos BCD en un byte, y los cuatro bits inferiores y los cuatro bits superiores son ambos un código BCD. Las reglas de ajuste son las siguientes:
*, si los cuatro bits inferiores de AL son mayores que 9, o el bit de bandera AF=1, entonces AL=AL 6 y establezca AF = 1;
* p>
*, Si los cuatro bits superiores de AL son mayores que 9, o CF=1, entonces AL=AL 60H, con CF = 1;
*, si los dos puntos anteriores son no es cierto, borre las banderas AF y CF. p>
Después del ajuste, el valor de al sigue siendo un código BCD comprimido, es decir, los dos códigos BCD comprimidos se agregan y ajustan, y el resultado sigue siendo un código BCD comprimido.
Formato de instrucción: DAA
Banderas afectadas: AF, CF, PF, SF y ZF (indefinido).
(2) Por favor explique cada instrucción.
Por ejemplo, AND AL, 0FH significa que cuando AL=09H, 09H y 0FH se combinan juntos. Como resultado, AL=09H.
Proceso HTOA
Y AL, 0FH Y lógico. Si AL=09, después de ejecutar la instrucción, AL=09.
Agregar AL, 90HAL 90H→AL, AL=99H
DAA;
ADC AL, número decimal 40H más ajuste
DAA
Remojado en agua para suavizar
HTOA·ENDP
; -
P4: Se permiten expresiones en el funcionamiento de las instrucciones. Por ejemplo, BUF1 y BUF2 son nombres de variables. La sintaxis de las siguientes instrucciones es correcta: (d)
Respuesta .MOV AX, BUF1*BUF2 B .MOV AX, BUF1/BUF2 C .MOV AX, BUF1 ES: BUF2 D .MOV AX, BUF2 -BUF1
Mi pregunta (1) es por qué elegí D. ¿Qué pasó con el resto?
Respuesta: Las variables o etiquetas aparecen en expresiones y representan sus direcciones, y la multiplicación, división y suma de direcciones no tienen sentido. Por lo tanto, el lenguaje ensamblador Intel 8086/8088 prohíbe directamente esta expresión sin sentido. Sin embargo, la resta de direcciones es significativa. Puede obtener la capacidad de la unidad de almacenamiento ocupada por una o más variables y puede obtener la capacidad de la unidad de almacenamiento ocupada por un segmento del programa.