Sie sind auf Seite 1von 13

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

PRCTICA 6
FAMILIARIZARSE CON LOS VALORES ASCII
DE TODAS LAS FUNCIONES DEL TECLADO

1.

INTRODUCCIN

La prctica siguiente est enfocada a que el alumno se familiarice con los valores
ASCII de todas las funciones del teclado. Ya que mediante estos valores ASCII se puede
obtener cualquier carcter, signo o smbolo. Adems, se empieza a introducir el uso de los
colores en el modo alfanumrico.

2.

OBJETIVOS

2.1.

El alumno aprender a hacer programas residentes.

2.2.

El alumno aprender a usar el trazado de lneas y marcos en cualquier


programa.

2.3.

Aprender a usar y cambiar atributos para color.

2.4.

Conocer los cdigos ASCII de todas las teclas.

2.5.

Aprender a ampliar cualquier tipo de ventana

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

6-1

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

3.

DESARROLLO

3.1

Capturar el siguiente programa con el nombre de TASCII.ASM.


;

TASCII.COM

R. Cortes B.

4/ago/87

;Este programa es una adaptacin autorizada de COLORES.COM escrito por R. Tavares y T.


;Maldonado S. Es un ejemplo de programa residente y a la vez constituye una utilera valiosa
;para recordar caracteres especialmente comprendidos entre 1 y 255. Se ejecuta el programa, y
;al accionarse la combinacin Alt-Shift izquierdo se despliega una tabla que contiene los
;cdigos. Con cualquier tecla se suprime la tabla. Adaptado para IDEAL de turbo assembler por
;S. Saucedo, Ene/93.
;Ensamblar y ligar mediante
tasm tascii
;
tlink /t tascii
;

Sesgo1
Seg1

EQU
EQU

9*4
9*4+2

;Intercepta servicio al teclado


;Palabra para el segmento Ventana col *
;14 hileras

IDEAL
DOSSEG
tiny
MODEL
SMART
CODESEG
assume
org

PROC

;Modelo para archivos *.COM

cs:_text,ds:_text
100h

Programa
jmp

Carga

LABEL

Normal

Sesgo2

DW

Seg2

DW

TABLA

DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB

MAYSCULAS

MINSCULAS
LETRAS
65 A 72 H 79 O 86 V 97 a 104 h 111 0 118 v 65 90
66 B 73 I 80 P 87 W 98 b 105 i 112 p 119 w A
Z
67 C 74 J 81 Q 88 X 99 c 106 j 113 q 120 x

68 D 75 K 82 R 89 Y 100 d 107 k 114 r 121 y 97 122


69 E 76 L 83 S 90 Z 101 e 108 l 115 s 122 z a
z
70 F 77 M 84 T
102 f 109 m 116 t

71 G 78 N 85 U
103 g 110 n 117 u

SIGNOS
38 & 42 * 45 58 : 61 = 64 @
NMEROS
33 ! 36 $ 40 ( 43 + 46 . 59 ; 62 >
48
57
35 # 37 % 41 )
47 / 60 < 63 ?

0
9

Descarga

DB

1764 dup

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

()

;rea ventanas x 2
6-2

LENGUAJE ENSAMBLADOR 80386

PROC

PRCTICA 6

Inicia
pushf
call
push
push
mov
mov
mov
mov
and
cmp
Jnz
Call
Call
Jmp

PROC

;Almacena ventanas

[dword cs:Sesgo2]
dx
ax
ds
cx
di
es
ax,0040h
ds,ax
si,0017h
al,,[si]
al,10
al,10
Sale
Prepara
Final
Sale

si
bx

;Salva todos los registros para cuidar el despliegue

;Que est activo


;40h para
;segmento de datos
;inversin de video
;Combinacin Alt-Shift izquierdo
;Se accion?
;Salto corto
;Llama a procedimiento
;Salto largo

Prepara

;Salva RAM de video en buffer Descarga

mov
mov
push
pop
mov
mov
mov
mov
mov

ax,0b800h
es,ax
cs
ds
si,offset Descarga
di,0
cx,Area
bx,1
dx,0

;Apunta a RAM de video

mov
mov
inc
inc
mov
mov
inc
inc
inc
cmp
jbe
mov
mul
mov
inc

al,[es:di]
[si],al
di
si
al,[es:di]
[si],al
di
si
dx
dx,62
etiq2
ax,160
bx
di,ax
bx

;Trae carcter ASCII


;Lo salva
;Ajusta apuntadores

loop
ret

etiq1

;Salva segmento de cdigo


;Recupera segmentos de datos

;Contador rea = 14*64

etiq1:

;Hace lo mismo para atributo


;Ajusta apuntador y contador

;Lleg a 63 ?
;Si, salta
;160 bytes por fila

;Aumenta fila

etiq2:

ENDP

Prepara

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

6-3

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

Sale:
Jmp

PROC
mov
mov
mov
mov
mov

Salida
Ventana

;Exhibe tabla ASCII extendida

si,offset TABLA
di,0
cx,Area
bx,1
dx,0

;Apunta a la tabla de ASCII

al,[si]
[es:di],al
di
al,74h
[es:di],al
di
si
dx
dx,62
@@20
dx,1
ax,160
bx
di,ax
bx

;Trae cdigo ASCII


;Lo pone en RAM de video

;Contador
;Fila 1
;Columna 0

@@10:
mov
mov
inc
mov
mov
inc
inc
inc
cmp
jbe
mov
mov
mul
mov
inc

;Atributo (rojo sobre blanco)


;Lo pone en RAM de video

;Incrementa columna

;160 bytes por fila


;Multiplica por nmero de fila
;ES:DI apunta a RAM de video

@@20:
loop
ret

ENDP
;

@@10

Ventana
Repone ventana original cuando se oprime una tecla..

PROC

Final
mov
int
mov
mov
mov
mov
mov

ah,0
16h
si,offset Descarga
di,0
cx,Area
bx,1
dx,0

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

;Espera a que se accione una tecla


;Para borrar la tabla

6-4

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

@@10:
mov

sb

mov
inc
cmp
Jbe
mov
mov
mul
mov
inc

sb
dx
dx,62
@@20
dx,1
ax,160
bx
di,ax
bx

;Trae carcter y lo pone en RAM de video


;e incrementa apuntadores
;Trae atributo y lo pone en RAM de video
;Incrementa columna
;Lleg al final?
;No, brinca
;Otra fila

;Aumenta fila

@@20:
loop
ret

ENDP

@@10

Final

Salida:
pop
pop
iret

ENDP

bx
si

di
ax

cx
dx

;Recupera los registros


;Retorno de IRQ9

Inicia

LABEL
Resid
YaResid
;

es
ds

Fin
DB
DB
DB

El programa con tabla ASCII qued residente,13,10


Se activa con Alt-Shift izquierda,s
El programa tabla ASCII ya est residente,13,10,s

Esta parte del programa corre una vez y deja residente a INICIA..

PROC

Carga
or
mov
cmp
jne
mov
mov
mov
mov
int
mov
int

ax.ax
ds,ax
[byte 4dfh],123
@@10
ax,cs
ds,ax
ah,9
dx,offset YaResid
21h
ax,4c00h
21h

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

;Apunta a parte baja de RAM


;Con DS:SI
;Ya residente?
;No, salta
;Avisa que ya est residente

;Saca cadena
;Regreso normal a DOS

6-5

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

@@10:
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
sti
;

cx,0
dx,184fh
al,0
bh,15
ah,6
10h

bh,0
dx,0
ah,2
10h
ax,cs
ds,ax
ah,9
dx,offset Resid
21h
dx,offset Fin
27h
20h

;Toda la pantalla
;Sigue blanco sobre negro
;Funcin de movimiento de pantalla
;Llamada a BIOS

;Pgina #0
;Rengln 0, columna 0
;Funcin de ubicacin
;llamada a BIOS

;Avisa que instal TASCII


;Queda residente
;Terminacin para COM

Carga
Programa

END Programa
3.2

;Vrtice superior izquierdo

Ubicar el cursor

mov
mov
mov
int
mov
mov
mov
mov
int
mov
int
int

ENDP
ENDP

;Habilita interrupciones

Limpia la pantalla

mov
mov
mov
mov
mov
int
;

;Pone bandera. Deshabilita interrupciones


[byte 4dfh],123
;Trae vector
si,Sesgo1
ax,[si]
;Salva sesgo de vector
[cs:Sesgo2]ax
si,Sesgo1
;Trae segmento de vector
ax,[si[
;Lo salva
[cs,Seg2],ax
[word ptr ds:Sesgo1],offset Inicia
ax,cs
[ds:Seg1],ax

;Fin del programa TASCII.ASM

Ensamblar el programa anterior mediante:


C:\>tasm /zi tascii

3.3

Ligar el programa TASCII mediante:


C:\>tlink /t tascii

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

6-6

LENGUAJE ENSAMBLADOR 80386

3.4

PRCTICA 6

Ejecutar el programa anterior mediante:


C:\>tascii

4. TAREAS
4.1

Cambiar de color la tabla ASCII, usando la tabla dada al final y que el cuadro quede
ms centrado en la pantalla.

4.2

Ampliar la tabla de valores ASCII con todas las funciones del teclado.

4.3

Modificar la informacin exhibida para mostrar los caracteres ASCII para trazado de
lneas y marcos.

218
196
194
191
201
202
187

179

195

180 204

185

206

192
193
217

200
202
188

213
205
209
184

214
210
183

186

198

181 199

182

212
207
190

211
208 189

219

220

221

222

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

223

6-7

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

TABLA PARA ATRIBUTOS DE COLOR


FRENTE

FONDO

negro
azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro
azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro
azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro

Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
Negro
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
azul
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
verde
cian

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

VALOR EN
HEXADECIMAL
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
10H
11H
12H
13H
14H
15H
16H
17H
18H
19H
1AH
1BH
1CH
1DH
1EH
1FH
20H
21H
22H
23H
24H
25H
26H
27H
28H
29H
2AH
2BH
2CH
2DH
2EH
2FH
30H

VALOR EN
DECIMAL
0
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
6-8

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

FRENTE

FONDO

azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro
azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro
azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro
azul
verde
cian

cian
cian
cian
cian
cian
cian
cian
cian
cian
cian
cian
cian
cian
cian
cian
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
rojo
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
magenta
caf
caf
caf
caf

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

VALOR EN
HEXADECIMAL
31H
32H
33H
34H
35H
36H
37H
38H
39H
3AH
3BH
3CH
3DH
3EH
3FH
40H
41H
42H
43H
44H
45H
46H
47H
48H
49H
4AH
4BH
4CH
4DH
4EH
4FH
50H
51H
52H
53H
54H
55H
56H
57H
58H
59H
5AH
5BH
5CH
5DH
5EH
5FH
60H
61H
62H
63H

VALOR EN
DECIMAL
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
6-9

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

FRENTE

FONDO

rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso
negro
azul
verde
cian
rojo
magenta
caf
blanco
gris
azul intenso
verde intenso
cian intenso
rojo intenso
magenta intenso
amarillo
blanco brilloso

caf
caf
caf
caf
caf
caf
caf
caf
caf
caf
caf
caf
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco
blanco

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

VALOR EN
HEXADECIMAL
64H
65H
66H
67H
68H
69H
6AH
6BH
6CH
6DH
6EH
6FH
70H
71H
72H
73H
74H
75H
76H
77H
78H
79H
7AH
7BH
7CH
7DH
7EH
7FH

VALOR EN
DECIMAL
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

6-10

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

MODO ALFANUMRICO (TEXTO)


En el modo alfanumrico o de texto, cada posicin de despegue de carcter se define
mediante dos bytes en el buffer del adaptador y el esquema del byte de atributo es el siguiente:
Bit No.

----

Atributo

----

CENTELLEO
COLOR DE FONDO
INTENSIDAD
COLOR DE PRIMER PLANO

Las letras R, G y B representa los colores rojo, verde y azul, respectivamente: Se


conserva esta nomenclatura inglesa debido a que en el mercado se ofrecen monitores de color
bajo estas caractersticas.
Los bits de centelleo e intensidad se aplican en el primer plano (en el carcter que se
despliega). En el modo de texto, el adaptador de color produce despliegues con fondo
dependiendo del byte de atributo
El fondo puede tener 8 colores, dados por las diferentes combinaciones de los bits R, G
y B (000 a 111), y el primer plano puede tener 16 colores porque se incluye el bit de intensidad
(0000 a 1111).
En la siguiente tabla se muestran los valores de color para el primer plano.
I

R G B

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

COLOR
NEGRO
AZUL
VERDE
CIAN
ROJO
MAGENTA
CAF
BLANCO
GRIS
AZUL CLARO
VERDE CLARO
CIAN CLARO
ROJO CLARO
MAGENTA CLARO
AMARILLO
BLANCO (alta intensidad)

6-11

LENGUAJE ENSAMBLADOR 80386

PRCTICA 6

Algunos ejemplos de bytes de atributo son los siguientes:


BINARIO
DEC HEX
CRGB IRGB
0000
0001
1110
1001

0001
0100
0101
0110

01
20
229
150

01
14
E5
96

COLOR
AZUL/NEGRO
ROJO/AZUL
MAGENTA/AMARILLO
CAF/AZUL CLARO

EJEMPLOS DE CORRIDA DE TASCII


C:\SEM386>TASCII
El programa con tabla ASCII qued residente. Se activa con Alt-Shft izquierda
C:\SEM386>TASCII
El programa tabla ASCII ya estaba residente

EJEMPLO DE ACTIVACIN CON ALT-SHFT IZQ: AS SE VE EN PANTALLA

MAYSCULAS

minsculas
LETRAS

65 A 72 H 79 O 86 V 97 a 104 h 111 o 118 v 65..90

66 B 73 I 80 P 87 W 98 b 105 i 112 p 119 w A


z ante0
67 C 74 J 81 Q 88 X 99 c 106 j 113 q 120 x

68 D 75 K 82 R 89 Y 100 d 107 k 114 r 121 y 97-122 azul,0


69 E 76 L 83 S 90 Z 101 e 108 l 115 s 122 z a
z

70 F 77 M 84 T
102 f 109 m 116 t

0,0

71 G 78 N 85 U
103 g 110 n 117 u

,0

SIGNOS
38 & 42 * 45 58 : 61 =
NMEROS

33 36 $ 40 ( 43 + 46 . 59 ; 62 >
48...57

34 # 37 % 41 )
47 / 60 < 63
0
P

CODESEG

;
De CADENAS,OBJ y MANCADE.OBJ

EXTRN
SacaCadena:proc,LargoCad:proa

;
De VIDEO.OBJ

EXTRN
IniciaPan:proc,PanIrXY:proc,PanLimpRect:proa

EXTRN
PanPoneCar:proc,FijaFondo:proc,FijaFrente:proa

EXTRN
PanPoneCad:proc,QuitaBrillo:proc,PoneBrillo:proa

EXTRN
PoneDest:proc,QuitaDest:proa

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES


EDICIN: PROFESOR PABLO FUENTES RAMOS

6-12

Nombre de archivo: practica 6 ensamblador 80386


Directorio:
C:\Computacion V\practicas 80386
Plantilla:
C:\WINDOWS\Application
Data\Microsoft\Plantillas\Normal.dot
Ttulo:
PRCTICA 6
Asunto:
Prcticas de laboratorio de Computacin V
Autor:
M. en C. Salvador Saucedo Flores
Palabras clave:
Comentarios:
Fecha de creacin:
12/07/02 09:49 A.M.
Cambio nmero:
45
Guardado el:
30/07/02 10:28 A.M.
Guardado por:
Pablo Fuentes Ramos
Tiempo de edicin: 889 minutos
Impreso el:
30/07/02 10:28 A.M.
ltima impresin completa
Nmero de pginas:
12
Nmero de palabras:
2,056 (aprox.)
Nmero de caracteres: 11,721 (aprox.)

Das könnte Ihnen auch gefallen