Ensamblador - mediente emu8086, imprimir en una pantalla VGA, la temperatura en tiempo real ocilando entre 40° y 8

 
Vista:
sin imagen de perfil

mediente emu8086, imprimir en una pantalla VGA, la temperatura en tiempo real ocilando entre 40° y 8

Publicado por goldo (1 intervención) el 01/10/2023 02:49:22
necesito implimentar un sistema de de control automatico mediante emu8086, que mantega la temperatura ocilando entre 40° y 80°c. ademas el valor de la temperatura leido por el sensor es mostrado en una pantalla VGA, donde se pueda leer
temp[C]: XX, donde XX representa el valor de la temperatura leido por el sensor en el puerto 125.
para llamar la atencion del usuario, el texto es pintado de color rojo y fpndo amarillo cuando la temperatura es menor o igual a 60°C y el texto es pintado de color amarillo y fondo rojo cuando la temperatura es mayor a 60°C

hasta el momento me falta poder imprimir los valores de la temperatura en numero ya que en la pantalla VGA, se me muestra pero en ascii.

si alguien me puede ayudar porfavor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
org 100h
 
#start=thermometer.exe#
 
#make_bin#
 
mov cx, cs
mov ds, cx
 
start:
 
 in al,125
 mov bl,al
 
cmp al, 40
jl  low
 
cmp al, 80
jle  ok
jg   high
 
low:
 
mov al, 1
out 127, al
 
mov     ax, 0b800h
mov     ds, ax
 
mov [02h], 'T'
 
mov [04h], 'e'
 
mov [06h], 'm'
 
mov [08h], 'p'
 
mov [0ah], '['
 
mov [0ch], 'C'
 
mov [0eh], ']'
 
mov [10h], ':'
 
mov [12h], bl
mov ax, 3
int 10h
 
mov ax, 1003h
mov bx, 0
int 10h
mov     ax, 0b800h
mov     ds, ax
mov cx, 12
mov di, 03h
 
c:  mov [di], 11101100b
    add di, 2
    loop c
jmp ok
 
high:
 
mov al, 0
out 127, al
 
 
 
mov     ax, 0b800h
mov     ds, ax
 
mov [02h], 'T'
 
mov [04h], 'e'
 
mov [06h], 'm'
 
mov [08h], 'p'
 
mov [0ah], '['
 
mov [0ch], 'C'
 
mov [0eh], ']'
 
mov [10h], ':'
 
mov [12h], bl
mov ax, 3
int 10h
 
mov ax, 1003h
mov bx, 0
int 10h
mov     ax, 0b800h
mov     ds, ax
mov cx, 12
mov di, 03h
 
d:  mov [di], 11001110b
    add di, 2
    loop d
jmp ok
 
ok:
jmp start
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder