Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso:
LABORATORIO DE ARQUITECTURA DE
COMPUTADORAS
TURNO:
GRUPO A
MARTES 7:00-9:00 HORAS
INDICE
ndice.....................................................................................................................2
1.
2.
3.
Funcionamiento General...........................................................................5
4.
5.
6.
7.
Registros....................................................................................................11
8.
Modos de Direccionamiento......................................................................13
9.
Set de Direcciones.....................................................................................14
9.1 Instrucciones de Transferencia de Datos............................................14
9.2 Instrucciones Aritmticas.....................................................................16
10.
11.
Debuger y Simuladores.............................................................................23
11.1 Degub.................................................................................................23
11.2 Simuladores.......................................................................................25
12.
BIBLIOGRAFIA..........................................................................................26
3
1. SISTEMAS QUE COMPONEN LA COMPUTADORA AT
La microarquitectura NetBurst le permite al Pentium 4 funcionar a
velocidades extremadamente altas, aportando grandes prestaciones a
usuarios de ordenadores, adems esta tecnologa dar potencia a los ms
avanzados procesadores de 32 bits de Intel en los prximos aos.
El Pentium 4 es el primero en incorporar un diseo totalmente nuevo,
desde que Intel introdujera el Pentium Pro, con su microarquitectura P6. El
Pentium 4 se conecta a placa a travs de Socket 423, con lo que abandona la
conexin Slot de anteriores procesadores.
La memoria RAM utilizada es ahora de tipo RIMM que trabaja a elevada
velocidad llegando a los 400 MHz en el bus del sistema, sin embargo tiene
como inconveniente el alto coste. La memoria cach tiene 20 KB de primer
nivel donde 12 KB son para instrucciones y 8 KB para datos, en el Pentium III
la cach L1 era de 32 KB, por lo que en el Pentium 4 se ve reducida. La cach
de segundo nivel tambin se reduce pasando de 512 KB a 256 KB. La
tecnologa de fabricacin utilizada es de 0,18 y 0,13 m. El ncleo del
procesador integra 42 millones de transistores.
El rango de frecuencias en el que est disponible este procesador va
desde 1,7 GHz hasta 2,8 GHz, siendo las velocidades en que puede trabajar el
bus del sistema de 400 533 MHz dependiendo de la velocidad del
procesador.
4
El procesador Intel Pentium 4 con microarquitectura Intel NetBurst
presenta la microarquitectura de 32 bits ms avanzada e innovadora de Intel.
Este procesador, diseado para ofrecer un rendimiento superior, resulta
perfecto para las aplicaciones y los entornos ms exigentes. La marca Pentium
4 es indicativa de un rendimiento sin precedentes que combina caractersticas
innovadoras con la demostrada calidad de Intel. Con el procesador de
sobremesa ms potente de Intel tendr rendimiento cuando ms lo necesite:
Rendimiento para las aplicaciones de gama alta actuales y para las
exigentes innovaciones futuras de Internet
Potencia para tecnologas vanguardistas de Internet como vdeo fluido y
sonido MP3*. Prestaciones para crear, editar y compartir con rapidez
vdeos y fotografas de calidad profesional
La plataforma de juego ms novedosa para unos juegos 3D
absorbentes. El procesador Intel Pentium 4 ofrece potencia
especfica y est diseado para avanzar por donde lo haga Internet.
El procesador Pentium 4 con microarquitectura Intel NetBurst ofrece
nuevas prestaciones para mejorar el rendimiento, como:
Tecnologa hipercanalizada Un canal ms profundo que hace posible
que las instrucciones del procesador se pongan en cola y se ejecuten
con la mayor rapidez posible, de forma que el procesador Pentium 4
puede alcanzar las velocidades de reloj ms altas del mundo en
ordenadores de sobremesa.
Extensiones Streaming SIMD 2 Las extensiones de instruccin nica y
datos mltiples (SIMD) 2, que constan de 144 nuevas instrucciones,
incluyen coma flotante de doble precisin en SIMD, entero de 128 bits
en SIMD y nuevas instrucciones de gestin de memoria y de cach. Las
extensiones Streaming SIMD 2 mejoran el rendimiento para acelerar los
aspectos ms exigentes de la informtica de Internet, adems de vdeo,
voz, codificacin, tratamiento de imgenes y aplicaciones para
estaciones de trabajo sin subprocesos.
Bus del sistema de 400 MHz Con el triple de ancho de banda que los
procesadores anteriores, el bus de sistema de 400 MHz acelera la
transferencia de informacin del procesador al resto del sistema y
mejora la velocidad y el rendimiento. Esta innovadora tecnologa ampla
el potencial para conseguir velocidades de proceso al resto del sistema.
Ejecucin dinmica avanzada Esta caracterstica ampla las funciones
de ejecucin dinmica que se encuentran en la microarquitectura P6 de
generacin anterior. La prediccin de bifurcacin mejorada acelera el
flujo de trabajo al procesador y ayuda a compensar la canalizacin ms
profunda. La ejecucin especulativa muy profunda y no secuencial
realiza ms de 100 instrucciones de forma especulativa, lo que
garantiza que las unidades de ejecucin superescalar del ordenador
siguen ocupadas para un mejor rendimiento global.
5
Coma flotante y unidad multimedia mejoradas Un puerto de coma
flotante de 128 bits y un segundo puerto para movimiento de datos
hacen posible unas imgenes 3D y unos grficos ms realistas.
Cach de seguimiento de ejecucin Cach L1 de instrucciones avanzada
que elimina la latencia de canal del descodificador y pone en cach las
instrucciones descodificadas, para mejorar as la eficacia y la velocidad
de ejecucin de las instrucciones en cach.
Sistema de ejecucin rpida Unidades lgicas aritmticas (ALU) de
enteros al doble de velocidad de reloj que la frecuencia bsica que
ofrecen cuatro ALU de ancho de banda informtica y menor ejecucin
de latencia, lo que aumenta el rendimiento para operaciones concretas
de enteros. El procesador Pentium 4 optimiza el margen de ampliacin
necesario para su empresa.
El procesador Intel Pentium 4 ofrece el rendimiento que las pequeas
empresas necesitan para ser competitivas. Sus empresas clientes, equipadas
con sistemas basados en el procesador Pentium 4, estarn mejor situadas
para optimizar la productividad y el rendimiento, de forma que podrn:
Aprovechar las tecnologas Internet optimizadas, como Java* y XML, el
nuevo lenguaje para los negocios.
Disponer de un entorno multitarea, tareas de fondo como comprobacin
de virus en tiempo real, codificacin, compresin y sincronizacin del
correo electrnico.
Reducir espectacularmente el tiempo para compilar y para modelado de
imgenes en aplicaciones multimedia, lo que aumenta la productividad.
Proporcionar estabilidad, vida til y margen de ampliacin para el
futuro.
3. FUNCIONAMIENTO EN GENERAL
A. CHIPSET
Conjunto de chips, o chipset, es un elemento formado por un determinado
nmero de circuitos integrados en el que se han incluido la mayora de los
componentes que dotan a un ordenador de compatibilidad PC/AT a nivel
hardware como, por ejemplo, el controlador de interrupciones, los
controladores DMA, el chip temporizador, controladoras de disco duro, etc.
Mediante este elemento se han integrado en unos pocos componentes los
que antes se encontraban un nmero de chips independientes
relativamente elevado.
Con el paso del tiempo, en el chipset se han ido incluyendo algunos
nuevos tipos de dispositivos que han surgido con el avance tecnolgico,
como es el caso de las controladores de bus USB, el bus AGP, el bus PCI,
funciones de administracin de energa, etc.
6
B. RANURA AMR
El audio/modem rise, tambin conocido como slot AMR2 o AMR3 es una
ranura de expansin en la placa madre para dispositivos de audio (como
tarjetas de sonido) o modems lanzada en 1998 y presente en placas de
Intel Pentium III, Intel Pentium IV y AMD Athlon.
Fue diseada por Intel como una interfaz con los diversos chipsets para
proporcionar funcionalidad analgica de Entrada/Salida permitiendo que
esos componentes fueran reutilizados en placas posterioreres sin tener
que pasar por un nuevo proceso de certificacin de la FCC (con los costes
en tiempo y econmicos que conlleva). Cuenta con 2x23 pines divididos
en dos bloques, uno de 11 (el ms cercano al borde de la placa madre) y
otro de 12, con lo que es fsicamente imposible una insercin errnea, y
suele aparecer en lugar de un slot PCI, aunque a diferencia de este no es
plug and play y no admite tarjetas aceleradas por hardware (slo por
software)
C. RANURA DE EXPANSION
PCI: el estndar actual. Pueden dar hasta 132 MB/s a 33 MHz, lo que es
suficiente para casi todo, excepto quiz para algunas tarjetas de vdeo 3D.
Miden unos 8,5 cm y generalmente son blancos.
AGP: se dedica exclusivamente a conectar tarjetas de vdeo 3D, por lo que
slo suele haber una; adems, su propia estructura impide que se utilice
para todos los propsitos, por lo que se utiliza como una ayuda para el
PCI. Segn el modo de funcionamiento puede ofrecer 264 MB/s o incluso
528 MB/s. Mide unos 8 cm y se encuentra bastante separada del borde de
la placa. ISA: son las ms veteranas, un legado de los primeros tiempos
del PC. Funcionan a unos 8 MHz y ofrecen un mximo de 16 MB/s,
suficiente para conectar un mdem o una tarjeta de sonido, pero muy
poco para una tarjeta de vdeo. Miden unos 14 cm y su color suele ser
negro; existe una versin an ms antigua que mide slo 8,5 cm.
CNR: es una ranura de expansin en la placa madre para dispositivos de
comunicaciones como modems, tarjetas Lan o USB. Fue introducido en
febrero de 2000 por Intel en sus placas para procesadores Pentium y se
trataba de un diseo propietario por lo que no se extendi ms all de las
placas que incluan los chipsets de Intel. Adoleca de los mismos
problemas de recursos de los dispositivos diseados para ranura AMR.
Actualmente no se incluye en las placas.
D. ZOCALO PARA MICROPROCESADOR
Es el lugar donde se inserta el "cerebro" del ordenador. Durante
ms de 10 aos consisti en un rectngulo o cuadrado donde el
"micro", una pastilla de plstico negro con patitas, se introduca con
mayor o menor facilidad; la aparicin de los Pentium II cambi un poco
este panorama, introduciendo los conectores en forma de ranura (slot).
E. CONECTORES PARA DISCO
Es donde se conectan los cables para que la placa base reciba la
7
alimentacin proporcionada por la fuente.
F. RANURAS PARA RAM
Las ranuras de memoria que tenga la placa base dependern del tipo de
memoria que utilice, que vendr marcado por la arquitectura SIMM (Single
In-line Memory Module),un tipo de encapsulado consistente en una
pequea placa de circuito impreso que almacena chips de memoria DIMM
Se trata de un pequeo circuito impreso que contiene chips de memoria y
se conecta directamente en ranuras de la placa base.
RIMM utilizan una tecnologa denominada RDRAM desarrollada por
Rambus Inc. a mediados de los aos 90 con el fin de introducir un mdulo
de memoria con niveles de rendimiento muy superiores a los mdulos de
memoria SDRAM de 100 Mhz y 133 Mhz
G. PUERTOS DE E/S
Seriales: Ratn, Scanner, etc
Paralelos: Impresoras
USB: Desde hace tres aos, los PC, traen un puerto llamado USB
(Universal Serial Bus) que facilita la conexin de perifricos. Un
perifrico
es
cualquier
dispositivo
externo
que
conecte
al
computador, como el monitor, el teclado, el ratn, una impresora, un
escner, etc. Los puertos USB, que paulatinamente desplazarn a los
puertos serial y paralelo, tienen dos ventajas: velocidad y facilidad de uso
(todos estos son puertos externos; estn en la parte trasera del PC)
H. CONECTOR SATA(ATA)
I. Los discos SATA ofrecen una transferencia de datos ms rpida e
instalacin mucho ms fcil. Parecen ser la eleccin obvia, pero no es
necesariamente as.
J. BIOS
K. La BIOS realmente no es sino un programa que se encarga de dar
soporte para manejar ciertos dispositivos denominados de entradasalida (Input-Output). Fsicamente se localiza en un chip que suele
tener forma
rectangular, como el de la imagen. Adems, la BIOS
conserva ciertos parmetros como el tipo de disco duro, la fecha y hora
del sistema, etc., los cuales guarda en una memoria del tipo CMOS, de
muy bajo consumo y que es mantenida con una pila cuando el ordenador
est desconectado. Las BIOS pueden actualizarse bien mediante la
extraccin y sustitucin del chip (mtodo muy delicado) o bien mediante
software, aunque slo en el caso de las llamadas Flash-BIOS.
TECNOLOGA HIPERSEGMENTADA.
Dentro de un microprocesador, los datos pasan por "pipelines"
(canales de datos), de un nmero determinado de etapas. En un Pentium
con arquitectura P6 (Pentium Pro, Pentium II, Pentium III y Celeron), el
pipeline tiene 10 etapas; en el Pentium 4 hay 20 etapas. Cuantas ms etapas,
ms se tarda en "liberar" los datos, por lo que un nmero excesivo de etapas
puede llegar a bajar el rendimiento del ordenador. Sin embargo, esto tiene
una ventaja, al Pentium 4 le permite alcanzar mayores velocidades de
reloj (ms MHz), que es lo que busca Intel.
BUS DE SISTEMA DE 400 MHZ.
Es una de las mejores caractersticas de esta arquitectura. En
realidad el bus del sistema no funciona a 400 MHz "fsicos" (reales), sino a
100 MHz cudruplemente aprovechados con una especie de "doble DDR", como
se realiza con la tecnologa AGP 4X; por ello, el multiplicador a seleccionar en
la placa para el modelo de 1,4 GHz es 14x y no 3,5x. Estos 400 MHz
mejorarn el rendimiento de aplicaciones profesionales y multimedia (como
renderizado y edicin de vdeo), y de muchos juegos 3D.
RAPID EXECUTION ENGINE.
10
Otra de las novedades de esta arquitectura del Pentium 4 es la
capacidad de dos unidades aritmtico-lgicas de nmeros enteros (ALUs) que
consiguen tiempos de espera iguales a un semiciclo de reloj en la ejecucin de
algunas instrucciones con lo que el procesador estara funcionando al doble de
velocidad. Aunque esta capacidad parece muy atractiva para aplicaciones
no matemticas, no consigue plenamente sus objetivos debido a problemas
con el exceso de etapas.
CACH Y OTRAS CARACTERSTICAS.
La cach L2 est integrada en el micro y tiene un bus de datos de 256
bits, esto forma parte de la mejora de la tecnologa "Advanced Transfer
Cach" estrenada con el Pentium III pudindose alcanzar 48 GB/s de tasa de
transferencia en el modelo de 1,5 GHz. Esto representa el doble de lo que
puede hacer un Pentium III a la misma velocidad, y es mucho ms de lo que
puede alcanzar un AMD Athlon, sobre todo porque en ste la cach L2 tiene un
bus de slo 64 bits.
En cuanto a Execution Trace Cach y Advanced Dynamic Execution, son
tcnicas que mejoran la ejecucin especulativa, se puede romper el orden de
las instrucciones para acelerar su procesamiento y refuerzan la prediccin de
saltos y ramificaciones (branch prediction).
DESCRIPCIN DE LA ARQUITECTURA.
11
Sobre los componentes del Pentium 4 destaca el BTB (Branch Target
Bufer) que es la parte encargada de guardar las direcciones de los saltos
y
de predecirlos. Tras
pasar
ste
mdulo
la instruccin
va
al
Decodificador
que
la
convierte
de formato
x86
en
varias
microinstrucciones. Ms tarde se pasa la instruccin a la zona de
Renombramiento/Reposicionamiento
que
sirve
para ejecutar varias
instrucciones simultneamente, siendo necesario que sean minimamente
independientes.
5. ESQUEMTICO DEL SISTEMA COMPLETO DE APLICACIN
12
13
7.3.
Registros de puntero
Son 5 registros destinados a contener direcciones; estas direcciones son
desplazamientos dentro de los segmentos indicados por los registros de
segmento:
El primero, denominado indistintamente puntero de instruccin IP
("Instruccin pointer") y contador de programa PC ("Program counter"), indica
el desplazamiento (dentro del segmento de cdigo CS) de la prxima
instruccin a ejecutar.
El puntero de pila SP ("Stack Pointer"), seala el desplazamiento del final
de la pila dentro del segmento de pila SS. En caso necesario la pila puede
crecer a partir de este punto, de forma que por ejemplo, una nueva invocacin
de funcin crear un nuevo registro de activacin que comenzar en este
punto.
El puntero base BP ("Base pointer") seala el desplazamiento (dentro del
segmento de pila SS) donde se encuentra el origen de la zona ocupada por las
variables dinmicas.
Existen dos registros denominados "de ndice", en razn de su utilizacin
muy particular; el ndice fuente SI ("Source index") y el ndice destino DI
("Destination index"). Generalmente estos dos registros se utilizan con alguno
de los registros de uso general y con ciertas instrucciones especficamente
pensadas para transferir datos (dentro de un rango de posiciones de memoria),
desde un punto inicial de un segmento de datos, a otro.
7.4.
Registro de estado
Existe un registro especial, el registro de estado (FLAGS), en el que 9 de
los 16 bits actan como semforos (indicadores del estado del procesador y del
resultado de determinadas operaciones).
Los nombres y situacin de cada uno, dentro de la palabra de 16 bits, se
muestran en la figura.
14
a) CF Acarreo ("Carry Flag").- Indica dor de arrastre del bit de mayor orden,
que puede ocurrir en las operaciones aritmticas suma y resta.
b) PF Pariedad ("Parity Flag").- Si est activo Indica un nmero par de bits
activos (bits cuyo contenido es 1). Esta informacin es til cuando el
procesador controla transmisiones de datos.
c) AF Acarreo auxiliar.- Indicador de ajuste en operaciones aritmticas con
cantidades BCD.
d) ZF Cero ("Zero Flag").- Est activo si el resultado de operacin es cero o
resultado de comparacin igual.
e) SF Signo ("Sign Flag").- Si est activo indica que el resultado de
operacin o de comparacin son negativos.
f) TF Detencin ("Trap Flag").- Si est activo, el procesador genera
automticamente una interrupcin despus de la ejecucin de cada
instruccin, lo que permite controlar paso a paso la ejecucin del
programa. Este bit debe estar normalmente inactivo (a 0).
g) IF Interrupcin ("Interrupt Flag").- Este bit controla el estado del sistema
de interrupciones enmascarables. Cuando est activo (1) permite las
interrupciones; el estado inactivo (0) las deshabilita.
h) DF Direccin ("Direction Flag").- Indica la direccin de las operaciones.
i) OF Desbordamiento (Overflow Flag").- Seala desbordamiento
aritmtico.
8. MODOS DE DIRECCIONAMIENTO
Las operaciones deben de obtener sus operados, ya sea de los registros o de la
memoria. Para acceder a estos operando se precisa especificar un modo de
obtenerlos.
15
instruccin. til para acceder a un array de elementos DE = ((ci))
Modo Autoincremento
El registro involucrado en el clculo de la direccin efectiva se incrementa
despus de ser utilizado. El tamao del incremento (1, 2, 4, etc.) est
relacionado con el tamao del operando (8, 16, 32 bits, etc) DE = ((ci)); (Ri)
+ {1, 2, 4} ! Ri, donde Ri es el registro codificado en el campo ci.
Modo Autodecremento
El registro involucrado en el clculo de la direccin efectiva se decremento
antes de ser utilizado. El tamao del decremento (1, 2, 4, etc) est
relacionado con el tamao del operando (8, 16, 32 bits, etc) DE = ((ci))
{1, 2, 4}; (Ri) {1, 2, 4} ! Ri, donde Ri es el registro codificado en el
campo ci.
Modo Absoluto
La direccin activa se encuentra en el campo de la propia instruccin. til
para acceder a constantes de un programa. DE = (ci)
Modo Base + Desplazamiento
La direccin se obtiene sumando el contenido de un registro y un valor
codificado en la instruccin. Util para acceder a un campo de un record de
datos. DE = (ci1) + ((ci2))
Modo Base + Indice
La direccin se obtiene sumando el contenido de dos registros. til para
acceder a los elementos de un array secuencialmente, pues se conserva la
direccin de inicio de los datos y el ndice. DE = ((ci1)) + ((ci2))
Modo ndice Escalado + Desplazamiento
La direccin se obtiene sumando el registro ndice escalado al valor
codificado en la instruccin. til para acceder a arrays que estn en
posiciones fijas y que contienen elementos de tamaos 1, 2, 4 u 8 bytes.
DE = (ci1) + ((ci2)) - (ci3); tal que (ci3) 2 {1, 2, 4, 8}
Modo Base + ndice Escalado + Desplazamiento
Combinacin
de
los
modos
base
ndice
ndice
escalado
16
desplazamiento. La direccin se obtiene sumando el desplazamiento, el
registro base y el registro ndice multiplicado por el factor de escala
pertinente. DE = (ci1) + ((ci2)) + ((ci3)) - (ci4); tal que (ci4) 2 {1, 2, 4, 8}
9. SET DE INSTRUCCIONES
9.1.
Instrucciones de transferencia de datos
En esta categora se incluyen las instrucciones que permiten la transferencia
de datos entre registros y memoria tales como MOV, PUSH, POP y XCHG.
La instruccin MOV recibe dos operandos y transfiere el dato indicado
por el primer operando al lugar indicado por el segundo. Dada la restriccin
que impone el procesador de que en una instruccin con dos operandos no
pueden estar ambos en memoria, si se quiere transferir datos de un lugar de
memoria a otro, se deben utilizar dos instrucciones y utilizar un registro de
propsito general.
Las instrucciones PUSH y POP tambin transfieren datos, aunque en
este caso, uno de los operandos es implcito y se refiere a la cima de la pila.
La instruccin PUSH necesita como operando el dato a colocar en la cima de
la pila mientras que la instruccin POP requiere un nico operando para
indicar el lugar en el que depositar el dato contenido en la cima de la pila.
La instruccin XCHG (del ingls exchange) consta de dos operandos e
intercambia sus valores por lo que modifica los operandos (a no ser que
tengan idntico valor). No se permite que los operandos estn ambos en
memoria.
Tabla: Instrucciones de transferencia de datos
Instruccin
Comentario
MOV
contador1,
MOV
contador1
Comentario
17
PUSH $4
POP $4
XCHG
%ebx
XCHG
%eax,
Instruccin correcta.
contador1
18
SUB
%eax,
contador
NEGL
contador
Comentario
MULB $3
IMUL %eax
MUL
contador,
IMUL
$123,
contador,
19
manera anloga a las instrucciones de multiplicacin, existen dos versiones
IDIV y DIV para divisin de enteros y naturales respectivamente y el
tamao del dividendo es el doble del divisor. De esta forma, se permite dividir
un nmero de 16 bits entre uno de 8, uno de 32 entre uno de 16 y uno de 64
entre uno de 32. Su formato admite de forma explcita un nico operando que
es el divisor, y que puede ser un nmero de 8, 16 o 32 bits. El dividendo es
implcito y est almacenado en %ax si el divisor es de 8 bits, en el registro de
32 bits resultante de concatenar %dx:%ax si el divisor es de 16 bits, y en el
registro de 64 bits resultante de concatenar %edx:%eax si el divisor es de 32
bits.
Los dos resultados que se devuelven tambin tienen un destino implcito
y depende del tamao de los operandos. Si el divisor es de 8 bits el cociente
se almacena en %al y el resto en %ah. Si el divisor es de 16 bits, se utilizan
%ax y %dx para cociente y resto respectivamente. En el caso de un divisor de
32 bits, el cociente se devuelve en %eax y el resto en %edx.
Tabla: Instrucciones de divisin
Instrucci Comentario
n
Divide el registro %ax por la constante $-53. El cociente se deposita
IDIVB $-53 en %al y el resto en %ah.
Se divide el nmero de 64 bits obtenido al concatenar los registro
IDIV %eax %edx:%eax entre el propio registro %eax. En %eax se deposita e
cociente, y en %edx el resto.
DIVW
contador
20
operandos y en el que cada bit es el resultado de la conjuncin de los bits
de idntica posicin de los operandos. Las instrucciones de disyuncin
(OR) y disyuncin exclusiva (XOR) se comportan de forma anloga.
La instruccin NOT tiene un nico operando que es fuente y destino y
cambia el valor de cada uno de sus bits.
La tabla 9.5 muestra ejemplos de utilizacin de este tipo de
instrucciones. Se asume que el smbolo contador se refiere a un operando
almacenado en memoria.
Tabla: Instrucciones lgicas
Instruccin Comentario
AND
1,
$-
ORL
$1,
contador
NOTL
contador
21
ltimo bit que se ha descartado se almacena en el bit de acarreo CF.
Tabla 9.7. Instrucciones de desplazamiento aritmtico
Instruccin Comentario
SAR
%eax
Desplaza el byte almacenado en la posicin de memoria denotada
por contador tantas posiciones a la izquierda como indica el
registro %cl. El sufijo de tamao es necesario porque a pesar de
SALB
que el primer operando es un registro, ste contiene slo el
nmero
%cl,
de posiciones desplazar. El tamao de los datos se deduce, por
contador tanto del segundo operando.
9.2.5.2. Instrucciones de rotacin
Las instrucciones de rotacin permiten manipular un operando como si
sus bits formasen un crculo y se rotan en ambos sentidos un nmero
determinado de posiciones.
Las instrucciones ROL y ROR rotan a izquierda y derecha
respectivamente el contenido de su segundo operando tantas posiciones como
indica el primer operando. El ltimo bit que ha traspasado los lmites del
operando se almacena en el bit de acarreo CF.
Las instrucciones RCL y RCR son similares a las anteriores con la
excepcin que el bit de acarreo CF se considera como parte del operando. El bit
que sale del lmite del operando se carga en CF y ste a su vez pasa a formar
parte del operando.
Al igual que las instrucciones de desplazamiento aritmtico, el
primer operando puede ser o una constante o el registro %cl. El tamao del
dato a manipular se deduce del segundo operando, y si este est en memoria,
a travs del sufijo de tamao de la instruccin.
Tabla 9.9. Instrucciones de rotacin
Instruccin Comentario
RCR
$4,
RCLL
%cl,
contador
22
Instrucci
n
ROR
Comentario
Rota a la derecha el registro %eax tantas posiciones como indica
el registro %cl. El bit
%cl,%eax
ROLL
%cl,
contador
23
24
embargo la mayora de los programas tiene un segmento de datos, un
segmento de cdigo y un segmento de stack, los cuales pueden ser puestos
en cualquier lugar.
Para la definicin de datos y declaracin de instrucciones y operandos el
MASM reconoce el conjunto de caracteres formado por letras maysculas,
letras minsculas
(excluyendo caracteres acentuados, , ), nmeros, y los smbolos: ? @ _ $ : .
[>(){}+-/
*&%!~\=#;,"`
La declaracin de nmeros requiere tener presente ciertas consideraciones.
En el
MASM un entero se refiere a un nmero entero: combinacin de dgitos
hexadecimales, octales, decimales o binarios, ms una raz opcional. La raz se
especifica con B, Q u O, D, o
H. El ensamblador usar siempre la raz decimal por defecto, si se omite la
especificacin de la raz (la cual se puede cambiar con la directiva .RADIX). As
nosotros podemos especificar un entero de la siguiente manera: digitos,
digitosB, digitosQ o digitosO, digitosD, digitosH. Si una D o B aparecen al final
de un nmero, stas siempre se considerarn un especificador de raz, e.g.
11B ser tratado como 112 (210), mientras que si se trata del nmero 11B16
debe introducirse como 11Bh.
DIRECTIVAS.
El MASM posee un conjunto de instrucciones que no pertenecen al lenguaje
ensamblador propiamente sino que son instrucciones que nicamente son
reconocidas por el ensambldor y que han sido agregadas para facilitar la tarea
de ensablamblado, tanto para el programador como para el programa que lo
lleva a cabo. Dichas instrucciones son denominadas directivas. En general, las
directivas son usadas para especificar la organizacin de memoria, realizar
ensamblado condicional, definir macros, entrada, salida, control de archivos,
listados, cross-reference, direcciones e informacin acerca de la estructura de
un programa y las declaraciones de datos.
10.2.
MACROINSTRUCCION
La definicin de una macro es un metodo que permita asignar un nombre a
una porcin de texto. Despus de haber definido una macro, el programador
puede escribir el nombre de la macro en vez del trozo del programa. Una
macro es realmente una abreviatura de un trozo de texto.
Cuando un ensamblador encuentra una definicin de macro, la aisla en una
tabla de definiciones de macros para su uso posterior. Las macros no son ms
que un mtodo que permite manipular cadenas de caracteres sin preocuparse
de su significado.
10.3.
MACROENSAMBLADORES
25
Los traductores de los lenguajes de nivel autocodificador reciben el nombre de
macroensambladores. La nica diferencia con los ensambladores es la
traduccin de las macroinstrucciones. En lo dems constitucin y tcnica de
trabajo son completamente anlogos a los ya estudiados.
Como se puede recordar, una macroinstruccin puede ser de la biblioteca del
sistema o generada por el programador. En ambos casos, la definicin de la
macroinstruccin consta de una pseudo-instruccin de cabecera o de nombre
de la macro y de un conjunto de instrucciones en lenguaje ensamblador o
cuerpo de la macro. La operacin de sustituir la macroinstruccin por el
conjunto correspondiente de instrucciones recibe el nombre de expansin de
la macroinstruccin.
Cuando un macroensamblador encuentra un nombre de macro, introduce
(durante el paso primero, gracias a una bifurcacin) el nombre y el cuerpo en
una tabla llamada tabla dedefinicin de macros. Durante el segundo paso
cuando separa el campo de operacin, busca primero el smbolo en la tabla de
definicin de macros. Si no lo encuentra, procede como en un ensamblador;
pero si lo encuentra, el macroensamblador bifurca a la tabla y procesa la
expansin de la macro, sustituyendo los parmetros formales que tena la
tabla por los parmetros de la instruccin.
Las tablas de definicin de macros son distintas a las ya estudiadas, puesto
que su formato es variable, al ser la longitud del cuerpo de una
macroinstruccin ms o menos larga.
Hay varias tcnicas para este tipo de tablas. Por ejemplo:
1. Separacin del cuerpo del nombre, cuando la tabla de definicin es de
formato fijo,
2. Inclusin de la direccin en que se encuentra el cuerpo en formato variable,
y
3. Presentacin de toda ella en formato variable, pero llevando en cabecera
detrs del nombre una indicacin de encadenamiento con la macro siguiente,
a fin de facilitar la exploracin de la tabla.
Cuando una macro contiene llamadas a otras macros -lo que se llama una
estructura en nido- el macroensamblador aade un nuevo campo, el de
nmeros de nivel, correspondiendo el nivel 0 al modo normal e
incrementndose en 1 por cada llamada encadenada, que sirve para que al
reconocer una macro vaya actualizando los parmetros formales por los reales
del nivel anterior, y lo hace de la siguiente forma:
Al detectar en el campo de operacin el smbolo de una macro, comprueba el
nmero de nivel, pueden darse dos casos:
- Que el nivel sea 0; entonces efecta la expansin como en el caso
general y pone en el campo de nivel un 1.
- Que el nivel sea distinto de 0; entonces almacena el conjunto de
parmetros reales y la posicin en la tabla de definicin de macro,
incrementa el nmero de nivel y copia los parmetros en una lista
26
auxiliar.
Cuando detecta la instruccin de fin de macroinstruccin; si el nivel alcanzado
ha sido 1, el proceso es el general; pero si es distinto de 1, los parmetros
para la llamada de la macro son recuperados de la tabla, se le resta uno al
nmero de nivel y se contina con la expansin.
11.
DEBUGER, Y SIMULADORES
DEGUB
11.1.
Cdigo Mquina, Debuger
Debug
C:\> Debug [Enter]
En la siguiente linea aparecera un guin, ste es el indicador del Debug, en
este momento se pueden introducir las instrucciones del Debug. Utilizando el
comando:
- r [Enter] se desplegaran todos los contenidos de los registros internos
de la UCP; una forma alternativa de mostrarlos es usar el comando "r"
utilizando como parametro el nombre del registro cuyo valor se quiera
visualizar. Por ejemplo:
- rbx
Esta instruccin desplegar unicamente el contenido del registro BX y cambia
el indicador del Debug de " - " a " : "
Estando as el prompt es posible cambiar el valor del registro que se visualiz
tecleando el nuevo valor y a continuacin [Enter], o se puede dejar el valor
anterior presionando [Enter] sin telclear ningn valor.
Es posible cambiar el valor del registro de banderas, as como utilizarlo como
estructura de control en nuestros programas como se ver mas adelante.
Cada bit del registro tiene un nombre y significado especial, la lista dada
a continuacin describe el valor de cada bit, tanto apagado como prendido y
su relacin con las operaciones del procesador:
Desbordamiento
NV = no hay desbordamiento.
OV = s hay desbordamiento.
Direccin
UP = hacia adelante.
DN = hacia atrs.
Interrupciones
DI = interrupciones desactivadas.
EI = interrupciones activadas.
Signo
PL = signo positivo.
NG = signo negativo.
27
Cero
NZ = no es cero.
ZR = si es cero.
Acarreo Auxiliar
NA = no hay acarreo auxiliar.
AC = hay acarreo auxiliar
Paridad
PO = paridad impar.
PE = paridad par;
Acarreo
NC = no hay acarreo.
CY = s hay acarreo.
11.2.
SIMULADORES