Programación Ensamblador
6. ASCII y BCD
El ASCII
El ASCII o American Standard Code for Information Interchange (Codigo estandar americano para el intercambio de informacion) es una serie completa de los caracteres y numeros que forman las palabras, a los cuale se les da un determinado numero que va desde el 0 al 255 y con los cuales se realizan intercambio de informacion independientemente del ordenador y tipo de sistema operativo que utilizemos.
Este sistema es utilizado normalmente para texto , y su almacenamiento en memoria o fichero es de un byte por cada letra/numero/simbolo de forma que la palabra "hola" ocuparia 4 bytes, uno por cada una de las letras que la componen.
Tabla ASCII
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
27
28
29
30
31
32
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153 ™
154
155
156
157
158
159
160
161 ¡
162 ¢
163 £
164
165 ¥
166
167 §
168
169 ©
170 ª
171 «
172 ¬
173
174 ®
175 ¯
176 °
177 ±
178 ²
179 ³
180
181 µ
182 ¶
183 ·
184
185 ¹
186 º
187 »
188
189
190
191 ¿
192 À
193 Á
194 Â
195 Ã
196 Ä
197 Å
198 Æ
199 Ç
200 È
201 É
202 Ê
203 Ë
204 Ì
205 Í
206 Î
207 Ï
208 Ð
209 Ñ
210 Ò
211 Ó
212 Ô
213 Õ
214 Ö
215 ×
216 Ø
217 Ù
218 Ú
219 Û
220 Ü
221 Ý
222 Þ
223 ß
224 à
225 á
226 â
227 ã
228 ä
229 å
230 æ
231 ç
232 è
233 é
234 ê
235 ë
236 ì
237 í
238 î
239 ï
240 ð
241 ñ
242 ò
243 ó
244 ô
245 õ
246 ö
247 ÷
248 ø
249 ù
250 ú
251 û
252 ü
253 ý
254 þ
255 ÿ
Esta es la tabla de codigos de ASCII, aunque del 1 al 31 no se vea nada, en realidad si lo hay pues son codigos de control del propio sistema, el 32 no se ve pero es el codigo del espacio.
No se debe confundir la taba ASCII con la ANSI que es otra tabla tambien de caracteres parecida al ASCII pero con codigos distintos a partir del 128, desde el 1 al 128 son las dos tablas iguales pero a partir del 128 cada una de ellas es distinta.
El BCD
El BCD o Binary Coded Decimal (Codigo Binario-decimal) es un sistema que se utiliza para representar numeros de forma que cada numero ocupe 4 bits , osea que en un byte podriamos almacenar dos numeros en vez de uno como el sistema ASCII, para ello se utiliza el siguiente sistema:
Un byte son 8 bits y por lo tanto si lo dividimos en grupos de 4 obtenemos dos grupos de 4 bits por byte.
Pues ahora recordemos el sistema binario de la leccion anterior y tenemos la siguiente tabla:
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
Son los numeros del 0 al 9 en binario, solo necesitamos del 0 al 9 pues los demas son combiaciones de ellos, osea, el 10 es el 1 y el 0 y asi cualquier numero.
Pues como podemos observar con tan solo 4 bits podemos reprentar cualquier numero del 0 al 9, y entonces tenemos que si tenemos 2 grupos de 4 bits por caba byte, entonces podemos almacenar dos numeros en byte en vez de uno como con el ASCII, para ello supongamos que queremos al macenar el numero 90.
Sacamos el 9 que es 1001 y el 0 que es 0000, entonces los unimos y tenemos:
10010000 al contar tenemos 8 bits y hemos almacenado dos numeros dentro del byte.
Evidentemente por cada byte podemos almacenar del 0 al 99, si quieremos almacenar un numero mayor tendriamos que usar los bits de otro byte y juntarlos, pero por ejemplo para almacenar el numero 356.999 osea que tenemos 6 numeros, necesitariamos 6 bytes, mientras que con el sistema de bits tan solo necesitariamos 3 bytes (2 numeros por cada byte).

