Está en la página 1de 38

ARQUITECTURA DE COMPUTADORAS

SISTEMAS NUMÉRICOS
SISTEMA DE NUMERACIÓN: es un conjunto de símbolos y reglas que permiten construir números.

SÍMBOLO: es una representación que puede usarse para hacer referencia a una cantidad o número.

NUMERAL (O CIFRA): es un conjunto o grupo escrito de símbolos, ordenado de una manera determinada y
única que representa una cantidad.

DÍGITO: es el número o cantidad que se expresa utilizando un solo símbolo.

OM
UN SISTEMA NUMÉRICO ESTÁ FORMADO POR:
 Un conjunto finito y no vacío de símbolos (alfabeto).
 Un conjunto de reglas para formar los símbolos numerales.
 Un conjunto de reglas para operar entre los numerales.

.C
CLASIFICACIÓN DE LOS SISTEMAS NUMÉRICOS:
 SISTEMA NUMÉRICO NO POSICIONAL: el valor está determinado por el símbolo. Ejemplo: números
romanos y egipcios.
DD
 SISTEMA NUMÉRICO POSICIONAL: cada símbolo o dígito tiene un significado (o peso) distinto según la
posición que ocupa en la cifra.

CARACTERÍSTICAS DE LOS SISTEMAS NUMÉRICOS POSICIONALES:


 Consta de un número finito de símbolos distintos que constituyen su base.
LA

 Cada símbolo aislado representa un número específico de unidades.


 Existe un símbolo para indicar la ausencia de elementos (como el cero).
 Los símbolos pueden ordenarse de forma monótona creciente.
 El valor del dígito depende de la posición en la que se encuentre en el número.
 La posición extrema derecha corresponde a unidades (peso 1).
FI

EXPRESIÓN GENERAL DE UN NÚMERO EN POTENCIAS DE SU BASE:


Siendo N un número, B su base y expresado por n dígitos d:
𝐍𝐁 = 𝐝𝐧 . 𝐁𝐧 + 𝐝𝐧−𝟏 . 𝐁 𝐧−𝟏 + ⋯ + 𝐝𝟏 . 𝐁𝟏 + 𝐝𝟎 . 𝐁𝟎


𝐍𝐁 = ∑ 𝐝𝐤 . 𝐁𝐤
𝐤=𝟎
Ejemplo:
𝐍 = 𝟐𝟖𝟓𝟏𝟎 = 𝟐. 𝟏𝟎𝟐 + 𝟖. 𝟏𝟎𝟏 + 𝟓. 𝟏𝟎𝟎 = 𝟐𝟎𝟎 + 𝟖𝟎 + 𝟓 = 𝟐𝟖𝟓

SISTEMAS DE NUMERACIÓN:

Binario 0 1
Octal 0 1 2 3 4 5 6 7
Decimal 0 1 2 3 4 5 6 7 8 9
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

1
Este archivo fue descargado de https://filadd.com
Sistema posicional decimal: también denominado de base o raíz diez, por utilizar diez símbolos (que
forman la sucesión monótona creciente 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) permite representar cualquier número de
elementos combinando dichos símbolos.

Sistema en base ocho u octal: en base ocho los símbolos van del 0 al 7 con los cuales se puede formar
cualquier número.

Sistema en base dos o binario: en base dos los símbolos con los cuales se puede formar cualquier número
son 0 y 1.

Sistema en base dieciséis o hexadecimal: En hexadecimal los símbolos van del 0 a F, con los cuales se
puede formar cualquier número.

OM
Bits y Bytes: Un bit (binary digit) es un dígito binario, por lo que es un símbolo que puede valer 0 ó 1. Un
byte es un conjunto de 8 bits. El tamaño de las memorias se mide en bytes. En el interior de un procesador
se opera con múltiplos pares de un byte: 2, 4, 8, 16, 32, 64, 128 bits.

¿Cuántos bits se necesitan por cada dígito decimal a representar? Con 2 bits se forman 4=22

.C
combinaciones binarios, con 3 bits se forman 8=23 combinaciones, mientras que con 4 bits se forman
16=24 combinaciones. El exponente de dos indica la cantidad de bits que se necesitan para formar un
número de combinaciones que es potencia de dos, siendo que, si el exponente aumenta en uno, el número
de combinaciones se duplica. Un número aproximadamente igual de combinaciones distintas se forman
DD
con 10 bits en binario, y con 3 dígitos en decimal. O sea, unos 10 bits por cada 3 dígitos decimales, lo que
da 3,33 bits por cada dígito decimal.

CONVERSIÓN ENTRE DISTINTAS BASES


LA

CONVERSIÓN DE UNA BASE CUALQUIERA A BASE DIEZ: pasos:


1- Escribir sobre cada posición su peso en decimal.
2- Sumar los productos del peso decimal de cada posición por el símbolo que aparece en ella (en
hexadecimal se deben pasar los símbolos A, B, C, D, E, F a base diez). El resultado de esta suma será
FI

el número decimal buscado.

Ejemplos:
100002 → 24x1+23x0+22x0+21x0+20x0 = 1610


10916 → 162x1+161x0+160x9 = 26510


100A16 → 163x1+162x0+161x0+160xA = 410610
10378 → 83x1+82x0+81x3+80x7= 54310
CONVERSIÓN DE BASE DECIMAL A BINARIO: pasos:
1- Dado el número a convertir, se parte de la pesa binaria que en base diez tiene un valor igual a dicho
número, o que presenta el valor más próximo al mismo; y a partir de este valor se escriben en base
diez los sucesivos valores decrecientes de las pesas binarias hasta el valor uno, siendo cada valor la
mitad del anterior.
2- Se coloca un uno debajo del primer valor determinado en el paso anterior. A este valor decimal se
le sumará el valor decimal de cada peso binario que sigue a la derecha sin omitir ninguno hasta el
peso uno. Si al sumar el valor de la pesa que sigue a la última que se analizó el resultado alcanzado

2
Este archivo fue descargado de https://filadd.com
iguala o es menor que el número decimal a convertir, se colocará un uno debajo del valor de la
pesa; y si ese resultado supera dicho número se coloca un cero, para indicar que esa pesa no se usa
para balancear.
3- Los unos y ceros así determinados de izquierda a derecha son los bits del número binario buscado.
Ejemplos:
256 128 64 32 16 8 4 2 1
28410 → 1 0 0 0 1 1 1 0 0 = 1000111002
512 256 128 64 32 16 8 4 2 1
66510 → 1 0 1 0 0 1 1 0 0 1 = 10100110012

CONVERSIÓN DE BASE DECIMAL A HEXADECIMAL:


1- Dado el número a convertir, se parte de la pesa hexadecimal que en base diez tiene un valor igual a

OM
dicho número, o que presenta el valor menor más próximo al mismo; y a partir de ese valor se
escriben en base diez los sucesivos valores decrecientes de las pesas hexadecimales hasta el valor
uno, siendo cada valor dieciséis veces menor que el anterior.
Ejemplos:
257410 →
256 16 1
A 0 E = A0E16
804510 →
4096 256 16 1

.C
1 F 6 D = 1F6D16

CONVERSIÓN DE BASE BINARIA A HEXADECIMAL (Y OCTAL): pasos:


DD
1- A partir del bit extremo derecho del número binario, dividirlo en cuartetos, agregando ceros a la
izquierda si se necesita.
2- Asignar a cada cuarteto los pesos 8-4-2-1 en forma escrita o mentalmente.
3- Sumar en base diez los pesos de cada cuarteto correspondientes a los bits de valor 1, o sea hallar su
valor en base diez.
4- El número resultante de cada suma así efectuada en cada cuarteto según el paso anterior, será el
LA

dígito hexadecimal correspondiente a ese cuarteto, siendo que si dicho número es del 0 al 9 será el
mismo en hexa; y si el mismo es 10 el dígito hexadecimal será A, si es 11 será b, etc.
Ejemplos:
FI

8 4 2 1 8 4 2 1 8 4 2 1
1100111002 → 0001 1001 1100 = 19C16
1 8+1=9 8+4=C
8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
10100000111101112 → 1010 0000 1111 0111 = A0F716


8+2=A 0 8+4+2+1=F 4+2+1=7

8 4 2 1 8 4 2 1 8 4 2 1
11000111012 → 0011 0001 1101 = 31D16
2+1=3 1 8+4+1=D

4 2 1 4 2 1 4 2 1
11011012 → 001 101 101 = 1558
1 4+1=5 4+1=5

CONVERSIÓN DE BASE HEXADECIMAL A BINARIO: pasos:


1- Separar los dígitos hexadecimales de modo de poder formar debajo de cada uno de ellos un
cuarteto binario a determinar de pesos 8-4-2-1. Estos números pueden escribirse o ser imaginados
mentalmente.

3
Este archivo fue descargado de https://filadd.com
2- Convertir cada dígito hexadecimal de 0 a F a decimal, y este número a su vez en un cuarteto de
pesos 8-4-2-1 por el método de las pesas.
3- El conjunto de cuartetos así formados constituirá el número binario buscado.
Ejemplos:
A 0 7
A0716 → 8 4 2 1 8 4 2 1 8 4 2 1 = 1010000001112
1010 0000 0111

1 0
1016 → 8 4 2 1 8 4 2 1 = 100002
0001 0000

OM
OPERACIONES ARITMÉTICAS CON NÚMEROS BINARIOS
SUMA DE BINARIOS: Para sumar en binario se debe tener presente que en la sucesión de los números
naturales 0, 1, 10, 11, … si se suma cero a un número debe resultar el mismo, y si se suma 1 debe
obtenerse el siguiente.

Ejemplo:
110110100 + 11010110:

.C
DD
1111 1
110110100
+
11010110
1010001010
RESTA DE BINARIOS: La tabla de restar binaria es la siguiente:
0–0=0
LA

1–0=1
1–1=0
0 – 1 = 1 y se pide 1 a la siguiente (10 – 1 = 1)
FI

Ejemplo:
10110010010 - 11100101:

001 01 0
10110010010


-
11100101
10010101101

RESTA DE BINARIOS SIN PEDIR PRESTADO, MEDIANTE UNA SUMA: El procedimiento de “pedir
prestado” no se emplea en los circuitos de un computador, por la complejidad y lentitud que ocasionaría.
En su reemplazo se usa el método de sumar al minuendo el complemento al módulo del sustraendo.

Ejemplo:
10110010010 - 11100101:
000111001012 → C200011100101 = 11100011010 + 1 = 111000110112

4
Este archivo fue descargado de https://filadd.com
10110010010
+
11100011011
110010101101

El 1 en rojo que está fuera del formato de los n bits que se restan, se descarta.

NÚMEROS BINARIOS FRACCIONARIOS


REGLA PARA CONVERTIR UN NÚMERO DECIMAL CON PARTE FRACCIONARIA A BINARIO:
1- Convertir a binario cada parte por separado. La parte entera se convierte mediante el método visto
anteriormente.

OM
2- La parte fraccionaria mediante sucesivas multiplicaciones por 2
3- Sumar ambas porciones antes halladas.

Ejemplo:

35,6210

3510 →
.C 32
1
16
0
8
0
4
0
2
1
1
1 = 1000112
DD
2 x 0,62 = 1,24 = 1 + 0,24
2 x 0,24 = 0,48 = 0 + 0,48
2 x 0,48 = 0,96 = 0 + 0,96
2 x 0,96 = 1,92 = 1 + 0,92
LA

2 x 0,92 = 1,84 = 1 + 0,84


2 x 0,84 = 1,68 = 1 + 0,68
2 x 0,68 = 1,36 = 1 + 0,36
2 x 0,36 = 0,72 = 0 + 0,72
2 x 0,72 = 1,44 = 1 + 0,44
FI

2 x 0,44 = 0,88 = 0 + 0,88


………………………………..


Las sucesivas partes enteras halladas conforme van apareciendo, constituyen los bits de la parte
fraccionaria binaria. En este caso se ha interrumpido arbitrariamente el proceso luego de haber obtenido
una precisión de 10 bits fraccionarios.

35,6210 → (100011 + 0,1001111010)2 = 100011,10011110102

REGLA PARA CONVERTIR UN NÚMERO BINARIO CON PARTE FRACCIONARIA A DECIMAL:


1- El bit que está a la izquierda de la coma le corresponde peso 1.
2- A partir del mismo hacia la izquierda los pesos 2, 4, 8, 16, … se escriben sobre los bits de la parte
entera; y hacia la derecha los pesos 1/2, 1/4, 1/8, 1/16, … sobre los bits fraccionarios.
3- Se suman los pesos de las posiciones que tengan un uno, y el número se expresa en decimal.

5
Este archivo fue descargado de https://filadd.com
Ejemplo:

16 8 4 2 1 0,5 0,25 0,125 16 + 4 + 2 + 0,5 + 0,125


10110,1012 → 1 0 1 1 0 1 0 1 = 22,62510

COMPLEMENTOS
Los complementos son muy usados en los sistemas digitales al momento de realizar operaciones de resta.
Permite realizar restas mediante sumas y representar números con signos.

Sistemas de representación de números:

OM
Con signo:  Naturales
Sin signo:  Signo y Magnitud
 Complemento a la base
 Complemento a la base -1

SIGNO Y MAGNITUD:

+3
-3
Positivo decimal
Negativo decimal
.C Positivo (+) en binario → 0 01111111 = + 127
Negativo (-) en binario → 1 11111111 = - 127
Se considera un bit
como bit de signo
DD
COMPLEMENTO A LA BASE: Teniendo Nb es un número en base b; b es la base; n es la cantidad de
dígitos; CbNb es el complemento a b de N.

CbNb = bn - N
Nb + CbN = bn
LA

Ejemplos:
710 → C107 = 101 - 7 = 10 - 7 = 310
92410 → C10924 = 103 - 924 = 1000 - 924 = 7610

COMPLEMENTO A DOS (BASE 2): Pasos:


FI

1- Reemplazar 0 por 1 y 1 por 0.


2- Sumar 1.
Ejemplos:
110112 → C211011 = 00100 + 1 = 001012


001012 → C200101 = 11010 + 1 = 110112

COMPLEMENTO A LA BASE -1: Teniendo Nb es un número en base b; b es la base; n es la cantidad de


dígitos; Cb-1Nb es el complemento a b-1 de N.

Cb-1Nb = (bn - 1) - N
Nb + Cb-1N = bn - 1

Para evitar pedir prestado, conviene determinar el complemento al módulo de un número calculando
primero su complemento al módulo menos uno y luego sumarle uno. CN = Cb-1 + 1
Ejemplos:
710 → C10-17 = C97 = (101 - 1) - 7 = 9 - 7 = 210
5810 → C10-158 = C958 = (102 - 1) - 58 = 99 - 58 = 4110

6
Este archivo fue descargado de https://filadd.com
COMPLEMENTO A UNO (BASE 2; b-1 = 1): Pasos:
1- Reemplazar 0 por 1 y 1 por 0.
Ejemplo:
110112 → C2-111011 = C111011 = 001002
111102 → C2-111110 = C111110 = 000012

CÓDIGOS Y REPRESENTACIONES
Un código establece una correspondencia entre un conjunto de información y otro conjunto de símbolos o
señales que la representan pudiendo existir reglas para pasar de un conjunto a otro.

OM
CÓDIGOS BCD: son convenciones que permiten la representación de números decimales (0 a 9) en
bloques binarios de 4 bits. Son códigos de representación de números y se los denomina códigos
ponderados, porque adjudican cierto peso a los 1 binarios, según la posición que ocupan en el bloque, por
lo que se debe verificar que la suma de los pesos de cada combinación sea igual al número decimal
representado.
Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden realizar

.C
operaciones aritméticas como suma, resta, multiplicación y división de números en representación
decimal, sin perder en los cálculos la precisión ni tener las inexactitudes en que normalmente se incurre
con las conversiones de decimal a binario puro y de binario puro a decimal. La conversión de los números
decimales a BCD y viceversa es muy sencilla, pero los cálculos en BCD se llevan más tiempo y son algo más
DD
complicados que con números binarios puros.

CÓDIGO BCD NATURAL: se denomina así porque los pesos en cada bloque coinciden con el valor de los
4 primeros pesos del binario puro. Se le suele llamar BCD 8421.
LA

CÓDIGO BCD AIKEN O 2421: es un código similar al código BCD natural con los pesos distribuidos de
manera diferente. La distribución es: 2-4-2-1. La razón de esta codificación es la de conseguir simetría
entre ciertos números. El código Aiken es muy útil para realizar operaciones de resta y división (facilidad
para hallar el complemento invirtiendo los dígitos).
FI

BCD EXCESO 3 (XS3): el código Exceso 3 se obtiene sumando 3 a cada combinación del código BCD
Natural. Es un código en donde la ponderación no existe (no hay "pesos" como en el código BCD natural).
Al igual que el código Aiken cumple con la misma característica de simetría. Cada cifra es el complemento a
9 de la cifra simétrica en todos sus dígitos. Es un código muy útil en las operaciones de resta y división.


CÓDIGO GRAY: El código Gray es un tipo especial de código binario que no es ponderado (los dígitos
que componen el código no tienen un peso asignado). Su característica es que entre una combinación de
dígitos y la siguiente, sea esta anterior o posterior, solo hay una diferencia de un dígito.
Por eso también se le llama código progresivo. Esta progresión sucede también entre la última y la primera
combinación. Por eso se le llama también código cíclico.

7
Este archivo fue descargado de https://filadd.com
BCD NATURAL CÓDIGO GRAY BCD AIKEN BCD XS3

8421 2421
0 0000 0000 0000 0011
1 0001 0001 0001 0100
2 0010 0011 0010 0101
3 0011 0010 0011 0110
4 0100 0110 0100 0111
5 0101 0111 1011 1000
6 0110 0101 1100 1001
7 0111 0100 1101 1010
8 1000 1100 1110 1011
9 1001 1101 1111 1100

OM
CÓDIGOS DE REPRESENTACIÓN DE CARACTERES ALFANUMÉRICOS: establece la relación
necesaria para que una computadora digital que procesa solamente dígitos binarios interprete el lenguaje
que utiliza el usuario. Un código es una convención que determina una única combinación binaria para
cada símbolo que se ha de representar.

.C
CÓDIGO ASCII: siglas de American Standard Code of Information Interchange es un código binario
ampliamente usado para la transmisión de información, y para codificar los caracteres de un teclado, así
como los que debe imprimir una impresora en modo texto o mostrar una pantalla. También es el código de
los archivos de texto.
DD
Representa cada carácter con 7 bits, que permite determinar 27=128 combinaciones distintas suficientes
para establecer una única relación carácter combinación binaria, aunque se usan 8 bits (el primer bit de
todas las combinaciones del ASCII estándar es cero, pudiéndose usar para paridad u otros fines). Con 8 bits
resultan 28=256 combinaciones, 128 para ASCII estándar y 128 para ASCII extendido.
LA

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SC STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 SP ! “ # $ % & ‘ ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
FI

4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~ DEL


CÓDIGO UNICODE: es un estándar de codificación de caracteres diseñado para facilitar el tratamiento


informático, transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas, además de
textos clásicos de lenguas muertas. El término Unicode proviene de los tres objetivos perseguidos:
universalidad, uniformidad y unicidad. Asigna un código a cada uno de los más de cincuenta mil símbolos,
los cuales abarcan todos los alfabetos europeos, ideogramas chinos, japoneses, coreanos, muchas otras
formas de escritura, y más de un millar de símbolos locales

8
Este archivo fue descargado de https://filadd.com
REPRESENTACIÓN ESTÁNDAR PARA PUNTO FLOTANTE DEL IEEE 754
El estándar IEEE 754 ha sido definido por el Instituto de Ingenieros Eléctricos y Electrónicos (Institute of
Electrical and Electronics Engineers, IEEE) y establece dos formatos básicos para representar a los
números reales en la computadora digital: precisión simple y precisión doble.

PRECISIÓN SIMPLE EN EL ESTÁNDAR IEEE 754: En precisión simple, para escribir un número real se
usan 32 bits (4 bytes): 1 bit para el signo (s) del número, 23 bits para la mantisa (m) y 8 bits para el
exponente (exp), que se distribuyen de la siguiente forma:

OM
El exponente se suele representar en Exceso a 2n-1 - 1, mientras que, para la mantisa, normalmente se
utiliza Signo Magnitud. Además, la mantisa se suele normalizar colocando la coma decimal a la derecha del
bit más significativo.

.C
Ejemplo: Para escribir el número 101110,0101011101000011111000011111000100112 en el estándar IEEE
754 con precisión simple, exponente en Exceso a 2n-1 - 1 y mantisa en Signo Magnitud, primero hay que
normalizarlo:
DD
1,011100101011101000011111000011111000100112 x 25

El exponente, en Exceso a 2n-1 - 1, será:

510 + (28-1 - 1)10 = 510 + (27 - 1)10 = 510 + (128 - 1)10 = 13210 = 10000100EX. a 127
LA

De la mantisa se cogen los bits 23 bits más significativos:

1,0111001010111010000111
FI

El resto de bits no se pueden representar, ya que, no caben en la mantisa. Sin embargo, cuando la mantisa
se normaliza situando la coma decimal a la derecha del bit más significativo, dicho bit siempre vale 1. Por
tanto, se puede prescindir de él, y coger en su lugar un bit más de la mantisa. De esta forma, la precisión
del número representado es mayor. Así, los bits de la mantisa serán:


01110010101110100001111

Al bit omitido se le llama bit implícito. Por otra parte, el bit de signo vale 0, ya que, el número es positivo.
En consecuencia, el número se puede representar como:

Los programadores, para representar a los números reales en este formato, suelen utilizar el Sistema
Hexadecimal:

9
Este archivo fue descargado de https://filadd.com
Entonces:

101110,0101011101000011111000011111000100112 = 42395D0FCFL (PRECISIÓN SIMPLE)

En este caso, los números no son exactamente iguales, ya que, con precisión simple no se han podido

OM
representar todos los bits de la mantisa.

PRECISIÓN DOBLE EN EL ESTÁNDAR IEEE 754: en precisión doble, para escribir un número real se
emplean 64 bits (8 bytes): 1 bit para el signo (s) del número, 52 bits para la mantisa (m) y 11 bits para el
exponente (exp).

.C
DD
Ejemplo: Si se quiere escribir el número 19,562510 en el estándar IEEE 754 con precisión doble, exponente
en Exceso a 2n-1 - 1 y mantisa en Signo Magnitud con bit implícito, los pasos a seguir son:

1- Cambiar 19,562510 a base 2. Primero la parte entera:


LA


16 8 4 2 1
1910 1 0 0 1 1 = 100112

Luego la parte fraccionaria:


FI

2 x 0,5625 = 1,125 = 1 + 0,125


2 x 0,125 = 0,25 = 0 + 0,25
2 x 0,25 = 0,5 = 0 + 0,5


2 x 0,5 =1 =1+0

0,562510 = 0,10012

19,562510 = (10011 + 0,1001)2 = 10011,10012

2- Normalizar el número binario obtenido, colocando la coma decimal a la derecha del bit más significativo:

10011,10012 = 1,00111001 x 24

10
Este archivo fue descargado de https://filadd.com
3- Escribir el exponente en Exceso a 2n-1 - 1:

410 + (211-1 - 1)10 = 410 + (210 - 1)10 = 410 + (1024 - 1)10 = 102710 = 10000000011EX. a 1023

4- Establecer la mantisa utilizando bit implícito. Para ello, se cogen los ocho bits que están a la derecha de
la coma (00111001) y el resto de la mantisa se rellena con ceros:

0011100100000000000000000000000000000000000000000000

5- Expresar el número en el estándar IEEE 754 con precisión doble. En este caso, hay que tener en cuenta
que el bit de signo vale 0, ya que, el número es positivo:

OM
6- Representar el número en hexadecimal:

.C
DD
Entonces:
LA

19,562510 = 4033A00000000000CFL (PRECISIÓN DOBLE)

CASOS ESPECIALES EN EL ESTÁNDAR IEEE 754: Tanto en precisión doble como en precisión simple,
existen algunos casos especiales que dependen de los valores del signo, del exponente y de la mantisa:
FI

Signo (s) Exponente (exp) Mantisa (m) Significado


Positivo (0) Todos unos (11...1) Todos ceros (00...0) Más infinito (+∞)
Negativo (1) Todos unos (11...1) Todos ceros (00...0) Menos infinito (-∞)


0ó1 Todos unos (11...1) Distinta de todos ceros Not a Number (NaN)
0ó1 Todos ceros (00...0) Todos ceros (00...0) Representa al cero (0)
0ó1 Todos ceros (00...0) Distinta de todos ceros Número muy pequeño cercano al cero (0)

Los dos últimos casos merecen especial atención, ya que, cuando todos los bits del exponente son ceros
(00...0), esto quiere decir que no se está utilizando bit implícito. Si, además, la mantisa es todo ceros
(00...0), el número representado es el cero (0), pero si la mantisa es distinta de todos ceros, el número que
se está representando es muy pequeño, de forma que, el exponente valdrá -126 ó -1022, dependiendo de
si el número está escrito en precisión simple o doble, respectivamente.

11
Este archivo fue descargado de https://filadd.com
COMPUERTAS LÓGICAS
Una compuerta lógica es el bloque elemental que permite la implementación de circuitos digitales. Tiene
una cantidad finita de entradas y una salida. Las entradas y las salidas están representadas por variables
booleanas que pueden estar en uno de dos estados posibles (0 o 1) representados por diferentes valores
niveles de voltaje.

COMPUERTA OR (Suma lógica o disyunción): Una compuerta OR es un dispositivo electrónico de


dos entradas, a las cuales llegan los niveles de tensión de dos cables A y B, y una salida. Un cable Z en la
salida de una compuerta OR de dos entradas estará en el nivel alto si el cable de entrada A o B está en el
nivel alto. Basta con que una de las entradas de una compuerta OR esté en el nivel alto, para que su salida
también lo esté.

OM
A B Z = A+B Operación
0 0 0 → 𝟎+𝟎 = 𝟎
0 1 1 → 𝟎+𝟏 = 𝟏

.C 1
1
0
1
1
1


𝟏+𝟎 = 𝟏
𝟏+𝟏 = 𝟏
DD
En una compuerta OR de un número cualquiera n de entradas, a las que llegan igual número de cables
designados A, B, C, …, N, el cable Z conectado en su salida estará en el nivel alto, si A o B o C o … o N está
en el nivel alto, o sea si uno o más de dichos cables está en el nivel alto.

COMPUERTA AND (Producto lógico o conjunción): Una compuerta AND es un dispositivo


electrónico de dos entradas, a las cuales llegan los niveles de tensión de dos cables A y B, y una salida. Un
LA

cable Z en la salida de una compuerta AND estará en el nivel alto sólo si el cable de entrada A y el cable de
entrada B están en el nivel alto.

A B Z = A.B Operación
FI

0 0 0 → 𝟎. 𝟎 = 𝟎
0 1 0 → 𝟎. 𝟏 = 𝟎
1 0 0 → 𝟏. 𝟎 = 𝟎
1 1 1 → 𝟏. 𝟏 = 𝟏


En una compuerta AND de un número cualquiera n de entradas, a las que llegan igual número de cables
designados A, B, C, …, N, el cable Z conectado en su salida estará en el nivel alto, si A y B y C y … y N están
simultáneamente en el nivel alto.

COMPUERTA INVERSOR NOT (Negación lógica): una compuerta inversora NOT es un dispositivo
electrónico que genera en el cable que está en su salida un nivel de tensión alto si el cable que está en su
entrada presenta un nivel bajo, y viceversa. Decimos que los cables A y Z son complementarios, inversos,
en oposición, o que uno es la negación del otro.

12
Este archivo fue descargado de https://filadd.com
A Z=𝐀̅ Operación
0 1 ̅ = 𝟏
→ 𝟎
1 0 ̅ = 𝟎
→ 𝟏

COMPUERTA OR EXCLUSIVA (X-OR): Una compuerta OR excluyente (X-OR) es un dispositivo


electrónico que presenta dos entradas, a las cuales llegan los niveles de tensión de dos cables A y B, y una
salida. Un cable Z a la salida de una compuerta X-OR estará en el nivel alto si al menos uno y a lo sumo
uno de los cables de entrada A o B, está en el nivel alto.

A B Z = A⊕B Operación
→ 𝟎⊕𝟎 = 𝟎

OM
0 0 0
0 1 1 → 𝟎⊕𝟏 = 𝟏
1 0 1 → 𝟏⊕𝟎 = 𝟏
1 1 0 → 𝟏⊕𝟏 = 𝟎

COMPUERTAS COMBINADAS CON INVERSORES

.C
COMPUERTA NOR: Una compuerta NOR es una compuerta OR con un inversor en su salida que
complementa cada resultado que ésta genera, de modo de realizar una suma lógica negada.
DD
A B ̅̅̅̅̅̅̅̅
Z=𝐀 +𝐁 Operación
0 0 1 → ̅̅̅̅̅̅̅
𝟎+𝟎 = 𝟏
0 1 0 → ̅̅̅̅̅̅̅
𝟎+𝟏 = 𝟎
1 0 0 → ̅̅̅̅̅̅̅
𝟏+𝟎 = 𝟎
LA

1 1 0 → ̅̅̅̅̅̅̅
𝟏+𝟏 = 𝟎
COMPUERTA NAND: Una compuerta NAND es una compuerta AND con un inversor en su salida que
complementa cada resultado que ésta genera, de modo de realizar un producto lógico negado.
FI

A B ̅̅̅̅̅
Z = 𝐀. 𝐁 Operación
0 0 1 → ̅̅̅̅̅
𝟎. 𝟎 = 𝟏
0 1 1 → ̅̅̅̅̅
𝟎. 𝟏 = 𝟏
1 0 1 → ̅̅̅̅̅
𝟏. 𝟎 = 𝟏


1 1 0 → ̅̅̅̅̅
𝟏. 𝟏 = 𝟎
COMPUERTA X-NOR: Una compuerta X-NOR es una compuerta X-OR con un inversor en su salida que
complementa cada resultado que ésta genera, de modo de realizar una suma lógica exclusiva negada.

A B ̅̅̅̅̅̅̅̅
Z=𝐀 ⊕𝐁 Operación
0 0 1 → ̅̅̅̅̅̅̅̅
𝟎⊕𝟎 = 𝟏
0 1 0 → ̅̅̅̅̅̅̅̅
𝟎⊕𝟏 = 𝟎
1 0 0 → ̅̅̅̅̅̅̅̅
𝟏⊕𝟎 = 𝟎
1 1 1 → ̅̅̅̅̅̅̅̅
𝟏⊕𝟏 = 𝟏

13
Este archivo fue descargado de https://filadd.com
FORMAS CANÓNICAS
FUNCIÓN CANÓNICA: una función canónica es aquella en la que en cada término incluye todas las
variables de entrada.

FORMA NORMAL DISYUNTIVA (FND) O SUMA DE MINITÉRMINOS: dado un número n de


variables, un minitérmino es un producto lógico, cuyos factores son todas las variables. Un producto lógico
resulta con el valor 1 para una sola combinación de valores de las variables que son sus factores.
Para cada minitérmino hay una sola combinación para la cual el producto resulta 1, y recíprocamente,
dada una combinación de valores de las variables, existe un solo minitérmino que resulta 1 para esa
combinación.

OM
FORMA NORMAL CONJUNTIVA (FNC) O PRODUCTO DE MAXITÉRMINOS: dado un número n
de variables, un maxitérmino es una suma lógica, cuyos sumandos son todas las variables. Una suma lógica
resulta con el valor 0 para una sola combinación de valores de las variables que son sus factores.

MINITÉRMINO (O PRODUCTO CANÓNICO): es el producto de las variables en juego, o sus


negaciones individuales que hacen que el producto valga uno. Combinaciones que hacen que la función
valga 1.

.C
MAXITÉRMINO (O SUMA CANÓNICA): es la suma de las variables en juego o sus negaciones
DD
individuales que hacen que la suma valga cero. Combinaciones que hacen que la función valga 0.

CIRCUITOS LÓGICOS
LA

CIRCUITOS LÓGICOS: Un circuito lógico es la representación de la estructura de una red de compuertas


y su comportamiento se expresa algebraicamente por una o varias funciones booleanas; las variables
constituyen las entradas y las funciones constituyen las salidas del circuito.
Es la implementación de una función lógica (o booleana) mediante compuertas lógicas, que posee líneas de
entradas y de salidas. Cada entrada representa un valor booleano, y según los valores de entrada se
FI

produce un comportamiento que da como resultado valores de salida.

CLASIFICACIÓN DE LOS CIRCUITOS:


Circuito combinacional: es un circuito donde sus salidas dependen únicamente de los valores de las


variables de entrada. Para una combinación de valores de entrada en un circuito, siempre se produce el
mismo valor de salida.
Circuito secuencial: es un circuito donde sus salidas dependen del valor de las entradas y del estado
anterior del circuito representado, que puede tener una o más salidas. Tienen memoria.

SIMPLIFICACIÓN DE CIRCUITOS – MAPA DE KARNAUGH


MAPA DE KARNAUGH: El diagrama de Karnaugh constituye otra forma de representar una función,
siendo en esencia una tabla de verdad en dos dimensiones. Es el método gráfico óptimo para encontrar la
expresión booleana reducida de una función.
La utilización de los diagramas de Karnaugh se limita a funciones de hasta 5 variables como máximo,
debido a que se torna difícil la minimización de funciones más complejas.

14
Este archivo fue descargado de https://filadd.com
OBTENCIÓN DE LA SUMA DE MINITÉRMINOS A PARTIR DE UN DIAGRAMA: Para cada celda
con un “uno” de la función se hallan sus coordenadas, a fin de determinar la combinación de variables para
la cual la función vale 1. Obtenida la misma, se forma el minitérmino correspondiente según la siguiente
regla: cuando la variable vale 0 o 1 se escribe dicha variable negada o sin negar, respectivamente.

OM
.C
DD
MECANISMO DE MINIMIZACIÓN DEL DIAGRAMA: Se deben agrupar la mayor cantidad de celdas
con “unos” adyacentes en la menor cantidad de grupos (la cantidad de “unos” en cada grupo es potencia
de 2). Cada grupo debe tener al menos un elemento propio no compartido.
Cada sumando de la expresión minimizada, es el producto que se forma con las variables que son las
coordenadas de cada lazo considerado.
LA

La expresión SP mínima buscada, es la suma de todos los productos hallados según el paso anterior.
FI


𝑍 = 𝐶̅ + 𝐵. 𝐷 + 𝐵̅. 𝐷
̅

IMPLICANTES PRIMOS (IP): Todos los lazos bien usados se denominan implicantes primos. Son
agrupaciones de máximo número posible de celdas adyacentes, tales que el lazo que encierra a cada
agrupación no puede ser englobado por otro lazo que permita una agrupación mayor de celdas. Los IP dan
lugar a productos con el menor número de variables, objetivo de la minimización.

REGLAS PRÁCTICAS PARA MINIMIZAR: Suponiendo que se tiene una función representada por una
cierta disposición de “unos” en el diagrama, los pasos a seguir pueden ser:
1- Encontrar todos los IP de la función, para lo cual:
 Procurar formar todos los lazos posibles que contengan 8 celdas adyacentes.

15
Este archivo fue descargado de https://filadd.com
 Con las celdas que no fueron cubiertas en el paso anterior, formar todos los lazos posibles
que contengan 4 celdas adyacentes.
 Si aún quedaran celdas que se pueden enlazar como 2 adyacentes, formar todos los lazos
posibles de ese tipo.
 Luego sólo pueden quedar sin enlazar celdas aisladas, que constituirán lazos con una celda.
2- Indicar en punteado los lazos que tienen todos sus “unos” compartidos con otros lazos, o sea los IP
no esenciales.
3- Probar si con los IP esenciales se pueden cubrir todos los “unos” del diagrama, teniendo siempre
presente que se busca hacer esto con el menor número posible de lazos.
4- Si con los IP esenciales no se cubren todos los “unos” del diagrama, realizar esto usando el menor
número posible de lazos en punteado.
5- En caso de que los lazos en punteado den lugar a más de una solución mínima, realizar

OM
preferentemente un diagrama para cada una.
6- Para cada lazo de cada solución mínima hallar las variables que son sus coordenadas y formar el
producto correspondiente, desechando las variables que no intervendrían en el mismo.
7- Cada solución mínima, expresarla como una suma de todos los productos hallados.

.C CIRCUITOS ARITMÉTICOS

CIRCUITO DECODIFICADOR: un circuito decodificador completo permite reconocer qué combinación


DD
binaria está presente en sus n entradas (entre 2n posibles) según cuál de sus 2n cables de salida está
activado. Esto es, cada vez que en las entradas de un decodificador se aplica una cierta combinación o
número binario, en correspondencia sólo una determinada línea de salida se activa, permaneciendo las
restantes salidas sin activar.
En general, un decodificador completo de n entradas consta de 2n compuertas AND, de n entradas. Cada
LA

salida de una de ellas es una salida del circuito.

CODIFICADOR DECODIFICADOR

Z2n-1 Z2n-1
FI

Dn-1 Dn-1
2n 2n a n n n n a 2n 2n
ent. sal. ent. sal.


D0 D0
Z0 Z0

𝑫𝒊 = ∑ 𝒁𝒊 𝒁𝒊 = ∏ 𝑫𝒊
𝒊 𝒊

MULTIPLEXOR (MUX): presenta k entradas (D0, D1, …) de datos (k = 2n), n entradas de selección (A, B,
C, …) y una salida Z. Permite seleccionar el valor lógico que aparecerá en su salida, entre los valores lógicos
presentes en sus k entradas de datos.
Para tal fin en las n entradas de selección debe aplicarse un número binario igual al subíndice decimal de la
línea de datos que se quiere seleccionar.

16
Este archivo fue descargado de https://filadd.com
DEMULTIPLEXOR (DEMUX): realiza la función inversa del multiplexor: el valor lógico de la línea de
entrada puede ser seleccionado, mediante n entradas de selección, para que aparezca en una de las k = 2n
líneas de salida.

OM
D2n -1.C
MULTIPLEXOR DEMULTIPLEXOR

Z2n -1
DD
MUX DEMUX
2n Z D 2n
ent.
2n x 1 sal.
1 x 2n
ent. sal.
LA

D0 Z0

Sn-1 S0 Sn-1 S0

n sel. n sel.
FI

Ent. Sel. Entradas Sal. Ent. Ent. Sel. Salidas


A B D3 D2 D1 D0 Z Z A B Z3 Z2 Z1 D0
0 0 x x x 1 D0 0 x x 0 0 0 0


0 1 x x 1 x D1 1 0 0 1 0 0 1
1 0 x 1 x x D2 1 0 1 0 0 1 0
1 1 1 x x x D3 1 1 0 0 1 0 0
1 1 1 1 0 0 0
𝒁 = ∑ 𝑫𝒊 . (𝒄ó𝒅 𝒊 𝒆𝒏 𝑺) 𝒁𝒊 = 𝑫. (𝒄ó𝒅 𝒊 𝒆𝒏 𝑺)
𝒊

17
Este archivo fue descargado de https://filadd.com
COMPARADOR DE MAGNITUD DE 2 BITS: Posee 2 entradas y 3 salidas, donde solo una salida se
activa.

Ent. Salidas
A B I m M
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
1 1 1 0 0
𝐈 = ̅̅̅̅̅̅̅̅̅
𝐀⊕𝐁 ; 𝐦= 𝐀̅ . 𝐁 ; 𝐌 = 𝐀. 𝐁
̅

OM
SUMADOR ARITMÉTICO DE DOS NÚMEROS DE N BITS: con el método manual de sumar columna
por columna, comenzando por la derecha, y teniendo presente el acarreo (“Carry”) si se arrastra 1 de una
posición a otra, la suma ejemplificada implica la operatoria siguiente:

.C
DD
Semisumador (Half Adder)

Entradas Salidas Mapa de Karnaugh Mapa de Karnaugh


S para C: para S:
A B C
LA

0 0 0 0 C B S B
A 0 1 A 0 1
0 1 0 1
1 0 0 1 0 0 1
1 1 1 0 11 1 1
FI

𝐂 = 𝐀. 𝐁 𝐒= 𝐀⊕𝐁

A B


C S

18
Este archivo fue descargado de https://filadd.com
Sumador Completo SC (Full Adder)

Entradas Salidas Ai Bi Ai Bi Ci-1


Ai Bi Ci-1 Ci Si
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
SC
Ci-1
1 0 0 0 1
1 0 1 0 0

OM
1 1 0 1 0
1 1 1 1 1 Ci Si

Si

.C Ci

Se trata de un circuito combinacional particular, que transforma cada combinación de 3 bits a sumar, en
DD
una combinación que puede interpretarse como la suma aritmética de los mismos. Posee 3 entradas (2 bits
a sumar y 1 bit de carry de la suma anterior) y 2 salidas (S la suma y C el carry).

SUMADOR-RESTADOR DE LA UAL: este circuito puede realizar la suma o diferencia de dos números
A y B, compuestos de 4 bits cada uno, que simbolizaremos A(𝐀𝟑 , 𝐀𝟐 , 𝐀𝟏 , 𝐀𝟎 ) y B(𝐁𝟑 , 𝐁𝟐 , 𝐁𝟏 , 𝐁𝟎 ).
LA
FI


Si M = 0 la salida de cada X-OR repetirá el valor 0 ó 1 existente en la entrada Bi correspondiente; y si M = 1


invertirá el valor de dicha entrada. Con el cable M se logra que los valores presentes en B se inviertan en la
resta para obtener el complemento de B, o mantengan su valor en la suma.

19
Este archivo fue descargado de https://filadd.com
GENERADOR/VERIFICADOR DE PARIDAD: En los generadores de paridad la paridad puede ser par o
impar. El bit de paridad se utiliza para detectar posibles errores en la transmisión del dato transmitido,
mediante un comprobador de paridad que recibe la información con el fin de validarla. El generador de
paridad lo que hace es agregar un bit de paridad. Si es paridad par se agrega un 1 para alcanzar una
cantidad par de 1, si la cantidad ya es par, el bit de paridad queda en 0. Lo mismo ocurre para la paridad
impar, pero manteniendo una cantidad impar de 1. Si la salida del recepto-verificador es 0, la paridad es
correcta.

GEN. PARIDAD PAR GEN. PARIDAD IMPAR


A B C Z A B C Z
0 0 0 0 0 0 0 1
1 0

OM
0 0 1 0 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 1 1
1 0 0 1 1 0 0 0
1 0 1 0 1 0 1 1
1 1 0 0 1 1 0 1
1 1 1 1 1 1 1 0

.C
𝐙 =𝐀⊕𝐁⊕𝐂 𝐙 = ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝐀⊕𝐁⊕𝐂
DD
LA
FI


20
Este archivo fue descargado de https://filadd.com
ARQUITECTURA DE COMPUTADORAS
CIRCUITOS SECUENCIALES
CIRCUITOS LÓGICOS SECUENCIALES: También se denominan autómatas finitos o máquinas de
estado. El valor de las salidas del circuito depende no solo de los valores de sus entradas en el momento
presente sino también de sus entradas pasadas, es decir de la historia del comportamiento del circuito.
Dichas entradas quedan almacenadas formando el estado del sistema (memoria de estado)
El estado de un circuito secuencial está formado por un conjunto de bits llamados variables de estado que
contienen toda la información del pasado del circuito y que permitirán explicar su comportamiento futuro.
La memoria de estado está formada por un conjunto de 𝒏 biestables. Cada biestable es un circuito lógico
capaz de tener dos estados estables. Un estado se dice estable si las variables que lo define permanecen

OM
inalteradas si no hay cambios en sus variables de entrada.
Podemos distinguir dos tipos principales de biestables: latches y flip-flops.

CIRCUITOS SECUENCIALES ASÍNCRONOS: Son sistemas que cambian de estado cuando cambian sus
entradas.
CIRCUITOS SECUENCIALES SÍNCRONOS: Son circuitos en que los cambios de estado se producen bajo un

.C
control de tiempo. Este control se denomina reloj (clock). La señal de reloj alterna entre los valores lógicos
𝟎 y 𝟏 en un periodo regular.
Los sistemas síncronos pueden ser sincronizados por nivel o por flancos. En los sistemas sincronizados por
DD
nivel los cambios ocurren mientras el valor de la señal de reloj permanece en un valor (o alto o bajo). En
los sistemas sincronizados por flancos los cambios de estado ocurren en los instantes donde el reloj
cambia de valor lógico.
LA
FI


LATCHES: Biestable Asíncrono. Su estado interno cambia en función de los valores de sus entradas (cómo)
y en los momentos en que lo hacen estas últimas (cuándo).
FLIP FLOP: Biestable Síncrono. Su estado interno cambia en función de los valores de sus entradas (cómo) y
en los momentos en que lo habilita una entrada de reloj (cuándo).

1
Este archivo fue descargado de https://filadd.com
FLIP FLOPS O CELDAS DE MEMORIA BIESTABLES ESTÁTICAS: permanecen en uno u otro estado
mientras no se corte el suministro de energía eléctrica al circuito. En ellos existe por lo menos un lazo de
realimentación que proporciona un camino para que la salida de una compuerta se propague hacia una de
sus entradas.

FLIP FLOPS O CELDAS DE MEMORIA BIESTABLES DINÁMICAS: se basan en el estado cargado o


descargado de un capacitor que forma parte de un circuito con uno o m{as transistores. Dado que un
capacitor no puede permanecer cargado indefinidamente, el mismo debe recargarse periódicamente, de
modo de aportarle cargas eléctricas de “refresco”, para compensar las cargas que se pierden.

FLIP FLOP ASÍNCRONOS - FLIP FLOP RS: presentan dos entradas designadas 𝑺 y 𝑹 que pueden
actuar en cualquier instante para cambiar el estado del circuito, y en consonancia cambiar el valor de sus

OM
̅ . Se conocen con las siglas 𝑹𝑺, por la denominación Reset y Set de sus entradas,
salidas, designadas 𝑸 y 𝑸
que permiten hacer 𝑸 = 𝟎 y 𝑸 = 𝟏, respectivamente. La salida 𝑸 ̅ se genera para el caso que se necesite
esa señal.

.C
DD
LA

Leyendo el valor 0 ó 1 de la salida 𝑸 se puede determinar en qué estado se encuentra el circuito. También
puede expresarse que si 𝑸 = 𝟎 el circuito mantiene, memoriza un cero, y si 𝑸 = 𝟏 memoriza un uno, dado
que uno u otro valor se conservará mientras el circuito permanezca en uno de los dos estados.

FLIP FLOP SÍNCRONOS O TEMPORIZADOS: presentan una o dos entradas 𝑬𝟏 y 𝑬𝟐 , que pueden
FI

actuar sobre el estado del circuito sólo en determinados instantes, definidos en relación a pulsos que
llegan por otra entrada de sincronismo conocida como reloj o clock 𝑪𝒌.
Pueden existir una o dos entradas asincrónicas, o de "fuerza", indicadas en punteado, para obligar en
cualquier momento que el flip-flop presente uno de sus dos estados, independientemente de la presencia


de pulsos de sincronismo. Esto es útil para fijar, por ejemplo, inicialmente el estado del circuito luego de
energizarlo.

𝑬𝟏 𝑸
𝑬𝟐
̅
𝑸
𝑪𝒌

FLIP FLOP JK: Su funcionamiento es similar al flip-flop RS, de modo que la entrada 𝑲 actúa para la puesta a
𝟎 (reset) y la entrada 𝑱 para la puesta a 𝟏 (set). Cuando se activan las dos entradas simultáneamente, el
biestable cambia de estado. Son biestables síncronos, lo que quiere decir que las transiciones de los
valores de salida se producen durante los flancos activos de las señales de reloj. La diferencia está en que

2
Este archivo fue descargado de https://filadd.com
el flip-flop JK no tiene condiciones no válidas como ocurre en el RS. A partir de él se pueden construir todos
los demás. En conclusión, es igual al RS, pero permite la entrada 11.

OM
FLIP FLOP D: Se conocen por el nombre de biestables de datos o seguidores. Tienen una única entrada 𝑫,
que es copiada en el interior del biestable en los instantes de sincronismo. Solamente tienen sentido como
biestables síncronos por nivel o por flanco. Se construye a partir de un JK agregándole un inversor. J y K
distintos.

.C
DD
LA

FLIP FLOP T: Es igual que al JK, con J y K iguales.


FI


FLIP FLOP MASTER-SLAVE: para almacenar un bit se utiliza un conjunto de dos flip-flop, denominados
“maestro y esclavo” (“master-slave”) para lograr que la salida del “esclavo” -que es la salida del conjunto-
cambie una sola vez, aunque la entrada 𝑫 del “maestro” cambie varias veces mientras 𝑪𝒌 = 𝟏. La entrada
del “esclavo” toma la salida del “maestro”, por lo que está obligado a seguirlo, y su entrada 𝑪𝒌 está
invertida respecto de la de éste.

3
Este archivo fue descargado de https://filadd.com
El “maestro” recibe la información presente en la entrada 𝑫 cuando 𝑪𝒌 = 𝟏, y la almacena en su circuito
cuando 𝑪𝒌 = 𝟎. Es entonces cuando el “esclavo” copia dicho valor almacenado, presentándolo por la
salida Q. O sea que la salida Q del flip-flop sólo puede cambiar luego que 𝑪𝒌 pase de 𝟏 a 𝟎. Mientras sea
𝑪𝒌 = 𝟎 el “maestro” no puede cambiar, y por lo tanto una vez que cambio el “esclavo” éste tampoco
podrá cambiar. Cuando nuevamente sea 𝑪𝒌 = 𝟏, el “maestro” recibirá nuevamente la información
presente en 𝑫, pudiendo cambiar su salida, pero la salida del “esclavo” permanecerá con el valor que tenía
cuando 𝑪𝒌 = 𝟎, dado que si 𝑪𝒌 = 𝟏 en correspondencia es 𝑪𝒌𝟐 = 𝑪𝒌 ̅̅̅̅ = 𝟎, por lo cual el “esclavo” está en
estado de retención.
Vale decir, que la salida 𝑸 del “esclavo” una vez que cambie -luego que 𝑪𝒌 pase do 1 a 0- no puede volver
a hacerlo hasta que nuevamente 𝑪𝒌 pase de 𝟏 a 𝟎.

OM
REGISTROS

.C
Un registro es un conjunto de 𝒏 flip flops asociados, que permiten almacenar temporalmente una palabra
o grupo de 𝒏 bits.
DD
REGISTROS CON ENTRADAS Y SALIDAS EN PARALELO: un registro de paralelo a paralelo permite
transferir simultáneamente bits hacia o desde el mismo. Consta de n flip flops D “latch” que tienen unidas
sus entradas de 𝑪𝒌, de modo de poder cambiar juntos cada pulso reloj.
LA
FI


Suponiendo que se quiere memorizar la palabra 𝟏𝟎𝟏𝟏𝟎𝟏𝟏𝟎 que llega por las 8 líneas del 𝒃𝒖𝒔 𝟏, los bits
que la componen deben estar presentes en las correspondientes entradas 𝑫 cuando 𝑪𝒌 = 𝟎. Cuando
𝑪𝒌 = 𝟏 cada bit se almacena en el flip flop respectivo, transfiriéndose esa palabra hacia el registro. La
transferencia de nueva información suele denominarse carga del registro. Una vez que cambiaron todos
los flip flops, los bits de la palabra estarán disponibles en las 8 salidas de los mismos, por ende, en las 8
líneas del 𝒃𝒖𝒔 𝟐, durante el tiempo en que 𝑪𝒌 = 𝟎.

REGISTROS DE DESPLAZAMIENTO (SHIFT REGISTER): un registro de desplazamiento a derecha


permite mover en esa dirección los bits que contienen los flip flops que lo constituyen, de forma tal que
cuando todos reciben juntos un pulso reloj, cada flip flop pasa el bit que tenía almacenado al siguiente que
está a su derecha para que lo almacene. El flip flop de la extrema izquierda almacenará el valor presente
en su entrada 𝑫, y el bit que almacenaba el de la extrema derecha se perderá, dejará de ser memorizado
por el registro. De igual modo se define un registro de desplazamiento a izquierda ("shift left register“).

4
Este archivo fue descargado de https://filadd.com
Se trata de un circuito conformado por 8 flip flops D, que necesariamente deben ser maestro-esclavo,

OM
puesto que así -mientras 𝑪𝒌 = 𝟏- el maestro de cada flip flop recibe el bit a almacenar del esclavo, del flip
flop que está a su izquierda, al mismo tiempo su esclavo transmite el bit que almacena al maestro del flip
flop que está a su derecha.

REGISTRO DE DESPLAZAMIENTO COMO REGISTRO SERIE-PARALELO: cuando el registro de


desplazamiento se usa para convertir información que llega en serie por un solo cable en información en

.C
paralelo por n cables, se denomina registro serie-paralelo.
DD
REGISTRO DE DESPLAZAMIENTO COMO REGISTRO SERIE-SERIE: Si los bits que entran en serie se toman
luego de 8 pulsos reloj de la salida, se tiene un registro serie-serie, con entrada y salida serie de datos,
utilizado cuando se quiere retener información seriada durante el lapso que duran dichos pulsos. Esta
LA

aplicación permite simular una línea de retardo mediante un registro de desplazamiento de 𝒏 flip flops: un
bit que entra queda demorado 𝒏 pulsos reloj hasta que sale.
FI

REGISTRO DE DESPLAZAMIENTO COMO REGISTRO PARA ROTAR INFORMACIÓN: Si se realimenta la


entrada de la salida, se tiene un registro o memoria recirculante en el cual la información rota sin que se
pierda ningún bit.


REGISTROS UNIVERSALES: un registro universal puede presentar 4 modos de operación:


 Carga en paralelo sincrónica.
 Desplazamiento a derecha (shift right).
 Desplazamiento a izquierda (shift left).
 Retención (hold) de la información durante una cantidad de pulsos reloj requerida.

5
Este archivo fue descargado de https://filadd.com
Usando un multiplexor de 4 entradas de datos, es posible elegir uno de esos 4 modos, para lo cual hacen
falta 2 entradas de selección que se designan 𝑺𝟏 y 𝑺𝟎 .

OM
Cuando 𝑺𝟏 = 𝟏 y 𝑺𝟎 = 𝟏 se seleccionan las entradas de carga en paralelo.
Si 𝑺𝟏 = 𝟎 y 𝑺𝟏 = 𝟏 el registro opera desplazando a derecha, con nueva información serie tornada a través
de la entrada serie a derecha 𝑬𝒔𝒅.
La tercera vía del multiplexor se habilita con 𝑺𝟏 = 𝟏 y 𝑺𝟎 = 𝟎, para que cada entrada 𝑫 reciba el valor de
la salida 𝑸 del flip flop que está a su derecha. Así cada flip flop pasa el bit que tenía almacenado al flip flop

.C
que está a su izquierda, y el de la extrema izquierda recibe la información serie del exterior a través de la
entrada serie a izquierda 𝑬𝒔𝒊 . Con cada pulso reloj, la información en el registro se desplaza un bit a la
izquierda.
Mientras sea 𝑺𝟏 = 𝟎 y 𝑺𝟎 = 𝟎 se selecciona la cuarta vía de cada multiplexor, de forma que la entrada 𝑫
DD
de cada flip flop reciba su propia salida 𝑸, por lo que con cada pulso reloj que llegue se vuelva a escribir en
el flip flop el valor que tenía 𝑸, manteniéndose (“hold”) así almacenado dicho valor sin cambios.

Este circuito permite:


 La conversión en forma sincrónica con los pulsos del reloj de datos en paralelo a serie y viceversa.
LA

 El almacenamiento temporario de datos: así un registro universal de 𝒏 bits puede guardar 𝒏 bits
durante un pulso reloj si opera como registro con entradas y salidas en transmisión serie a serie; o
bien mantener sin cambios los datos almacenados durante la cantidad de pulsos que se requiera,
en modo "hold".
 Multiplicar o dividir por dos.
FI

CIRCUITOS CONTADORES-SECUENCIADORES


En el registro de desplazamiento se ha unido la salida 𝑸𝟎 con la entrada 𝑫𝟑 . De este modo luego de cada
pulso reloj el bit que guarda el flip flop de salida 𝑸𝟎 pasara al de salida 𝑸𝟑 . Supondremos que inicialmente
está almacenada una combinación cualquiera, como la 𝟎𝟏𝟎𝟎. Entonces, luego de cuatro pulsos reloj, por
desplazamientos sucesivos, se volverá a tener la combinación 𝟎𝟏𝟎𝟎. Si luego siguen llegando pulsos reloj
por la entrada 𝑪𝒌, el circuito permanentemente repetirá la secuencia:
𝟎𝟏𝟎𝟎 → 𝟎𝟎𝟏𝟎 → 𝟎𝟎𝟎𝟏 → 𝟏𝟎𝟎𝟎 → 𝟎𝟏𝟎𝟎 → 𝟎𝟎𝟏𝟎 → ⋯
Decimos que el circuito presenta 4 estados, o que sigue un código compuesto por 4 estados.

6
Este archivo fue descargado de https://filadd.com
El circuito dado puede usarse como contador de la cantidad de pulsos que entraron por la entrada 𝑪𝒌.

Otra aplicación del mismo circuito como generador de secuencias de combinaciones binarias
(secuenciador). En general, si se tiene un conjunto de flip flops y compuertas, puede conseguirse que, a
partir de una primera combinación dada, se generen secuencias fijas compuestas por un número
predeterminado de combinaciones binarias.

También es factible construir circuitos que sigan una secuencia de combinaciones de números binarios
sucesivos a partir de un número inicial cualquiera. El denominado contador de programa o registro
puntero de instrucción (IP) opera de este modo, controlado por la UC, para formar la dirección de
memoria donde se encuentra la siguiente instrucción a ejecutar. Este contador progresa continuamente

OM
hasta que una instrucción de salto ordena que su valor cambie abruptamente. A partir del nuevo valor
indicado por dicha instrucción, el circuito comienza una nueva cuenta progresiva, y así de seguido.
Se usa también un contador progresivo para llevar registro del reloj-calendario de un computador, el
cual progresa merced a pulsos que llegan regularmente generados por un oscilador a cristal destinado a tal
fin.

.C
DD
LA

MEMORIAS
JERARQUÍAS DE MEMORIA: Sistema de memorias que combina distintas tecnologías para responder a
las características contrapuestas de estas últimas y las necesidades del sistema de procesamiento.
FI

NIVELES DE UNA JERARQUÍA DE MEMORIAS:




7
Este archivo fue descargado de https://filadd.com
CARACTERÍSTICAS DE LAS MEMORIAS:
TIPO FÍSICO:
 Semiconductores: circuitos integrados basados en semiconductores para almacenar información. Se
utilizan principalmente transistores y capacitores para almacenar bits. Ejemplos: SRAM, DRAM, Flash.
 Magnético: utiliza patrones de magnetización sobre una superficie magnética Ejemplos: discos duros,
cintas (Cartridge, DDS, etc.).
 Óptico: almacena información como deformaciones en la superficie de un disco circular, leyéndola con
un láser que lo ilumina mientras éste gira. Ejemplos: CD, DVD, Blu-ray.
CAPACIDAD: La unidad de capacidad es el byte Las unidades más usadas son múltiplos del byte.
Kilobyte (KB) 𝟐𝟏𝟎 = 𝟏𝟎𝟐𝟒
Megabyte (MB) 𝟐𝟐𝟎 = 𝟏𝟎𝟒𝟖𝟓𝟕𝟔
𝟐𝟑𝟎 = 𝟏𝟎𝟕𝟑𝟕𝟒𝟏𝟖𝟐𝟒

OM
Gigabyte (GB)
Terabyte (TB) 𝟐𝟒𝟎
Petabyte (PB) 𝟐𝟓𝟎
MÉTODOS DE ACCESO:
 Random (Aleatorio): El tiempo de acceso es independiente de la posición o acceso previo. Ejemplo:
RAM.
 Asociativo: El tiempo de acceso es independiente del acceso previo, pero variable según la posición en

.C
la que se encuentre el dato. Ejemplo: memoria cache asociativa.
 Directo: se direccionan o identifican bloques de datos. El tiempo de acceso es variable.
 Secuencial: el tiempo de acceso depende de la ubicación de los datos y de dónde se estaba leyendo
DD
previamente. Ejemplo: casete, cartridge.
VOLATILIDAD:
 Volátil: Retiene información sólo mientras este recibiendo alimentación eléctrica. Ejemplo: RAM.
 No volátil: Retiene información aun cuando no esté siendo alimentada eléctricamente. Ejemplo: ROM.
LA

UBICACIÓN: puede ser CPU, interna o externa.


MEDIDAS DE RENDIMIENTO:
 Tiempo de acceso: Tiempo que transcurre desde el requerimiento del dato y la obtención del mismo.
 Tiempo de ciclo: Tiempo que transcurre entre dos operaciones consecutivas.
FI

MEMORIA RAM (RANDOM ACCESS MEMORY): o memoria de acceso aleatorio, en las que
cualquier celda puede ser escrita o leída cuantas veces se desee. Es un tipo de memoria volátil, ya que, por
sus características físicas, pierden la información almacenada cuando se corta el suministro de energía
eléctrica al computador.


MEMORIA ROM (READ-ONLY MEMORY): o memoria de sólo lectura, estos chips contienen un
programa para el arranque inicial de los computadores, y los programas del BIOS. Es una memoria
electrónica de acceso random, cuya escritura demanda muchísimo más tiempo que su lectura, pero tiene
la ventaja de ser no volátil, o sea que almacena la información en forma permanente.

MEMORIA PRINCIPAL = RAM + ROM

Las memorias RAM y ROM tienen en común que, al contenido de cualquier posición de las mismas se
puede acceder “al random”, o sea en igual tiempo, sin búsquedas, indicando un número que la identifica,
que es su dirección, siendo dicho tiempo menor en la RAM. Difieren en que cada posición RAM puede ser
leída o escrita cuantas veces sea, siendo su contenido volátil, mientras que se accede al contenido no
volátil de una posición ROM sólo para leerla.

8
Este archivo fue descargado de https://filadd.com
ARQUITECTURA INTERNA DEL COMPUTADOR
REGISTROS:
AX (REGISTRO ACUMULADOR): para datos y resultados.

RI (REGISTRO DE INSTRUCCIÓN): las instrucciones son ejecutadas una por vez, primero cada una llega por
un bus, a un registro de instrucción, donde permanece mientras se ejecuta.

RE (REGISTRO DE ESTADO): contiene un conjunto de bits llamados indicadores (flags), los cuales pueden
cambiar de valor luego de cada operación que hace la UAL. Los Flags se usan en instrucciones de salto,
esenciales para el proceso automático de datos, pues permiten repetir muchas veces un mismo
subprograma, o saltar de un subprograma a otro que ordena acciones diferentes.

OM
IP (PUNTERO DE INSTRUCCIÓN): Registro puntero de instrucción, indica el número, el cual permite
localizar en una zona de memoria principal donde está la próxima instrucción a ejecutar.

REGISTROS IA16:

.C
DD
LA

La UCP tiene 14 registros internos, cada uno de 16 bits. Los primeros cuatro, AX, BX, CX, y DX son registros
de uso general y también pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es
necesario referirse a ellos como, por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del
registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX.
FI

AX: Acumulador BX: Base CX: Contador DX: Datos


SI: Índice Fuente DI: Índice Destino BP: Apuntadores Base SP: Apuntador de la Pila
CS: Segmento de Código DS: Segmento de Datos ES: Segmento Extra SS: Segmento de Pila


IP: apuntador de siguiente instrucción F: registro de banderas

REGISTROS IA32:

9
Este archivo fue descargado de https://filadd.com
REGISTROS IA64:

SUBREGISTROS:

OM
.C
REGISTRO DE ESTADOS: Algunas instrucciones (aritméticas o lógicas) setean valores lógicos en bits del
registro. Algunos de estas banderas (Flags) son:
Signo (SF): Se setea (pone a 1) si el resultado de la operación fue negativo.
Cero (ZF): Igual a 1 si el resultado fue cero.
DD
Acarreo (CF): Se setea si hubo un acarreo fuera del registro.
Overflow (OF): Se pone a 1 si hubo overflow o desbordamiento.
Paridad (PF): Se setea cuando el resultado tuvo paridad par.
LA

ALU (UNIDAD ARITMÉTICA LÓGICA): sirve para realizar las operaciones aritméticas o lógicas que le
FI

ordena la UC, siendo auxiliada por registros acumuladores para guardar transitoriamente datos y
resultados. La ALU no puede emitir orden alguna, es decir, no ejecuta instrucciones.
Operaciones aritméticas: suma, resta, multiplicación, división de números enteros y naturales.
Operaciones lógicas: AND, OR, NOT, XOR.


UC (UNIDAD DE CONTROL): La unidad de control es uno de los tres bloques funcionales principales en
los que se divide una unidad central de procesamiento (CPU). Es una máquina o circuito secuencial, que
tiene una secuencia o ciclo de instrucción de cuatro o cinco pasos, dependiendo de la arquitectura:

1- Obtener (direccionar) la instrucción a ejecutar de la memoria principal: el IP indica la dirección de MP


donde comienza el código de máquina de la instrucción a ejecutar, el cual luego de ser leído de MP llega al
registro RI.
2- Decodificar: el código de operación indica la operación a realizar, como encontrar un dato a operar, y la
cantidad de bytes que tiene la instrucción, para que la UC lleve a cabo la secuencia de movimientos
preparada para ejecutar dicho código.

10
Este archivo fue descargado de https://filadd.com
3- Obtener un dato a operar: si el dato está en MP, con una dirección que resulta del código de máquina
de la instrucción, se direcciona la MP para obtener un dato a operar. Dicho dato llega al registro RDA.
4- Realizar la operación ordenada y almacenar el resultado: según lo ordenado, puede tener lugar una
operación en la UAL y almacenar el resultado en un registro, o consistir la operación en un simple
movimiento de un registro a otro, donde queda guardado un dato.
5- Cambiar el contenido del registro IP, para que tome la dirección de la próxima instrucción a ejecutar, y
vuelta al paso 1.

ARQUITECTURA EXTERNA DEL COMPUTADOR


ARQUITECTURA DE VON NEUMANN

OM
.C
DD
LA

MEMORIA PRINCIPAL: Memoria a la que accede directamente la Unidad Central de Proceso.


Generalmente se la identifica con la denominada memoria DRAM y la ROM-BIOS. Los datos a ser
procesados por la CPU deben estar en esta memoria, como así también las instrucciones que dirigen dicho
FI

procesamiento. Se la denomina de esta manera para diferenciarla de la memoria secundaria o externa, que
forma parte de los periféricos.

BUSES: un bus es un camino eléctrico constituido por líneas conductoras, que permiten intercambiar


información binaria entre dos o más dispositivos. Si es compartido por más de dos, éstos pueden
comunicarse entre sí a través del bus a razón de dos por vez, siendo que en un instante dado solo uno
puede transmitir. Cualquier señal que éste transmite puede ser recibida por cualquier otro dispositivo del
bus, pero sólo responderá el que fue seleccionado. Tipos de buses:
– Seriales o series: transmiten un bit por vez.
– Paralelos: transmiten más de un bit por vez o simultáneamente.
– Síncronos: tienen una línea de clock
– Asíncronos: No tienen una línea de clock.

BUS DE DIRECCIONES: es el encargado de indicar la posición de memoria o el dispositivo con el que se


desea establecer comunicación. Unidireccional. 20bits. Los escribe el CPU. Podemos direccionar 220.
BUS DE DATOS: permite el intercambio de datos entre la CPU y el resto de unidades. Bidireccional. 8bits.
BUS DE CONTROL: gobierna el uso y acceso a las líneas de datos y de direcciones. Como estas líneas están
compartidas por todos los componentes, tiene que proveerse de determinados mecanismos que controlen

11
Este archivo fue descargado de https://filadd.com
su utilización. Las señales de control transmiten tanto órdenes como información de temporización entre
los módulos. Es el que permite que no haya colisión de información en el sistema. Bidireccional.

UNIDAD CENTRAL DE PROCESO (CPU):


ALU: Su función es ejecutar instrucciones aritméticas y lógicas.
UC: Encargada de la búsqueda, decodificación de las instrucciones y
de la generación de las señales de control para la ejecución de estas
últimas.
Banco de Registros: Conjunto de registros necesarios para
almacenar en forma temporal instrucciones y datos.
Buses Internos

OM
SUBSISTEMA DE E/S: También denominado interfaces de E/S, nódulos de E/S, adaptadores de E/S o
controladores de E/S. Tienen registros de estado, control y datos conocidos como PUERTOS.

.C
DD
Funciones básicas del subsistema de E/S:
• Direccionamiento: Selección del dispositivo con el que se realizarán las operaciones de E/S entre todos
los dispositivos presentes.
• Sincronización: Permitir que la CPU y la memoria (dispositivos con altas tasas de transferencia de
LA

información) puedan sincronizar sus envíos con los periféricos (dispositivos con bajas velocidades de
transferencia)
• Transferencia: El subsistema de E/S debe ser capaz de realizar las transferencias de información de y
hacia los dispositivos periféricos involucrados
FI

LENGUAJE ENSAMBLADOR
En lenguaje ensamblador, cada instrucción equivale a una instrucción en lenguaje de máquina.
Cada sentencia está compuesta por: [label]: código_de_operacion [operando/s]


Utiliza nombres simbólicos para códigos de operación (mnemónico), operandos y direcciones de memoria.

Sumar add Saltar jmp Not Not Interrupción int


Restar sub Almacenar sto Llamar pr. call División s/s div
Multiplicar imul Mover mov Incremento inc División c/s idiv
Cargar ld And And Decremento dec Intercambio xchg

12
Este archivo fue descargado de https://filadd.com
COMANDOS:

CREACIÓN Y DEPURACIÓN DE PROGRAMAS:


-a (assemble): le dice a DEBUG que acepte instrucciones simbólicas en ensamblador y las convierta a
lenguaje de máquina. Cuando se utiliza este comando se le puede dar como parámetro la dirección donde
se desea que se inicie el ensamblado.
A 100 Ensamblar en CS:100h.
A
A Ensamblar desde la dirección actual.
A address
A DS:2000 Ensamblar en DS:2000h.

-g (go): se utiliza para ejecutar el programa que se encuentra en memoria.

OM
Ejecuta desde la ubicación actual
G
hasta el fin del programa.
G Ejecuta desde la ubicación actual y
G breakpoint G 50 termina antes de la instrucción en el
G =startAddr breakpoint offset CS:50.
G =startAddr breakp1, breakp2, … Comienza la ejecución en CS:10 y
G = 10 50 termina antes de la instrucción en el

.C offset CS:50.

-r (register): mostrar el contenido de uno o todos los registros. Los parámetros le indican que registro
DD
visualizar.
Muestra el contenido de todos los
R R
registros.
R register
R CX Muestra el contenido del registro CX.
LA

-p (proceed): proceder o ejecutar un conjunto de instrucciones relacionadas.

-t (trace): ejecuta línea por línea lo que se ensambla, mostrando cada vez los contenidos de los registros.
T Ejecuta la instrucción siguiente.
T
T5 Ejecuta las siguientes 5 instrucciones.
T count
FI

Ejecuta 16 instrucciones comenzando


T =address count T =105 10
en CS:105.

-u (unassemble): se utiliza para verificar que el programa se cargó en memoria, desensambla el código y lo


muestra. Los parámetros le indican a DEBUG desde y hasta donde desensamblar. Ejemplo: u 100,109
U Desensambla los siguientes 32 bytes.
U
U0 Desensambla 32 bytes en CS:0.
U startAddr
Desensambla los bytes desde CS:100
U startAddr endAddr U 100 108
a CS:108.

MANIPULACIÓN DE MEMORIA:
-c (compare): comparar un rango de memoria con otro.
Los bytes entre DS:0100 y DS:0105
C range address C 100 105 200 son comparados con los bytes en
DS:0200.

-d (dump): mostrar el contenido de un área de memoria.

13
Este archivo fue descargado de https://filadd.com
Mostrar 128 bytes desde la última
D
ubicación referenciada.
D
D 0 200 Mostrar offsets 2-200 desde DS.
D address
Mostrar 128 bytes en el offset cero
D range D 915:0
desde el segmento 0915h.
A DS:2000 Ensamblar en DS:2000h.

-e (enter): introduce bytes individuales en memoria, iniciando en una localidad específica.


Para ingresar datos hexadecimales o
E 100
E address de caracteres en DS:100.
E address list Para ingresar una cadena en la
E CS:100 “Es una cadena.”
memoria en CS:100.

OM
-f (fill): llenar un rango de memoria con un solo valor.
Llena las ubicaciones del 100 al 500
F 100 500, “ ”
con espacios.
Llena las ubicaciones del CS:300 al
F range list F CS:300 CS:1000, FF
1000 con el hexadecimal FFh.

.C F 100 L 20 “A”
Llena 20h bytes con la letra “A”,
comenzando en la ubicación 100.
DD
-m (move): mover bytes de un rango de memoria a otro.
Mueve los bytes en el rango DS:100-
M 100 105 110
105 a la ubicación DS:110.
M range address
Mueve los bytes en el rango CS:100-
M CS:100 105 CS:110
105 a la ubicación CS:110.
LA

s (search): buscar un rango de memoria para valores específicos.


S 100 1000 0D Busca DS:100 al DS:1000 el valor 0D h.
S range list S 100 1000 CD,20 Busca la secuencia CD 20.
S 100 9FFF “COPY” Busca la palabra “COPY”.
FI

DIVERSOS:
-? (help): ver ayuda.


-h (hexarithmetic): se utiliza para obtener la longitud de un programa, el cual nos muestra la suma y resta
de dos números en hexadecimal. Para obtener la longitud le proporcionamos como parámetros el valor de
la dirección final de nuestro programa y el valor de la dirección inicial. El primer resultado que nos muestra
el comando es la suma de los parámetros y el segundo es la resta.
Los valores hexadecimales 1A y 10
H value1 value2 H 1A 10 son sumados y restados, y mostrados
en el DEBUG.

-q (quit): salir de la sesión o entorno DEBUG.

ENTRADA-SALIDA:
-i (input): ingresar un byte desde un puerto.

14
Este archivo fue descargado de https://filadd.com
I port I 3F8 Ingresa un byte desde el puerto 3F8.

-l (load): cargar un programa.


Carga un archivo nombrado en la
L
memoria en CS:0100.
L prueba.com Carga el archivo prueba.com
L
Carga un archivo nombrado en la
L address L DS:0200
memoria en DS:0200.
L address drive firstsector number
Carga dos sectores en la memoria en
L 100 0 0 2 CS:100, desde el disco A, comenzando

OM
en el sector lógico número 0.

-o (output): enviar un byte a un puerto.

-n (name): nos permite poner un nombre al programa.


Pone el nombre myfile.com a un

.C
N [d:] [filename] [.ext] N b:myfile.com programa.
DD
-w (write): escribe o graba el programa en el disco, indicándonos cuantos bytes escribió.
W Escribe bytes comenzando en CS:100.
Escribe desde la ubicación CS:0 a el
W W0
archivo.
W address
Escribe dos sectores al disco A desde
W address drive firstsector number
W 100 0 0 2 la ubicación CS:100, comenzando en
LA

el sector lógico número 0.

EJEMPLOS RTL TIPO DE INSTRUCCIÓN SIGNIFICADO


FI

Copia el contenido del registro bx en el


mov ax, bx ax←bx De transferencia
registro ax
Suma al registro bx el contenido de la
add bx, var bx←bx+[1000] Aritmética posición de memoria 1000 y pone el


resultado en bx
Producto lógico del contenido del registro
and dx, ax dx←dx&ax Lógica dx con el del registro ax y el resultado se
guarda en dx
sub cx, ax cx←cx-ax Aritmética Resta ax de cx y pone el resultado en cx
Copia el contenido del registro bx en la
mov var, bx [1000]←bx De transferencia
posición de memoria 1000
inc ax ax←ax+1 Aritmética Suma 1 a ax
Resta ax de cx, pero no cambia los datos
cmp cx, ax cx-ax Aritmética de los registros. Solo actualiza los flags de
estado.

15
Este archivo fue descargado de https://filadd.com
TIPOS DE INSTRUCCIONES:
 Instrucciones de transferencia: mueven datos entre lugares de almacenamiento:
o Registro a registro.
o Registro a memoria.
o Memoria a registro.
o Memoria a memoria.
 Aritméticas
 Lógicas
 De ruptura de secuencia:
o Salto incondicional
o Salto condicional
o Llamada a procedimiento

OM
o Interrupciones
 De entrada-salida.

INSTRUCCIONES DE CONTROL DE FLUJO: Algunas instrucciones (aritméticas y lógicas) establecen valores


lógicos en bits del registro de estado o registro de código de condiciones (FLAGS). Algunos de estas
banderas (Flags) son:

.C
 Signo (SF): Se setea (pone a 1) si el resultado de la operación fue negativo.
 Cero (ZF): Igual a 1 si el resultado fue cero.
 Acarreo (CF): Se setea si hubo un acarreo fuera del registro.
DD
 Overflow (OF): Se pone a 1 si hubo overflow o desbordamiento.
 Paridad (PF): Se setea cuando el resultado tuvo paridad par.
Las instrucciones de salto condicional testean estos valores para determinar si el salto se lleva a cabo o no.
LA
FI


16
Este archivo fue descargado de https://filadd.com
Saltos Incondicionales: JMP dir_de_salto
Saltos Condicionales: Jcc dir_de_salto donde cc es la condición de salto.
Llamada a Procedimiento: CALL dir_del_procedimiento.

EJEMPLO RTL TIPO DE INSTRUCCIÓN SIGNIFICADO


jmp etiqueta ip←etiqueta Salto incondicional Carga el valor de la etiqueta en el ip.
je ax ip←ax,ZF=0 Salto condicional Carga el ip con el contenido de ax si ZF=0
Pila←ip+1 Llamada a Guarda la dirección de retorno en la pila y
call label
ip←label procedimiento carga el ip con el valor de label
ip←dirección Retorno de llamada a Saca la dirección de retorno de la pila y
ret
de retorno procedimiento carga el ip con esa dirección

OM
MODOS DE DIRECCIONAMIENTO: Los Modos de Direccionamiento de un procesador asignan
memoria RAM que pueden ser referenciadas individualmente para que la unidad central de procesamiento
(CPU) pueda determinar qué ubicación de memoria está siendo utilizada por una instrucción de la
máquina.
Los Modos de Direccionamiento son las formas de especificar la ubicación de los datos y modos para

.C
acceder a ellos. Los datos que maneja una instrucción máquina pueden estar ubicados en la propia
instrucción, en un registro de la CPU o en la memoria del computador. La palabra Dirección se utiliza como
localización del operando y NO como ubicación en memoria.
DD
MODO DE DIRECCIONAMIENTO IMPLÍCITO O INHERENTE: el operando se especifica en la misma definición
de la instrucción o código de operación o puede no tener dato porque la instrucción no lo necesita.
Ejemplo: INT 3, para finalizar una secuencia de instrucción o programa.

MODO DE DIRECCIONAMIENTO INMEDIATO: el operando figura en la instrucción, es decir, el campo del


LA

operando contiene en sí la información sobre la que hay que operar. Ejemplo: MOV AX, A9E5, el operando
A9E5 es asignado al registro AX.
Las instrucciones que ordenan pasar una constante a un registro están en modo de direccionamiento
inmediato [1], dicha constante es el dato A9E5.
FI

MODO DE DIRECCIONAMIENTO DIRECTO: no necesita transformación alguna para otorgar la dirección


necesaria es decir que la dirección del dato u operando está en las celdas de memoria siguientes al código


de operación de la instrucción. Ejemplo: MOV AX, [0150], el contenido de la dirección de memoria 0150 es
asignado al registro AX.
Si una instrucción tiene un número entre corchetes se dice que está en modo de direccionamiento directo
[1], dicho número es la dirección 0150.

MODO DE DIRECCIONAMIENTO A REGISTRO: el dato u operando está en un registro. Ejemplo: MOV AX,
BX, el dato u operando, que es el valor que debe ser asignado al registro AX, está contenido en el registro
BX.
Cuando el dato a operar no está en memoria sino en un registro de la CPU y el resultado va también a un
registro de la CPU, el modo de direccionamiento se denomina modo registro, esos registros de la CPU en el
ejemplo son BX y AX respectivamente.

17
Este archivo fue descargado de https://filadd.com
MODO DE DIRECCIONAMIENTO INDIRECTO POR REGISTRO: el código de operación de la instrucción indica
la localización de la dirección efectiva del operando, el dato u operando está en una dirección de memoria
y dicha dirección está contenida en un registro. Ejemplo: MOV AX, [BX], el contenido de la dirección del
registro BX es asignado al registro AX.
Esto es la dirección de una celda de memoria se da indirectamente a través de un registro, como SI, DI, o
BX. Las instrucciones en modo de direccionamiento indirecto por registro permiten solucionar el problema
de recorrer uno tras otro los datos contenidos en posiciones sucesivas de memoria, como es el caso de una
lista o vector.

OM
MODO DE DIRECCIONAMIENTO RELATIVO: La instrucción JNZ como cualquier otra de salto condicional
“short” (corto) está en modo de direccionamiento relativo. El término “relativo” implica que la dirección de
la instrucción a la que se salta (si se cumple la condición) se calcula sumando un número a la dirección de la
instrucción que sigue a la instrucción de salto. O sea que la dirección hacia donde hay que saltar está en

.C
relación con esta última dirección, la cual está apuntada por el IP, por ser la próxima instrucción a ejecutar
luego de la de salto. El número a sumar a la dirección de la instrucción que sigue a la instrucción de salto,
forma parte de un byte de esta última. En un salto hacia atrás, como en el loop dicho número es negativo,
DD
siendo positivo si el salto es hacia adelante.

MODO RELATIVO DE REGISTRO: El dato está referenciado por el contenido de un registro al que se le
suma una constante (desplazamiento u offset).
LA

MODO BASE MÁS ÍNDICE: El dato está referenciado por el contenido de un registro Base al que se le suma
el contenido de otro registro Índice (desplazamiento u off-set).
FI

MODO RELATIVO A BASE MÁS ÍNDICE: El dato está referenciado por el contenido de un registro Base al
que se le suma el contenido de otro registro Índice más un desplazamiento u off-set.


18
Este archivo fue descargado de https://filadd.com

También podría gustarte