Documentos de Académico
Documentos de Profesional
Documentos de Cultura
•Conocer y aplicar las instrucciones aritméticas ADD, SUB, MUL, DIV para realizar
operaciones sencillas en datos binarios.
•Programar en ensamblador pequeños programas que lleven instrucciones aritméticas.
•Observar el cambio en el registro de banderas.
•Conocer y aplicar las instrucciones lógicas AND, OR, XOR y de desplazamiento para
la manipulación de bits.
Introducción
Desarrollo
Se puede apreciar que realiza la misma operacion que con el codigo anterior,
brindando como resultado el numero hexadecimal 5C87 almacenado en Bx.
A continuación se muestra un programa que desplaza 1 bit a la izquierda 3 números de
8 bits que se encuentran en las localizaciones de memoria consecutivas a partir de la
memoria con offset 1033h. Los datos son los siguientes:
Se pide que se corra paso a paso el programa y se observe como cambian los
registros. Observe los nuevos valores que calculó el programa que se encuentran
guardados en las mismas localizaciones de memoria de los datos originales. ¿A qué
operación aritmética es equivalente la instrucción lógica de desplazamiento a la
izquierda?
Al inicio todas las banderas se encuentran en 0 a excepción de IF
Luego en la instrucción Mov [1034h],dl;copia en la localidad de memoria 1034h el
nuevo valor
PF cambia a 1
Pero al terminar la emulación todas las banderas regresan a 0 a excepción de IF.
Luego se pide que se modifique ahora el programa cambiando todas las instrucciones
de desplazamiento a la izquierda por desplazamientos a la derecha. Observe los
cambios en los valores e indique a que operación aritmética es equivalente la
instrucción de desplazamiento a la derecha.
Para realizar los desplazamientos hacia la derecha solo basta cambiar todas las
instrucciones sal por sar, como se muestra a continuación
Mov al,[1033h]; copia en al el primer dato
sar al,1; desplaza a la derecha el dato
Mov [1033h],al; copia en la localización de memoria 1033h el nuevo valor
Mov dl,[1034h]; copia en dl el segundo dato
sar dl,1; rota a la derecha el segundo dato
Mov [1034h],dl;copia en la localidad de memoria 1034h el nuevo valor
Mov al,[1035h]; copia en al el tercer dato
sar al,1; rota a la derecha el tercer dato
Mov [1035h],al; copia en la localidad de memoria 1035h el nuevo valor
Hlt
[1033h] db 04h
[1034h] db 05h
[1035h] db 10h