Ensayo

Solo disponible en BuenasTareas
  • Páginas : 5 (1165 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de marzo de 2011
Leer documento completo
Vista previa del texto
1.-El contenido de la localidad 0200 tiene un dato de 8 bits. Realizar un
programa que coloque en la localidad de memoria 0201 el nibble (4
bits) más significativo, tomando en cuenta que el nibble menos significativo
debe ser 0.
MASCARA:
MOV AL, [200] ; mueve el contenido de la localidad 200 a AL
AND AL, F0 ; coloca 1111 0000 en AL
MOV [201], AL ; mueve el contenido de AL a la localidad201
MOV AH, 4C ; mueve el contenido de 4C a AH
INT 21
Codificación en lenguaje máquina:
0100 A0 00 20
0103 24 F0
9105 A2 01 02
0108 4B 4C
010A CD 21
Ejecución:
· R
· T
· T
· T
· T
· E

2.- Realizar un programa que coloque en la localidad de memoria 202 el número menor de los contenidos en las localidades 200 y 201. Considere números sin signo
COMPARA: MOV AL, [200]
CMP AL, [201]JNB SII
MOV AL, [201]
SII: MOV [202], AL
MOV AH, 4C
INT 21

0100 A0 00 02
0103 3A 06 01 02
0107 73 03
0109 A0 01 02
010C A2 02 02
010F B4 4C
0111 CD 21
Si empleamos el DEBUG, podemos utilizar el comando ASSEMBLY e iniciar en la localidad de memoria 100; o bien, podemos utilizar la tabla de instrucciones y codificar directamente en lenguaje de máquina empleando el comando E, quepermite capturar en hexadecimal el programa

4.- Sumar 2 números binarios de 24 bits y almacenar el resultado a partir de la localidad de memoria 0206h. Los bits menos significativos de los números empiezan en las localidades 0200h y 0203h.
Codificación en lenguaje ensamblador:
SUMA:
MOV AL, [200] ; mover el contenido de la localidad 200 a AL
ADD AL, [203] ; sumar el contenido de la localidad201 a AL 8 LSB
MOV [206], AL ; mover el contenido de AL a la localidad 206
MOV AL, [201] ; mover el contenido de la localidad 201 a AL
ADC AL, [204] ; sumar el contenido de la localidad 204 con AL 2º BYTE
MOV [207], AL ; mover el contenido de AL a la localidad 207
MOV AL, [202] ; mover el contenido de la localidad 202 a AL
ADC AL, [205] ; sumar el contenido de la localidad 205 con AL 8 MSBMOV [208], AL ;mover el contenido de AL a la localidad 208
RET
NOTA: Observe que en las instrucciones de MOVer no se afecta ninguna bandera del PSW.
[200] se refiere al contenido de la dirección 200.

EJERCICIO 5. Uso del registro CX como contador. Vamos a mover los 8 bits menos significativos del registro BL al registro BH.
Sean los datos iniciales:
BX = BH y BL = 43A6
La instrucción queusaremos será RLC BX, 1, 8 veces. Para este tipo
de repeticiones usaremos al registro CX como contador.

ROTA8: MOV BX, 43A6 ;(1)
MOV CX, 08 ;(2)
OTRAVEZ: RLC BX, 1 ;(3)
LOOP OTRAVEZ ;(4)
MOV AH, 4C ;(5)
INT 21 ;(6)

NOTA: Observar que en (4) ponemos LOOP OTRAVEZ y como es un salto hacia atrás el DEBUG pone un …………….
Codificación en lenguaje máquina:
0100 B3 A6 43 ;(1)
0103 B908 00 ;(2)
0106 D1 D3 ;(3)
0108 E2 FC ;(4)
010A B4 4C ;(5)
010C CD 21 ;(6)
NOTA: En 0108 saltamos hacia atrás 4 localidades de memoria, es decir:
0000 0100
Como el salto es hacia atrás, lo ponemos como negativo en notación complemento a 2, es decir:
C1 = 1111 1011
+1
C2 = 1111 1100
F C
Cuando saltamos hacia delante el número es positivo. Para salto corto usamos 8 bits y para saltolargo 16 bits.

EJERCICIO 7. Calcular la suma verificación de una serie de datos. La longitud de la serie de datos está en la localidad 201h y la serie comienza en la localidad 202h. Almacenar la suma verificación en la localidad 200h. La suma verificación se forma haciendo la suma O exclusiva entre todos los números de la serie.
SUGERENCIA: Utilice CX como contador.

SUMAVERIF:
MOV CH, 0 ;poner 0 en CH
MOV CL, [201] ;mover el contenido de la localidad 201 a CL
MOV BX, 200 ;mover el contenido de 200 a BX
MOV AL, [BX] ;mover el contenido de BX a AL
SUMAO: INC BX ; incrementar BX
XOR AL, [BX] ;O exclusiva contenidos AL y BX
DEC CX ; decrementar CX
LOOP SUMAO
MOV [200], AL ; mover el contenido de AL a la localidad 200
RET
Codificación en lenguaje máquina:
0100 B5 00...
tracking img