practicas de programacion en ensamblador

Páginas: 19 (4530 palabras) Publicado: 8 de mayo de 2013



















PRACTICAS INFORMATICA 2010-2011



























PRÁCTICA Nº1

Sea un sistema sobre el que se desea controlar su temperatura. La lectura de una sonda de
temperatura se puede realizar leyendo el puerto 125 de E/S, de modo que su valor es la
temperatura en gradoscentígrados (entero con signo). Existe un calefactor y un refrigerador
que pueden activarse o desactivarse poniendo a uno o a cero, los bits 0 y 1, respectivamente,
del puerto 127 de E/S.

a) Realícese un procedimiento en lenguaje ensamblador 8086 que se encargue de monitorizar
la temperatura del sistema, manteniéndola a un valor de TC ºC. La técnica de control será la
siguiente:

-Estando desactivados tanto el calefactor como el refrigerador, existirá un ciclo de histéresis
de valor H, de manera que si la temperatura baja de TC–H entonces se activará el
calefactor hasta que la temperatura alcance TC. Y si estando desactivados tanto el
calefactor como el refrigerador la temperatura supera TC+H entonces se activará elrefrigerador hasta que alcance TC.
- Estando desactivados tanto el calefactor como el refrigerador, permanecerán así mientras
la temperatura T cumpla que TC–H ≤ T ≤ TC+H.

Al procedimiento se le pasará por el registro DL la temperatura de consigna, TC, como un
entero con signo cuya magnitud representa el valor de TC en grados centígrados, y a través de
DH se le pasará el valor dela histéresis, H, como entero sin signo. Diséñese el procedimiento
como uno que no tiene fin una vez llamado (no hay retorno). Deberá diseñarse el código de
manera que se trabaje con tres variables locales implantadas en registros internos: una para la
temperatura de consigna, otra para la consigna más la histéresis, y otra para la consigna
menos lahistéresis.


b) Aunque en este caso no es estrictamente necesario recurrir a ello, modifíquese el
procedimiento anterior de manera que en lugar de variables locales implantadas en registros
internos se usen tres variables implantadas en la memoria, una para la consigna, otra para
la consigna más la histéresis y otra para la consigna menos la histéresis.

c) Modifíquese elprocedimiento realizado en el primer apartado suponiendo ahora que la
temperatura de consigna y la histéresis se han pasado por la pila (TC primero, en forma de
palabra cuyo octeto alto es irrelevante, y a continuación lo mismo con H).















; PLANTILLA DE LA PRACTICA 1A

#MAKE_EXE#
.MODEL SMALL
.CODE

; DEFINICION DE SIMBOLOS:

TC EQU 25 ;TEMPERATURA DE CONSIGNA (25 O EL VALOR QUE SE DESEE)
H EQU 2 ; HISTERESIS


; PROCEDIMIENTO PRINCIPAL QUE LLAMA A LA SUBRUTINA PRACTICA_1A

; CABECERA PARA RETORNAR AL SISTEMA OPERATIVO:
PUSH DS
MOV AX,0
PUSH AX

; PASO DE PARAMETROS:
MOV DL,TC
MOV DH,H
CALL PRACTICA_1A
RETF
PRACTICA_1A:
; (...) AQUI EL CODIGO DE LA PRACTICA
MOV AH,DL
ADD AH,DH
MOV BH,DL
SUB BH,DHTOMAR_TEMP:
MOV AL,00
OUT 127,AL
IN AL,125
CMP AL,AH
JG ENFRIAR
CMP AL,BH
JL CALENTAR
JMP TOMAR_TEMP
RET
ENFRIAR:
MOV AL,10
OUT 127,AL
IN AL,125
CMP AL,DL
JLE TOMAR_TEMP
JG ENFRIAR
CALENTAR:
MOV AL,01
OUT 127,AL
IN AL,125
CMP AL,DL
JGE TOMAR_TEMP
JL CALENTAR
END






En esta práctica, se basa en utilizar el paso de datos por registro, elcuerpo del programa, será un bucle que se encarga de controlar la temperatura que tendrá dos bifurcaciones, una para activar la refrigeración cuando se supere una temperatura preestablecida y otra con el mismo objetivo para la calefacción. El programa se encarga de leer la temperatura por el bus de comunicaciones y actuar sobre los periféricos correspondientes mediante el mismo.

Apartado b:...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion En Ensamblador
  • Programación en ensamblador 8086
  • Practica de programacion
  • Programacion practica
  • Practicas de programacion
  • Practica De Programacion
  • PRACTICA DE PROGRAMACION
  • Practicas De Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS