¡Urgente! ! ! Preguntas del examen de principios de microcomputadoras, respuestas con puntaje alto
ORG 2000H
ARY DW -4, 3, -2, 1
CNT DW $ -ARY
VAR DW ARY, $4
.
.
.
MOV AX, ARY; p>MOV BX, COMPENSACIÓN VAR; BX=2008H
MOV CX, CNT; SI, ARY; SI=2000H
Después de ejecutar este segmento del programa,
AX=0FFFCH
BX=2008H
CX= 8
DX=200EH
SI=2000H
; - ---------
2. Programación: Se sabe que hay 100 bytes firmados en la matriz ARRAY Intente escribir un programa fuente en lenguaje ensamblador para calcular los dos números. la matriz. El número de signos cambia entre números adyacentes y el número se almacena en la unidad NUM.
cld
lea si, ARRAY; obtiene la dirección de la matriz ARRAY
mov cx, 100; mov NUM, 0; borra el contador
lodsb; lee el primer elemento de la matriz en el acumulador al
dec cx
y al, 80h; bit, enmascara otros bits
rol al, 1; gira el bit de la izquierda, el bit de signo al bit 0
mov ah, al; cambios Comparar
Cuenta: lodsb; leer un elemento de matriz en el acumulador al
y al, 80h
rol al, 1
xor ah, al; selección positiva de las posiciones de los símbolos de dos elementos adyacentes, lo mismo es 0, la diferencia es 1
agregar NUM, contando
mov ah, al; la posición actual del símbolo del elemento
recuento del bucle; bucle, procesa el siguiente elemento
--------- ---------- -- -- ------ --
3. Programación: A partir de la celda AA, se almacenan 30 números sin signo en 30 celdas consecutivas, busque el número más grande e ingrese a la celda BB, intente programar.
Supongamos que estos 30 números sin signo son todos elementos de bytes.
cld
lea si,AA
lodsb; carga el primer elemento como valor inicial para el número máximo
mov cx, 29
p>
Comparar:
cmp al,[si]
jae $ 4; valor máximo actual gt; = elemento actual
mov al , [ si] ; valor máximo actuallt; elemento actual, actualizar max
inc si
bucle Comparar
mov BB, [si] max enviado a la unidad BB<; /p>