Problema: escriba un programa para encontrar el valor mínimo en una array dada en el microprocesador ensamblado 8086
Ejemplo: suposiciones: la dirección inicial de la array de entrada es 0500 y almacena el resultado en la dirección 0600
Algoritmo –
- Asignar valor 500 en SI y 600 en DI
- Mueva el contenido de [SI] en CL e incremente SI en 1
- Asigne el valor 00 H a CH
- Mover el contenido de [SI] en AL
- Disminuir el valor de CX en 1
- Aumentar el valor de SI en 1
- Mover el contenido de [SI] en BL
- Compara el valor de BL con AL
- Vaya al paso 11 si la bandera de acarreo está configurada
- Mover el contenido de BL en AL
- Vaya al paso 6 hasta que el valor de CX sea 0 y disminuya CX en 1
- Mover el contenido de AL en [DI]
- detener el programa
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIOS |
---|---|---|
0400 | MOV SI, 500 | SI <- 500 |
0403 | MOV DI, 600 | ED <- 600 |
0406 | CL MOV, [SI] | CL <- [SI] |
0408 | CA MOV, 00 | CH <- 00 |
040A | INC SI | SI <- SI+1 |
040B | MOV AL, [SI] | AL <- [SI] |
040D | DIC CX | CX <- CX-1 |
040E | INC SI | SI <- SI+1 |
040F | MOV BL, [SI] | BL <- [SI] |
0411 | CMP AL, BL | AL-BL |
0413 | JC 0417 | Saltar si llevar es 1 |
0415 | MOV AL, BL | AL <-BL |
0417 | BUCLE 040E | Saltar si CX no es igual a 0 |
0419 | MOV [DI], AL | [DI] <- AL |
041B | HLT | Fin del programa |
Explicación –
- MOV SI, 500 asigna 500 a SI
- MOV DI, 600 asigna 600 a DI
- MOV CL, [SI] mueve el contenido de [SI] al registro CL
- MOV CH, 00 asigna 00 al registro CH
- INC SI aumenta el valor SI en 1
- MOV AL, [SI] mueve el contenido de [SI] al registro AL
- DEC CX reduce el contenido del registro CX en 1
- INC SI aumenta el valor SI en 1
- MOV BL, [SI] mueve el contenido de [SI] al registro BL
- CMP AL, BL resta el valor del registro BL de AL y modifica los registros de bandera
- JC 0417 salta a la dirección 0417 si se establece la bandera de acarreo
- MOV AL, BL mueve el contenido del registro BL al registro AL
- LOOP 040E ejecuta el bucle hasta que CX no es igual a cero y disminuye el valor de CX en 1
- MOV [DI], AL mueve el contenido de AL a [DI]
- HLT detiene la ejecución del programa
Publicación traducida automáticamente
Artículo escrito por anamika9988 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA