Tabla del sistema numérico hexadecimal. Tutorial ilustrado sobre gráficos digitales.

sistema numérico hexadecimal, es, con diferencia, el medio más popular para registrar de forma compacta números binarios. Es muy utilizado en el desarrollo y diseño de tecnología digital.

Como sugiere el nombre, la base de este sistema es el número dieciséis. 16 o en hexadecimal 10 dieciséis . Para evitar confusiones, al escribir números en sistemas numéricos distintos del decimal, indicaremos la base del sistema numérico en la parte inferior derecha de la notación numérica principal. Dado que la base del sistema es el número dieciséis, significa que para representar los números necesitamos dieciséis dígitos. Los primeros diez dígitos se toman del sistema decimal que conocemos (0,1,..,8,9) y también se añaden seis letras del alfabeto latino (a,b,c,d,e,f). Por ejemplo, en el número hexadecimal 3f7c2, las letras "f" y "c" son dígitos hexadecimales.

Contar en hexadecimal es similar a contar en decimal. Intentemos contar y escribir números construyéndolos a partir de los dieciséis dígitos disponibles:

Cero - 0 ;
Uno - 1 ;
Dos - 2 ;
...
etcétera…
...
Ocho - 8 ;
Nueve - 9 ;
Diez - a;
Once - b;
Doce - C;
Trece - d;
Catorce - mi;
Quince - F;

¿Qué hacer a continuación? Todos los números se han ido. ¿Cómo representar el número dieciséis? Hagamos lo mismo que hicimos en el sistema decimal. Allí introdujimos el concepto de diez, aquí introduciremos el concepto de “dieciséis” y diremos que dieciséis es uno “dieciséis” y cero unos. Y esto ya se puede escribir: "10 16".

Entonces, Dieciséis - 10 16 (uno "dieciséis", cero unos)
Diecisiete - 11 16 (un "dieciséis", una unidad)
...
etcétera…
...
Veinticinco - 19 16 (uno "dieciséis", nueve unidades)
Veintiseis - 1a 16 (uno "dieciséis", diez unidades)
Veintisiete - 1b 16 (uno "dieciséis", once unos)
...
etcétera…
...
Treinta - 1e 16 (uno "dieciséis", catorce unos)
Treinta y uno - 1f 16 (uno "dieciséis", quince unidades)
Treinta y dos - 20 16 (dos dieciséis, cero unos)
Treinta y tres - 21 16 (dos dieciséis, uno uno)
...
etcétera…
...
doscientos cincuenta y cinco - f 16 (quince por "dieciséis", quince unidades)

doscientos cincuenta y seis - 100 16 (uno "doscientos cincuenta y seis", cero "dieciséis", cero unos)
doscientos cincuenta y siete - 101 16 (uno "doscientos cincuenta y seis", del cero al "dieciséis", uno uno)
doscientos cincuenta y ocho - 102 16 (uno "Doscientos cincuenta y seis", del cero al "dieciséis", dos unidades)
...
etcétera...
...

Siempre que hayamos agotado el conjunto de dígitos para mostrar el siguiente número, ingresamos unidades de conteo más grandes (es decir, contar de “dieciséis”, “doscientos cincuenta y seis”, etc.) y escribimos el número ampliado en un dígito.

considere el numero 3e2c 16 escrito en sistema numérico hexadecimal. Podemos decir de él que contiene: tres x cuatro mil noventa y seis, “e” (catorce) x doscientos cincuenta y seis, dos x dieciséis y “c” (doce) unos. Y puede obtener su valor a través de los números incluidos en él de la siguiente manera.

3e2c 16 = 3 *4096+14 *256+2 *16+12 *1, aquí y debajo el signo * (asterisco) significa multiplicación.

Pero la serie de números 4096, 256, 16, 1 no es más que potencias enteras del número dieciséis (la base del sistema numérico) y por tanto se puede escribir:

3e2c 16 = 3 *16 3 +14 *16 2 +2 *16 1 +12 *16 0

De manera similar, para una fracción hexadecimal (número fraccionario), por ejemplo: 0.5a2 16 de él podemos decir que contiene: cinco dieciseisavos, “a” (diez) doscientos cincuenta y seis y dos cuatro mil noventa y seis. Y su valor se puede calcular de la siguiente manera:

0.5a2 16 = 5 *(1/16) + 10 *(1/256) + 2 *(1/4096)

Y aquí hay una serie de números 1/16; 1/256 y 1/4096 no son más que potencias enteras de dieciséis y también podemos escribir:

0.5a2 16 = 5 *16 -1 + 10 *16 -2 + 2 *16 -3

Para el número mixto 7b2.1f9 podemos escribir de la misma forma:

7b2.1f9 = 7 *16 2 +11 *16 1 +2 *16 0 +1 *16 -1 +15 *16 -2 +9 *16 -3

Numeremos los dígitos de la parte entera de algún número hexadecimal, de derecha a izquierda, como 0,1,2...n (¡la numeración comienza desde cero!). Y los dígitos de la parte fraccionaria, de izquierda a derecha, como -1,-2,-3...-m, entonces el valor de un determinado número hexadecimal se puede calcular usando la fórmula:

N = d n 16 n +d n-1 16 n-1 +…+d 1 16 1 +d 0 16 0 +d -1 16 -1 +d -2 16 -2 +…+d -(m-1) 16 -(m-1) +d -m 16 -m

Dónde: norte- el número de dígitos de la parte entera del número menos uno;
metro- el número de dígitos en la parte fraccionaria del número
yo- dígito parado en i-ésimo rango

Esta fórmula se llama fórmula para la expansión bit a bit de un número hexadecimal, es decir número escrito en sistema numérico hexadecimal. Si reemplazamos el número dieciséis en esta fórmula con algún número arbitrario q, entonces obtenemos la fórmula de expansión del número escrito en qth sistema numérico, es decir con base q:

N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q - (m-1) +d -m q -m

Usando esta fórmula siempre puedes calcular el valor de un número escrito en cualquier sistema numérico posicional con base q.

Otros sistemas numéricos se pueden encontrar en nuestro sitio web utilizando los siguientes enlaces.

¡El resultado ya ha sido recibido!

Sistemas numéricos

Hay sistemas numéricos posicionales y no posicionales. El sistema numérico arábigo que utilizamos en La vida cotidiana, es posicional, pero Roman no. En los sistemas numéricos posicionales, la posición de un número determina de forma única la magnitud del número. Consideremos esto usando el ejemplo del número 6372 en el sistema numérico decimal. Numeremos este número de derecha a izquierda comenzando desde cero:

Entonces el número 6372 se puede representar de la siguiente manera:

6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .

El número 10 determina el sistema numérico (en este caso es 10). Los valores de la posición de un número determinado se toman como potencias.

Considere el número decimal real 1287,923. Numerémoslo comenzando desde la posición cero del número desde el punto decimal hacia la izquierda y hacia la derecha:

Entonces el número 1287.923 se puede representar como:

1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3· 10-3.

En general, la fórmula se puede representar de la siguiente manera:

c norte s n +C n-1 · s n-1 +...+C 1 · s 1 +C 0 ·s 0 +D -1 ·s -1 +D -2 ·s -2 +...+D -k ·s -k

donde C n es un número entero en posición norte, D -k - número fraccionario en la posición (-k), s- sistema de numeración.

Algunas palabras sobre los sistemas numéricos Un número en el sistema numérico decimal consta de muchos dígitos (0,1,2,3,4,5,6,7,8,9), en el sistema numérico octal consta de muchos dígitos. (0,1, 2,3,4,5,6,7), en el sistema numérico binario - de un conjunto de dígitos (0,1), en el sistema numérico hexadecimal - de un conjunto de dígitos (0,1 ,2,3,4,5,6, 7,8,9,A,B,C,D,E,F), donde A,B,C,D,E,F corresponden a los números 10,11, 12,13,14,15 En la tabla Tab.1 los números se presentan en. diferentes sistemas Estimación

tabla 1
Notación
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 mi
15 1111 17 F

Convertir números de un sistema numérico a otro

Para convertir números de un sistema numérico a otro, la forma más sencilla es convertir primero el número al sistema numérico decimal y luego convertir del sistema numérico decimal al sistema numérico requerido.

Convertir números de cualquier sistema numérico al sistema numérico decimal

Usando la fórmula (1), puede convertir números de cualquier sistema numérico al sistema numérico decimal.

Ejemplo 1. Convierta el número 1011101.001 del sistema numérico binario (SS) al SS decimal. Solución:

1 ·2 6 +0 ·2 5 + 1 ·2 4 + 1 ·2 3 + 1 ·2 2 + 0 ·2 1 + 1 ·2 0 + 0 ·2-1+ 0 ·2 -2 + 1 ·2 -3 =64+16+8+4+1+1/8=93.125

Ejemplo2. Convierta el número 1011101.001 del sistema numérico octal (SS) al SS decimal. Solución:

Ejemplo 3 . Convierta el número AB572.CDF del sistema numérico hexadecimal al decimal SS. Solución:

Aquí A-reemplazado por 10, B- a las 11, C- a las 12, F- a las 15.

Convertir números del sistema numérico decimal a otro sistema numérico

Para convertir números del sistema numérico decimal a otro sistema numérico, debe convertir la parte entera del número y la parte fraccionaria del número por separado.

La parte entera de un número se convierte de SS decimal a otro sistema numérico dividiendo secuencialmente la parte entera del número por la base del sistema numérico (para SS binario - por 2, para SS 8-ario - por 8, para 16 -ario SS - por 16, etc. ) hasta obtener un residuo entero, menor que la base CC.

Ejemplo 4 . Convirtamos el número 159 de SS decimal a SS binario:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Como se puede ver en la Fig. 1, el número 159 cuando se divide por 2 da el cociente 79 y el resto 1. Además, el número 79 cuando se divide por 2 da el cociente 39 y el resto 1, etc. Como resultado, construyendo un número a partir de los restos de la división (de derecha a izquierda), obtenemos un número en SS binario: 10011111 . Por tanto podemos escribir:

159 10 =10011111 2 .

Ejemplo 5 . Convirtamos el número 615 de SS decimal a SS octal.

615 8
608 76 8
7 72 9 8
4 8 1
1

Al convertir un número de SS decimal a SS octal, debe dividir secuencialmente el número entre 8 hasta obtener un resto entero menor que 8. Como resultado, al construir un número a partir de los restos de la división (de derecha a izquierda), obtenemos un número en octal SS: 1147 (Ver Figura 2). Por tanto podemos escribir:

615 10 =1147 8 .

Ejemplo 6 . Convirtamos el número 19673 del sistema numérico decimal al SS hexadecimal.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Como se puede ver en la Figura 3, al dividir sucesivamente el número 19673 entre 16, los restos son 4, 12, 13, 9. En el sistema numérico hexadecimal, el número 12 corresponde a C, el número 13 a D. Por lo tanto, nuestro El número hexadecimal es 4CD9.

Para convertir fracciones decimales adecuadas ( Número Real con una parte entera cero) en un sistema numérico con base s, es necesario multiplicar secuencialmente este número por s hasta que la parte fraccionaria sea cero puro, o obtengamos el número requerido de dígitos. Si durante la multiplicación se obtiene un número con una parte entera distinta de cero, entonces esta parte entera no se tiene en cuenta (se incluyen secuencialmente en el resultado).

Veamos lo anterior con ejemplos.

Ejemplo 7 . Convirtamos el número 0,214 del sistema numérico decimal al SS binario.

0.214
X 2
0 0.428
X 2
0 0.856
X 2
1 0.712
X 2
1 0.424
X 2
0 0.848
X 2
1 0.696
X 2
1 0.392

Como puede verse en la Fig. 4, el número 0,214 se multiplica secuencialmente por 2. Si el resultado de la multiplicación es un número con una parte entera distinta de cero, entonces la parte entera se escribe por separado (a la izquierda del número), y el número se escribe con parte entera cero. Si la multiplicación da como resultado un número con una parte entera cero, entonces se escribe un cero a la izquierda del mismo. El proceso de multiplicación continúa hasta que la parte fraccionaria llega a un cero puro u obtenemos el número requerido de dígitos. Al escribir números en negrita (Fig.4) de arriba a abajo obtenemos el número requerido en el sistema numérico binario: 0. 0011011 .

Por tanto podemos escribir:

0.214 10 =0.0011011 2 .

Ejemplo 8 . Convirtamos el número 0,125 del sistema numérico decimal al SS binario.

0.125
X 2
0 0.25
X 2
0 0.5
X 2
1 0.0

Para convertir el número 0,125 de decimal SS a binario, este número se multiplica secuencialmente por 2. En la tercera etapa, el resultado es 0. En consecuencia, se obtiene el siguiente resultado:

0.125 10 =0.001 2 .

Ejemplo 9 . Convirtamos el número 0,214 del sistema numérico decimal a SS hexadecimal.

0.214
X 16
3 0.424
X 16
6 0.784
X 16
12 0.544
X 16
8 0.704
X 16
11 0.264
X 16
4 0.224

Siguiendo los ejemplos 4 y 5, obtenemos los números 3, 6, 12, 8, 11, 4. Pero en SS hexadecimal, los números 12 y 11 corresponden a los números C y B. Por lo tanto, tenemos:

0,214 10 = 0,36C8B4 16 .

Ejemplo 10 . Convirtamos el número 0,512 del sistema numérico decimal a SS octal.

0.512
X 8
4 0.096
X 8
0 0.768
X 8
6 0.144
X 8
1 0.152
X 8
1 0.216
X 8
1 0.728

Consiguió:

0.512 10 =0.406111 8 .

Ejemplo 11 . Convirtamos el número 159.125 del sistema numérico decimal al SS binario. Para hacer esto, traducimos por separado la parte entera del número (Ejemplo 4) y la parte fraccionaria del número (Ejemplo 8). Combinando aún más estos resultados obtenemos:

159.125 10 =10011111.001 2 .

Ejemplo 12 . Convirtamos el número 19673.214 del sistema numérico decimal a SS hexadecimal. Para hacer esto, traducimos por separado la parte entera del número (Ejemplo 6) y la parte fraccionaria del número (Ejemplo 9). Además, combinando estos resultados obtenemos.

sistema numérico hexadecimal(también conocido como código hexadecimal) es un sistema numérico posicional con una base entera de 16. El término hex (pronunciado hex, abreviatura de inglés hexadecimal) también se utiliza a veces en la literatura. Los dígitos de este sistema numérico se suelen utilizar en los números arábigos del 0 al 9, así como en los primeros caracteres del alfabeto latino A-F. Las letras corresponden a los siguientes valores decimales:

  • *A-10;
  • *B—11;
  • *C—12;
  • *D-13;
  • * E - 14;
  • *F-15.

Así, diez números arábigos, junto con seis letras latinas, forman los dieciséis dígitos del sistema.

Por cierto, en nuestro sitio web puede convertir cualquier texto a código decimal, hexadecimal o binario utilizando la Calculadora de códigos en línea.

Solicitud. código hexadecimal ampliamente utilizado en programación de bajo nivel, así como en diversos documentos de referencia informática. La popularidad del sistema se justifica por las soluciones arquitectónicas de las computadoras modernas: tienen un byte (que consta de ocho bits) como unidad mínima de información, y el valor de un byte se escribe convenientemente utilizando dos dígitos hexadecimales. El valor del byte puede oscilar entre #00 y #FF (0 a 255 en notación decimal); en otras palabras, usar código hexadecimal, puede escribir cualquier estado del byte, mientras no haya dígitos "extra" que no se utilicen en la grabación.

Codificado Unicódigo Se utilizan cuatro dígitos hexadecimales para registrar el número de carácter. La notación de color RGB (rojo, verde, azul) también suele utilizar código hexadecimal (por ejemplo, #FF0000 es una notación de color rojo brillante).

Un método para escribir código hexadecimal.

Manera matemática de escribir.. En notación matemática, la base del sistema se escribe en forma decimal como un subíndice a la derecha del número. La notación decimal del número 3032 se puede escribir como 3032 10, en el sistema hexadecimal este número tendrá la notación BD8 16.

En la sintaxis de los lenguajes de programación.. La sintaxis de diferentes lenguajes de programación establece de manera diferente el formato para escribir un número usando código hexadecimal:

* La sintaxis de algunas variedades de lenguaje ensamblador utiliza la letra latina “h”, que se coloca a la derecha del número, por ejemplo: 20Dh. Si un número comienza con una letra latina, se coloca un cero delante, por ejemplo: 0A0Bh. Esto se hace para distinguir valores que usan constantes de constantes. código hexadecimal;

* Otros tipos de ensamblador, así como Pascal (y sus variantes como Delphi) y algunos dialectos básicos, utilizan el prefijo "$": $A15;

* En idioma marcado HTML, así como en archivos CSS en cascada, para especificar el color en formato RGB con notación hexadecimal se utiliza el prefijo “#”: #00DC00.

¿Cómo convertir código hexadecimal a otro sistema?

Convertir de hexadecimal a decimal. Para realizar una operación de conversión del sistema hexadecimal al sistema decimal, debe representar el número original como la suma de los productos de los dígitos del número hexadecimal y la potencia de la base.

SS binario

hexagonal SS

Por ejemplo, necesitas traducir el número hexadecimal A14: tiene tres dígitos. Usando la regla, lo escribimos como una suma de potencias con base 16:

A14 16 = 10,16 2 + 1,16 1 + 4,16 0 = 10,256 + 1,16 + 4,1 = 2560 + 16 + 4 = 2580 10

Conversión de números de binario a hexadecimal y viceversa.

Se utiliza una mesa de cuaderno para la traducción. Para convertir un número del sistema binario al decimal, debe dividirlo en tétradas separadas de derecha a izquierda y luego, usando la tabla, reemplazar cada tétrada con el dígito hexadecimal correspondiente. Además, si el número de dígitos no es múltiplo de cuatro, entonces es necesario sumar el número correspondiente de ceros a la derecha del número para que el número total dígitos binarios se convirtió en múltiplo de cuatro.

Tabla de cuadernos para traducción.

Para convertir de hexadecimal a binario, debe realizar la operación inversa: reemplazar cada dígito con una tétrada de la tabla.

SS binario

SS octal

Ejemplo conversión de hexadecimal a binario: A5E 16 = 1010 0101 1110 = 101001011110 2

Ejemplo conversión de binario a hexadecimal: 111100111 2 = 0001 1110 0111 = 1E7 16

En este ejemplo, la cantidad de dígitos en el número binario original no era cuatro (9), por lo que se agregaron ceros a la izquierda para obtener una cantidad total de dígitos de 12.

Traducción automática. Traducción rápida del sistema numérico hexadecimal a uno de los tres sistemas populares (binario, octal y decimal), así como la conversión inversa, se puede realizar utilizando una calculadora estándar incluida con el sistema operativo Windows. Abra la calculadora, seleccione Ver -> Programador en el menú. EN este modo puede configurar el sistema numérico actualmente en uso (ver menú a la izquierda: Hex, Dec, Oct, Bin). En este caso, cambiar el sistema numérico actual produce automáticamente una traducción.

Cualquiera que se comunique con una computadora u otro equipo digital se ha topado con entradas misteriosas como 10FEF, que para los no iniciados parecen una especie de código. ¿Qué se esconde detrás de estos símbolos? Resulta que son sólo números. Los que usan hexadecimal

Sistemas numéricos

Todo escolar sabe, o al menos ha oído en alguna parte, que todos los números que utilizamos habitualmente llevan este nombre simplemente porque en él sólo hay diez símbolos diferentes (del 0 al 9). Con su ayuda se puede escribir cualquier número de nuestro sistema habitual. Sin embargo, resulta que no siempre es conveniente utilizarlo. Por ejemplo, al intercambiar información entre dispositivos digitales, es más fácil utilizar un sistema numérico en el que solo hay dos dígitos: "0" - sin señal - o "1" - hay una señal (voltaje u otra cosa). Se llama binario. Sin embargo, para describir los procesos internos de dichos dispositivos, tendrá que tomar notas demasiado largas y difíciles de entender. Por lo tanto, se inventó el sistema numérico hexadecimal.

El concepto de sistema hexadecimal.

¿Por qué los dispositivos digitales utilizan un sistema que contiene dieciséis símbolos diferentes? Como sabes, la información en las computadoras se transmite en forma de bytes, que suelen contener 8 bits. Una unidad de datos (una palabra de máquina) incluye 2 bytes, es decir, 16 bits. Así, con la ayuda de dieciséis símbolos diferentes, es posible describir la información que es la partícula más pequeña en el intercambio. El sistema numérico hexadecimal incluye nuestros números habituales (por supuesto, del 0 al 9), así como las primeras letras (A, B, C, D, E, F). Es con la ayuda de estos símbolos que se acostumbra anotar cualquier unidad de información. Con ellos puedes hacer cualquier operaciones aritmeticas. Es decir, suma, resta, multiplicación, división. El resultado también será un número hexadecimal.

¿Dónde se usa?

El sistema hexadecimal se utiliza para registrar códigos de error. Pueden ocurrir durante el funcionamiento de varios productos de software. Por ejemplo, así se codifican los errores. Sistema operativo. Cada número es estándar. Puede averiguar exactamente qué error ocurrió durante el proceso de trabajo descifrándolo siguiendo las instrucciones. Estos símbolos también se utilizan al escribir programas en lenguajes de bajo nivel, como el ensamblador. Los programadores también adoran el sistema numérico hexadecimal porque sus componentes se pueden convertir muy fácilmente a binario, que son "nativos" de toda la tecnología digital. Estos símbolos también se utilizan para describir esquemas de color. Además, absolutamente todos los archivos en la computadora (texto, gráficos e incluso música o video) se presentan después de la transmisión como una secuencia. Lo más conveniente es visualizar la fuente en forma de caracteres hexadecimales.

Por supuesto, cualquier número se puede escribir en diferentes sistemas numéricos. Esto es decimal, binario y hexadecimal. Para traducir una palabra de uno de ellos a otro, debes utilizar un servicio como un traductor de sistemas numéricos, o hacerlo tú mismo utilizando un algoritmo específico.

Para escribir programas en ensamblador, es necesario comprender el sistema numérico hexadecimal. No tiene nada de complicado. Usamos el sistema decimal en la vida. Estoy seguro de que todos lo sabéis, así que intentaré explicar el sistema hexadecimal usando una analogía con el sistema decimal.

Entonces, en el sistema decimal, si agregamos un cero a cualquier número de la derecha, este número aumentará 10 veces. Por ejemplo: 1 x 10 = 10; 10 x 10 = 100; 100 x 10 = 1000, etc. En este sistema utilizamos números del 0 al 9, es decir. diez números diferentes (de hecho, por eso se llama decimal).

En el sistema hexadecimal utilizamos dieciséis "dígitos". Escribí específicamente la palabra “dígitos” entre comillas, porque... No solo usa números. Y realmente, ¿cómo puede ser eso? Me explico: del 0 al 9 contamos igual que en decimal, pero luego quedará así: A, B, C, D, E, F. El número F no es difícil. cuenta, será igual a 15 en el sistema decimal (ver Tabla 1).

Número decimal

numero hexadecimal

Tabla 1. Sistemas decimales y hexadecimales.

Por lo tanto, si agregamos un cero a la derecha de cualquier número en el sistema hexadecimal, entonces este número aumentará en16 una vez.

Ejemplo 1: 1 x 16 = 10; 10 x 16 = 100; 100 x 16 = 1000, etc.

¿Pudiste distinguir los números hexadecimales de los números decimales en el Ejemplo 1? Y de esta serie: 10, 12, 45, 64, 12, 8, 19? Pueden ser hexadecimales o decimales. Para evitar confusiones y que el ordenador pueda distinguir claramente un número de otro, en ensamblador se acostumbra colocar el símbolo ho H después de un número hexadecimal ( H es una abreviatura de inglés. hexadecimal (hexadecimal). Por brevedad, a veces se le llama simplemente Maleficio ) . Y no pongas nada después del decimal. Porque Los números del 0 al 9 en ambos sistemas tienen el mismo significado, entonces los números escritos como 5 y 5h son iguales.

Eso. El ejemplo 1 (ver arriba) sería más correcto escribirlo así: 1 x 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h. O así: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h = 1000h.

En números posteriores veremos por qué es necesario el sistema hexadecimal. Por ahora, para nuestro programa de ejemplo, que se analizará a continuación, necesitamos saber acerca de la existencia de números hexadecimales.

Entonces, resumamos. El sistema numérico hexadecimal consta de 10 dígitos (del 0 al 9) y 6 letras del alfabeto latino (A, B, C, D, E, F). Si sumamos un cero a la derecha de cualquier número en el sistema hexadecimal, entonces este número aumentará en16 una vez. Es muy importante entender este tema., ya que lo usaremos constantemente al escribir programas.

Ahora un poco sobre cómo construiré ejemplos en Asamblea. No es del todo conveniente presentarlos en formato HTML, por lo que primero estará el código del programa con líneas numeradas, e inmediatamente después habrá explicaciones y notas.

Como eso:

líneas Código de programa
(1) movimiento ah,9

Explicaciones:

En la línea (1) hacemos esto y en la línea (15) hacemos aquello.

Gran petición: ¡NO copie programas de una página al portapapeles y luego los pegue en el Bloc de notas (o en cualquier otro lugar)! Vuelva a escribirlos manualmente en un editor de texto. Si tiene una impresora, seleccione el programa, imprima el fragmento seleccionado y luego transfiéralo al editor desde el papel. ¡Todos los ejemplos deben escribirse usted mismo! Esto acelerará la memorización de operadores.

Y además. No hay diferencia entre letras minúsculas y MAYÚSCULAS en ensamblador. Registros de la forma:

El ensamblador los percibe de la misma manera. Por supuesto, puede obligar al ensamblador a distinguir entre caracteres en minúsculas y MAYÚSCULAS, pero no haremos esto por ahora. Para que el programa sea más fácil de leer, es mejor escribir los operadores en letras minúsculas y comenzar los nombres de las subrutinas y las etiquetas en letras mayúsculas. Pero depende de quién se sienta cómodo.

Entonces, pasemos a nuestro primer programa:

(1) segmento CSEG

(2)org 100h

(4)Comenzar:

(6) mov ah,9

(7) mov dx, mensaje de compensación

(8) entre 21h

(10) entre 20h

(11)

(12) Mensaje db "¡Hola mundo! $"

(13)CSEG termina

(14) fin comenzar

Para explicar todos los operadores en este ejemplo, necesitaremos varias ediciones. Por lo tanto, simplemente omitiremos la descripción de algunos comandos en esta etapa. Simplemente asuma que así es como debería ser. Analizaremos estos operadores en detalle en un futuro muy próximo. Entonces, las líneas numeradas (1), (2) y (13) simplemente las ignoras.

Las líneas (3), (5), (9) y (11) permanecen vacías. Esto se hace para mayor claridad. El ensamblador simplemente los omitirá.

Ahora pasemos a considerar los operadores restantes. El código del programa comienza con la línea (4). Esta es una marca que le indica al ensamblador el comienzo del código. La línea (14) contiene los operadores end Begin ( empezar ingles Comenzar; fin fin). Este es el final del programa. En general, en lugar de la palabra Comenzar se podría haber usado algo más. Por ejemplo, Comenzar:. En este caso tendríamos que finalizar el programa. Fin Inicio (14).

Las líneas (6) (8) muestran el mensaje ¡Hola, mundo!. Aquí tendremos que hablar brevemente sobre los registros del procesador (veremos este tema con más detalle en el próximo número).

Un registro de procesador es una memoria especialmente asignada para almacenar un número.

Por ejemplo:

Si queremos sumar dos números, entonces en matemáticas lo escribimos así:

A, B y C Se trata de una especie de registros (si hablamos de una computadora) en los que se pueden almacenar algunos datos. A=5 se puede leer como: Asigne a A el número 5. .

Para asignar un valor a un registro, existe un operador mov en Assembler (del inglés move load). La línea (6) debería leerse así: Cargando en el registro A.H.número 9 (en otras palabras, asignamos A.H.Número 9). A continuación veremos por qué esto es necesario.

En la línea (7) cargamos en el registro. DX dirección del mensaje para la salida (en en este ejemplo esto será una cuerda¡Hola mundo! $).

Las interrupciones se tratarán en detalle en números posteriores. Aquí diré algunas palabras.

Interrumpir MS-DOS es una especie de subrutina (parte MS-DOS), que reside permanentemente en la memoria y se puede llamar en cualquier momento desde cualquier programa.

Consideremos lo anterior usando un ejemplo (Notas en letra pequeña):

Programa para sumar dos números.

InicioProgramas

A=5 Introducimos el valor 5 en la variable A

B=8 a la variable B el valor 8

Llamar a la suma de subrutinas

ahora C es igual a 13

A=10 Lo mismo, solo números diferentes.

B=25

Llamar a la suma de subrutinas

ahora C es igual a 35

Fin del programa

Adición de subrutina

C=A+B

Regreso desde subrutina volvemos al lugar desde donde llamamos

Fin de subrutina

En este ejemplo, llamamos a la subrutina dos veces. Suma, que agregó dos números que se le pasaron en variables A y B . El resultado se coloca en la variable C. Cuando se llama a una subrutina, la computadora recuerda desde dónde fue llamada y luego, cuando la subrutina termina de ejecutarse, la computadora regresa al lugar desde donde fue llamada. Eso. Puedes llamar a subrutinas un número indefinido de veces desde cualquier lugar.

Al ejecutar la línea (8) de un programa Ensamblador, llamamos a una subrutina (en este caso llamada interrupción), que muestra la línea en la pantalla. Para ello, de hecho, colocamos los valores necesarios en los registros. Todo trabajo necesario(salida de línea, movimiento del cursor) es asumido por la subrutina. Esta línea se puede leer así: llame a la vigésima primera interrupción ( int del ingles interrumpir interrumpir). Tenga en cuenta que después del número 21 hay una letra h . Este, como ya sabemos, es un número hexadecimal (33 en decimal). Por supuesto, nada nos impide sustituir la línea. entre 21h y 33. El programa funcionará correctamente. Es una práctica común en Assembler indicar el número de interrupción en hexadecimal.

En la línea (10), como habrás adivinado, llamamos a la interrupción 20 h . Para llamar a esta interrupción, no es necesario especificar ningún valor en los registros. Realiza sólo una tarea: salir del programa (salir a DOS). Como resultado de la ejecución de la interrupción 20h, el programa volverá al lugar desde donde se inició (cargado, llamado). Por ejemplo, en Norton Commander o Navegador DOS.

La línea (12) contiene el mensaje que se enviará. Primera palabra ( mensaje mensaje) título del mensaje. Puede ser cualquier cosa (por ejemplo, desorden o cuerda, etc.). ACERCA DE Preste atención a la línea (7), en la que cargamos en el registro. DX nuestra dirección de mensajes.

Podemos crear otra línea, a la que llamaremos Lío2. Luego, a partir de la línea (9), inserte los siguientes comandos:

(10) mov dx, desplazamiento Mess2

(13) Mensaje db "¡Hola mundo! $"

(14) Mess2 db "¡Soy YO! $"

y reensamblar nuestro programa. Espero que puedas adivinar lo que pasará.

prestar atención a último personaje en lineas Mensaje y Mess2 - $. Señala el final de la línea. Si lo eliminamos, entonces 21 h la interrupción continuará emitiéndose hasta que encuentre un carácter en algún lugar de la memoria $. En la pantalla veremos basura .

Si tiene un depurador, podrá ver cómo funcionará nuestro programa.

El propósito de este número no era entender en detalle con cada operador. Esto es imposible, porque aún no tienes suficientes conocimientos. Creo que después de 3 o 4 versiones comprenderá el principio y la estructura de un programa de Asamblea. Quizás el lenguaje ensamblador le haya parecido extremadamente complicado, pero créanme, esto es a primera vista.



gastrogurú 2017