Problema: escriba un programa en el microprocesador 8086 para determinar el módulo de los elementos n de 8 bits correspondientes de la primera array con n números de 8 bits de la segunda array, donde el tamaño «n» se almacena en el desplazamiento 500 y los números de la primera array se almacenan desde el desplazamiento 501 y los números de la segunda array se almacenan desde la compensación 601 y almacenan los números resultantes en la primera array, es decir, la compensación 501.
Ejemplo –
Algoritmo –
- Almacene 500 en SI y 601 en DI y cargue datos desde el desplazamiento 500 para registrar CL y establezca el registro CH en 00 (para contar).
- Aumenta el valor de SI en 1.
- Cargue el primer número (valor) del siguiente desplazamiento (es decir, 501) para registrar AL.
- almacenar 00 en el registro AH.
- Divida el valor en el registro AX por el valor en el desplazamiento DI.
- Almacene el resultado (valor del registro AH) en el desplazamiento de memoria SI.
- Aumenta el valor de SI en 1.
- Aumente el valor de DI en 1.
- Bucle por encima de 6 hasta que el registro CX obtenga 0.
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
400 | MOV SI, 500 | SI<-500 |
403 | CL MOV, [SI] | CL<-[SI] |
405 | CA MOV, 00 | CH<-00 |
407 | INC SI | SI<-SI+1 |
408 | MOV DI, 601 | DI<-601 |
40B | MOV AL, [SI] | AL<-[SI] |
40D | MOV AH, 00 | AH<-00 |
40F | DIV [DI] | AX=AX/[DI] |
411 | MOV [SI], AH | AH->[SI] |
413 | INC SI | SI<-SI+1 |
414 | INC DI | DI<-DI+1 |
415 | BUCLE 40B | SALTAR A 40B SI CX!=0 y CX=CX-1 |
417 | HLT | final |
Explicación –
- MOV SI, 500: establezca el valor de SI en 500
- MOV CL, [SI]: cargar datos desde el desplazamiento SI al registro CL
- MOV CH, 00: establece el valor del registro CH en 00
- INC SI: aumenta el valor de SI en 1.
- MOV DI, 600: establezca el valor de DI en 600.
- MOV AL, [SI]: carga el valor del desplazamiento SI al registro AL
- MOV AH, 00: establece el valor del registro AH en 00.
- DIV [DI]: Divide el valor del registro AX por el contenido en el desplazamiento DI.
- MOV [SI], AH: almacena el valor del registro AH en el desplazamiento SI.
- INC SI: aumenta el valor de SI en 1.
- INC DI: aumenta el valor de DI en 1.
- BUCLE 408: salta a la dirección 408 si CX no es 0 y CX=CX-1.
- HL: detener
Publicación traducida automáticamente
Artículo escrito por anamika9988 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA