Programas Resueltos:

 

1. Programa en lenguaje ensamblador que compara un número almacenado en la posición 0A10 con un segmento de memoria que contiene números. Cada vez que encuentra en el segmento de memoria un número mayor al de la posición 0A10 incrementa un contador que esta en la posición  0A11.

En la dirección 0A12 y 0A13 esta almacenada la parte baja y la parte alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento.

 

Programa:

           

Siga1   MOV A, [0A12]            ; Lee el siguiente operando         

CMP A, 0A10            ; Compara el dato con el contenido de 0A10

JLE  Siga2            ; Si el dato es menor  o igual al contenido de 0A10 salta, sino

INC 0A11            ;incrementa el contador en 0A11

 

Siga2   INC 0A12                        ;Incrementa la parte baja de la dirección del primer bloque de datos

JNZ  Siga3            ;Si la parte baja es 0, incrementa la parte alta del puntero

INC 0A13

           

Siga3  DEC 0A0F               ; Decrementa el contador

            JNZ  Siga1   

            HLT                             ;Fin

 

2. Un programa en lenguaje ensamblador que examina un segmento de memoria que contiene números. Cada vez que encuentra en el segmento de memoria un número impar, incrementa un contador que esta en la posición 0A10 y cada vez que encuentra un número par, incrementa un contador que esta en la posición 0A11.

En la dirección 0A12 y 0A13 esta almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento.

 

Programa:

           

Siga1   MOV A, [0A12]            ; Lee el siguiente operando         

ANDI A, 01            ; Hace una mascara con el LSB

JZ  Siga2            ; Si el dato es par (z=1) va a siga dos, sino

INC 0A10            ;incrementa el contador en 0A10 (dato impar)

JMP  Siga3            ; salta a siga3

Siga2   INC 0A11                        ;Incrementa el contador en 0A11 (dato par)

 

Siga3   INC 0A12                        ;Incrementa la parte baja de la dirección del primer bloque de datos

JNZ  Siga4            ;Si la parte baja es 0, incrementa la parte alta del puntero

INC 0A13

           

Siga4  DEC 0A0F               ; Decrementa el contador

            JNZ  Siga1   

            HLT                             ;Fin

 

 

 

Hosted by www.Geocities.ws

1