Problema: escriba un programa en el microprocesador 8086 para multiplicar dos números de 8 bits, donde los números se almacenan desde el desplazamiento 500 y almacenan el resultado en el desplazamiento 600.
Ejemplos: las entradas y salidas se dan en representación hexadecimal.
Algoritmo –
- Cargue datos desde el desplazamiento 500 para registrar AL (primer número)
- Cargue datos del desplazamiento 501 al registro BL (segundo número)
- Multiplícalos (AX=AL*BL)
- Almacene el resultado (contenido del registro AX) para compensar 600
- Deténgase
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
400 | MOV SI, 500 | SI=500 |
403 | MOV DI, 600 | DI=600 |
406 | MOV AL, [SI] | AL<-[SI] |
408 | INC SI | SI=SI+1 |
409 | MOV BL, [SI] | BL<-[SI] |
40B | MUL BL | AX=AL*BL |
40D | MOV [ED], AX | AX->[DI] |
40F | HLT | FINAL |
Explicación –
- MOV SI, 500 conjunto 500 a SI
- MOV DI, 600 conjunto 600 a DI
- MOV AL, [SI] carga el contenido del desplazamiento SI para registrar AL
- INC SI aumenta el valor de SI en 1
- MOV BL, [SI] carga el contenido del desplazamiento SI para registrar BL
- MUL BL multiplica el contenido del registro AL y BL
- MOV [DI], AX almacena el resultado (contenido del registro AX) para compensar DI
- Fin del HLT .
Publicación traducida automáticamente
Artículo escrito por Amber_Saxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA