lunes, 10 de octubre de 2016

Mnemonicos del lenguaje ensamblador

Mnemónicos
Un código mnemotécnico (o código nemotécnico), es un sistema sencillo utilizado para recordar una secuencia de datos, nombres, números, y en general para recordar listas de items que no pueden recordarse fácilmente
El concepto de mnemotécnico fue utilizado en ensamblador para la definición de unas palabras que sustituye a un código de operación (lenguaje de máquina), las cuales fueron llamadas mnemónicos. Estas representan con unas cuantas letras una operación que es traducida durante el proceso de ensamblaje a código binario para que pueda ser interpretado por el procesador. La creación de estos códigos abreviados dio origen a lo que hoy conocemos como lenguaje ensamblador.
Dentro de los principales mnemónico tenemos:
MOV (transferencia)
Sintaxis: MOV dest, origen.
Transfiere datos de longitud byte o palabra del operando origen al operando destino. Pueden ser operando origen y operando destino cualquier registro o posición de memoria direccionada de las formas ya vistas, con la única condición de que origen y destino tengan la misma dimensión. Existen ciertas limitaciones, como que los registros de segmento no admiten el direccionamiento inmediato: es incorrecto MOV DS,4000h; pero no lo es por ejemplo MOV DS,AX o MOV DS,VARIABLE. No es posible, así mismo, utilizar CS como destino (es incorrecto hacer MOV CS,AX aunque pueda admitirlo algún ensamblador). Al hacer MOV hacia un registro de segmento, las interrupciones quedan inhibidas hasta después de ejecutarse la siguiente instrucción (8086/88 de 1983 y procesadores posteriores).

Ejemplos:
mov     ds,ax
mov     bx,es:[si]
mov     si,offset dato

En el último ejemplo, no se coloca en SI el valor de la variable dato sino su dirección de memoria o desplazamiento respecto al segmento de datos.
LEA (carga dirección efectiva)
Sintaxis: LEA destino, origen
Transfiere el desplazamiento del operando fuente al operando destino. Otras instrucciones pueden a continuación utilizar el registro como desplazamiento para acceder a los datos que constituyen el objetivo. El operando destino no puede ser un registro de segmento. En general, esta instrucción es equivalente a MOV destino,OFFSET fuente y de hecho los buenos ensambladores (TASM) la codifican como MOV para economizar un byte de memoria. Sin embargo, LEA es en algunos casos más potente que MOV al permitir indicar registros de índice y desplazamiento para calcular el offset:
lea     dx,datos[si]
En el ejemplo de arriba, el valor depositado en DX es el offset de la etiqueta datos más el registro SI. Esa sola instrucción es equivalente a estas dos:
mov     dx,offset datos
add     dx,si

POP (extraer de la pila)
Sintaxis: POP destino
Transfiere el elemento palabra que se encuentra en lo alto de la pila (apuntado por SP) al operando destino que a de ser tipo palabra, e incrementa en dos el registro SP. La instrucción POP CS, poco útil, no funciona correctamente en los 286 y superiores.

Ejemplos:      pop     ax
pop     pepe
PUSH (introduce en la pila)
Sintaxis: PUSH origen
Decrementa el puntero de pila (SP) en 2 y luego transfiere la palabra especificada en el operando origen a la cima de la pila. El registro CS aquí sí se puede especificar como origen, al contrario de lo que afirman algunas publicaciones.
Ejemplo:          push     cs
CALL (llamada a subrutina)

Sintaxis: CALL destino
Transfiere el control del programa a un procedimiento, salvando previamente en la pila la dirección de la instrucción siguiente, para poder volver a ella una vez ejecutado el procedimiento. El procedimiento puede estar en el mismo segmento (tipo NEAR) o en otro segmento (tipo FAR). A su vez la llamada puede ser directa a una etiqueta (especificando el tipo de llamada NEAR -por defecto- o FAR) o indirecta, indicando la dirección donde se encuentra el puntero. Según la llamada sea cercana o lejana, se almacena en la pila una dirección de retorno de 16 bits o dos palabras de 16 bits indicando en este último caso tanto el offset (IP) como el segmento (CS) a donde volver.

Ejemplos:           call     proc1
dir     dd       0f000e987h
call     dword ptr dir

En el segundo ejemplo, la variable dir almacena la dirección a donde saltar. De esta última manera -conociendo su dirección- puede llamarse también a un vector de interrupción, guardando previamente los flags en la pila (PUSHF), porque la rutina de interrupción retornará (con IRET en vez de con RETF) sacándolos
DIRECTIVAS DE DEFINICIÓN DE DATOS.
* DB (definir byte), DW (definir palabra), DD (definir doble palabra), DQ (definir cuádruple palabra), DT (definir 10 bytes):  sirven para declarar las variables, asignándolas un valor inicial:
               anno        DW     1991
               mes         DB     12
               numerazo    DD     12345678h
               texto       DB     "Hola",13,10
Se pueden definir números reales de simple precisión (4 bytes) con DD, de doble precisión (8 bytes) con DQ y «reales temporales» (10 bytes) con DT; todos ellos con el formato empleado por el coprocesador. Para que el ensamblador interprete el número como real ha de llevar el punto decimal:
               temperatura DD     29.72
               espanoles91 DQ     38.9E6
Con el operando DUP pueden definirse estructuras repetitivas. Por ejemplo, para asignar 100 bytes a cero y 25 palabras de contenido indefinido (no importa lo que el ensamblador asigne):
               ceros       DB     100 DUP (0)
               basura      DW     25 DUP (?)
Se admiten también los anidamientos. El siguiente ejemplo crea una tabla de bytes donde se repite 50 veces la secuencia 1,2,3,7,7:
               tabla       DB     50 DUP (1, 2, 3, 2 DUP (7))
5.3.2. – DIRECTIVAS DE DEFINICIÓN DE SÍMBOLOS.
* EQU (EQUivalence): Asigna el valor de una expresión a un nombre simbólico fijo:
               olimpiadas  EQU    1992
Donde olimpiadas ya no podrá cambiar de valor en todo el programa. Se trata de un operador muy flexible. Es válido hacer:
               edad        EQU    [BX+DI+8]
                           MOV    AX,edad
* = (signo ‘=’): asigna el valor de la expresión a un nombre simbólico variable: Análogo al anterior pero con posibilidad de cambiar en el futuro. Muy usada en macros (sobre todo con REPT).
                           num = 19
                           num = pepe + 1
                           dato = [BX+3]
                           dato = ES:[BP+1]


martes, 30 de agosto de 2016

IDE'S PARA PROGRAMAR EN LENGUAJE ENSAMBLADOR

1. WinAsm

WinAsm Studio es un entorno de desarrollo integrado (IDE) gratuito para desarrollar programas en Windows 32-bit y DOS 16-bit utilizando Microsoft Macro Assembler MASM y FASM utilizando el Add-In para FASM. Ha sido escrito por Antonis Kyprianou (akyprian). 
Más información aquí (Web oficial): http://www.winasm.net/

2. Easy Code

Entorno visual de desarrollo en lenguaje ensamblador.

Easy Code es el entorno visual de programación en ensamblador hecho para generar aplicaciones de 32 bits para Windows. La interfaz de Easy Code, muy parecida a la de Visual Basic, le permite programar una aplicación en ensamblador de manera rápida y fácil como nunca antes había sido posible.
Más información aquí (Web oficial): http://www.easycode.cat/Spanish/index.htm

3. RadASM

RadASM es un IDE gratuito para ensambladores de 32 bits para Windows.
Soporta MASM, TASM, FASM, NASM, GoASM y HLA
Más información aquí (Web oficial): http://www.radasm.com/

4. Fresh IDE
Es un IDE visual para el lenguaje ensamblador con un compilador integrado Flat assembler (FASM). Está escrito en Fresh IDE y es una aplicación independiente compilable. Es totalmente compatible con FASM y puede ser compilado también con todas las versiones de FASM. El objetivo principal de Fresh IDE es hacer la programación en ensamblador tan rápido y eficiente como en los lenguajes de alto nivel, sin sacrificar el tamaño de una pequeña aplicación que potencia el lenguaje ensamblador. Se trata de una aplicación Windows, pero se ejecuta en Wine muy bien y puede crear, compilar, depurar y ejecutar aplicaciones para Windows y Linux en Windows y Linux. Descarga aquí.

5. Assembler IDE

Se trata de un entorno de desarrollo para código ensamblador, cuyo propósito es automatizar al máximo este proceso integrando el editor de código, el depurador (debugger) y el desensamblador.

Entre las posibilidades que nos ofrece el entorno Assembler IDE, destacan la depuración de código (debugging), el editor de código, el desensamblador o la compilación con NASM, TASM/MASM y FASM.

Como puedes comprobar se trata de una herramienta de lo más completita.

Y no dejes que te intimide el hecho de que el programa Assembler IDE esté únicamente disponible con los textos que aparecen en pantalla en idioma inglés, ya que sus desarrolladores han diseñado una interfaz de usuario que resulta muy clara, sencilla e intuitiva, de tal manera que cualquiera que se ponga a los mandos de esta aplicación la encontrará de lo más accesible.

Y no queremos poner el punto y final a esta reseña sin mencionar el que, sin lugar a dudas, será uno de los aspectos más interesantes y atractivos del programa: su inmejorable precio. Y es que, como estamos ante una aplicación que se distribuye mediante licencia "freeware", podremos descargar Assembler IDE gratis. Descarga aquí.

Algunos IDE de paga:

1. Visual Studio Professional ($499.99 USD)

Visual Studio 2015 es un completo entorno de desarrollo integrado para crear aplicaciones espectaculares para Windows, Android e iOS, además de aplicaciones web y servicios de nube innovadores.
  • Herramientas y servicios para proyectos de cualquier tamaño o complejidad
  • C#, Visual Basic, F#, C++, Python, Node.js y HTML/JavaScript
  • Planificación de sprint
  • Depuración y creación de perfiles avanzadas, pruebas automatizadas y manuales
  • DevOps con implementaciones automatizadas y supervisión continua
2. Codelite ($39 USD)
wxcrafter logo

Existen muchos entornos de desarrollo dedicados a C/C++, pero este por un motivo u otro no es tan conocido como otras opciones libres como Codeblocks o Dev-C++. Hablamos de Codelite: Un IDE multiplataforma para C/C++.
El proyecto codelite ya lleva bastantes años desde que inicio su andadura y cada vez su comunidad es mayor y cuenta con más características. Está escrito en C++ (Como cabe esperar de un IDE para C++) y usa las bibliotecas wxWidgets para la interfaz. Lo que nos asegura un IDE multiplataforma y que se adapta visualmente a todos los sistemas operativos.

Intel 8086 y 8088

El Intel 8086 y el Intel 8088  son los primeros microprocesadores de 16 bitsdiseñados por Intel. Fueron el inicio y los primeros miembros de la arquitectura x86.
El 8086 y el 8088 ejecutan el mismo conjunto de instrucciones. Internamente son idénticos, excepto que el 8086 tiene una colade 6 bytes para instrucciones y el 8088 de sólo 4. Exteriormente se diferencian en que el 8086 tiene un bus de datos de 16 bits y el del 8088 es de sólo 8 bits, por ello, el 8086 era más rápido. Por otro lado, el 8088 podía usar menos circuitos lógicos de soporte, lo que permitía la fabricación de sistemas más económicos.
El 8088 fue el microprocesador usado para la primera computadora personal de IBM, la IBM PC, que salió al mercado en agosto de 1981


Registros

Los registros del i8086 e i8088 se basaron en el diseño del Intel 8080 y el Intel 8085, y de hecho son compatibles a nivel de lenguaje ensamblador con el i8080. El conjunto de registros también es similar al del i8080, pero ampliados a 16 bits. Tanto el i8086 como el i8088 tienen cuatro registros de propósito general de 16 bits, que también pueden ser accedidos como ocho registros de 8 bits, y tienen cuatro registros índice de 16 bits.Los registros del procesador, se usan para contener los datos con que se está trabajando puesto que el acceso a los registros es mucho más rápido que los accesos a memoria.

DESEMPEÑO

Aunque fue opacado en parte por otras opciones de diseño en este particular chip, el bus multiplexado limitaba el desempeño ligeramente; las transferencias de cantidades de 16 bits o de 8 bits fueron hechas en ciclos de acceso a memoria de cuatro ciclos del reloj, que comparado a los típicos CPU contemporáneos de 8 bits, era más rápido cantidades de 16 bits, aunque más lento en cantidades de 8 bits.
 La Unidad de Interface del Bus alimentó el flujo de instrucciones a la Unidad de Ejecución a través de una cola prefetch de 6 bytes para el 8086 y 4 bytes para el 8088 acelerando operaciones en los registros y con los operandos inmediatos, mientras que las operaciones de memoria desafortunadamente llegaron a ser más lentas; cuatro años más tarde, este problema de desempeño fue corregido con el 8018680188, y el 80286.
Sin embargo, el 8086 y el 8088 vinieron con una completa arquitectura de 16 bits, con una ALU de ancho completo, significando que las instrucciones aritméticas de 16 bits ahora podían ser realizadas en un simple ciclo del ALU, en vez de los dos ciclos usando acarreo usadas por el 8080 y el 8085, acelerando tales instrucciones considerablemente.



lunes, 29 de agosto de 2016

SASM (SimpleASM) IDE*



Sencilla IDE multiplataforma de código abierto para NASM, MASM, GAS, lenguajes ensambladores FASM.
En SASM se puede desarrollar fácilmente y ejecutar programas escritos en NASM, MASM, gas o lenguajes ensambladores FASM.
Ingresa código y sólo tiene que ejecutar su programa. En Windows SASM puede ejecutar programas en ventana separada. Introduzca sus datos de entrada en el campo de acoplamiento "de entrada". En el campo "Salida" se puede ver el resultado de la ejecución del programa. En el que todos los mensajes y errores de compilación se muestran en el formulario de la parte inferior. Puede guardar fuente o ya compilado (exe) código de su programa en un archivo y cargar sus programas de archivo.
SASM apoya el trabajo con muchos proyectos abiertos - nuevos archivos se abren y se crean en nuevas pestañas. A la salida de SASM conjunto actual de archivos abiertos guardados. En el siguiente arranque se puede restaurar la sesión anterior. En la configuración se puede establecer la fuente, los colores y el texto inicial. SASM se traduce en Ruso e Inglés. Todas las ventanas de diálogo en SASM se está acoplando - se puede elegir uno de los muchos puestos de ellas de posición. También es posible reasignar las teclas de acceso rápido.
SASM soporta trabajar con 4 lenguajes ensambladores - NASM, MASM, GAS y FASM en 2 modos - x64 y x86.
Usted puede elegir el modo de configuración de la pestaña "Build". También allí se puede cambiar las opciones de ensamblador y enlazador y elegir programas para el montaje y la vinculación.


SASM

miércoles, 24 de agosto de 2016

LENGUAJE MAQUINA

El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de unautómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa consiste en una cadena de estas instrucciones más un conjunto de datos sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas.

COMPILADOR



Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje diferente. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.La construcción de un compilador involucra la división del proceso en una serie de fases que variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el análisis del programa fuente y la síntesis del programa objeto.

CODIGO FUENTE

El código fuente de un programa informático (o software) es un conjunto de líneas de texto con los pasos que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el código fuente de un programa está escrito por completo su funcionamiento.
El código fuente de un programa está escrito por un programador en algún lenguaje de programación, pero en este primer estado no es directamente ejecutable por la computadora, sino que debe ser traducido a otro lenguaje o código binario; así será más fácil para la máquina interpretarlo (lenguaje máquina o código objeto que sí pueda ser ejecutado por el hardwarede la computadora). Para esta traducción se usan los llamados compiladoresensambladoresintérpretes y otros sistemas de traducción.
El término código fuente también se usa para hacer referencia al código fuente de otros elementos del software, como por ejemplo el código fuente de una página web que está escrito en lenguaje de marcado HTML o en Javascript, u otros lenguajes de programación web, y que es posteriormente ejecutado por el navegador web para visualizar dicha página cuando es visitada.

Tipos de lenguajes

Lenguajes de bajo nivel
Código máquina
Ensamblador
Lenguajes de medio nivel
BCPL
C
Lenguajes de alto nivel
ADA
ALGOL
BASIC
Clipper
Cobol
C++
FORTH
Fortran
Haskell
Informix 4gl
Java
Lexico (con códigos en castellano o sinónimos en otros idiomas)
Lisp
Logo
Modula
PASCAL
Prolog
RPG
Visual Basic

Curso Ensamblador 001

Bajo Nivel:
Un lenguaje de programacion de características bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de las computadoras que lo soportan. El uso de la palabra bajo en su denominación no implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstraccion entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los sistemas operativos , de aplicaciones en tiempo real o controladores de dispositivos.

 Nivel Medio:
Se dice del lenguajes de programación como C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Estos lenguajes son clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.

Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).



 Nivel Alto:
Son tipos de lenguajes de programacion que permite al programador escribir programas que son mas om enos independientes de un tipo particular de computadora. Estos lenguajes son considerados de alto nivel, porque son mas parecidos al lenguaje natural humano y mas lejanos al lenguaje de las maquinas, la principal ventaja de los lenguajes de alto nivel sobre los de bajo nivel es que son mas faciles de leer, escribir y mantener por los humanos. Al final los programas escritos en alto nivel deben ser traducidos en un lenguaje maquina especifico empleando un compilador o un interprete. De esta manera pueden ser ejecutados por una maquina especifica






lunes, 22 de agosto de 2016

DEFINICION DE IDE (Entorno de desarrollo integrado)

Un entorno de desarrollo integrado entorno de desarrollo interactivo, en inglés Integrated Development Environment (IDE), es una aplicación informática que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software.
Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador. La mayoría de los IDE tienen auto-completado inteligente de código (IntelliSense). Algunos IDE contienen un compilador, un intérprete, o ambos, tales como NetBeans y Eclipse; otros no, tales como SharpDevelop y Lazarus.
El límite entre un IDE y otras partes del entorno de desarrollo de software más amplio no está bien definido. Muchas veces, a los efectos de simplificar la construcción de la interfaz gráfica de usuario (GUI, por sus siglas en inglés) se integran un sistema controlador de versión y varias herramientas. Muchos IDE modernos también cuentan con un navegador de clases, un buscador de objetos y un diagrama de jerarquía de clases, para su uso con el desarrollo de software orientado a objetos.

VERSIONES DE LENGUAJE ENSAMBLADOR

ENSAMBLADORES CRUZADOS: permiten el soporte de medios fisicos como pantallas, impresoras, teclado, etc. y la programacion que ofrecen maquinas potentes que luego seran ejecutados en sistemas especializados.

ENSAMBLADORES RESIDENTES: permanecen en la memoria de la computadora, y cargan para su ejecucion
 al programa objeto producido. es el indicado para el desarrollo de pequeños sistemas de control.

MACROENSAMBLADORES: permiten el uso de macroinstrucciones, son programas grandes que no permanecen en memoria una ves que se a genereado el codigo objeto, normalmete son programas complejos y residentes.

MICROENSAMBLADORES: Indica al interprete las instrucciones de como debe actuar la CPU.

ENSAMBLADORES DE UNA FASE: leen una linea de programa fuente y la traducen directamente para producir una instruccion en lenguaje maquina, estos ensambladores son sencillos, baratos y coupan poco espacio.

ENSAMBLADORES DE DOS FASES: se llaman asi por que realizan la traduccion en dos etapas, en la primera fase revisan el codigo fuente y lo construyen en una tabla de simbolos, en la segunda fase vuelven a leer el programa fuente y pueden tradirlo por completo. estos ensabladores son los mas utilizados en la actualidad.

DEFINICION DE LENGUAJE ENSAMBLADOR

El lenguaje ensamblador, o assembler (en inglés assembly language y la abreviación asm), es unlenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadoresmicroprocesadoresmicrocontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura de processador y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Cadaarquitectura de processador tiene su propio lenguage ensamblador que usualmente es definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (lasinstrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente sonportátiles.

lunes, 23 de mayo de 2016

Cableado estructurado

El cableado estructurado consiste en un cable trenzado cables de par trenzado protegidos (Shielded Twisted PairSTP) o no protegidos (Unshielded Twisted PairUTP) en el interior de un edificio con el propósito de implantar una red de área local (Local Area NetworkLAN).
Suele tratarse de cables de pares trenzados de cobre, y/o para redes de tipo IEEE 802.3; no obstante, también puede tratarse de fibras ópticas o cables coaxiales.

Topología

La norma EIA/TIA 568A hace las siguientes recomendaciones en cuanto a la topología del cableado horizontal:
  • El cableado horizontal debe seguir una topología estrella.
  • Cada toma/conector de telecomunicaciones del área de trabajo debe conectarse a una interconexión en el cuarto de telecomunicaciones.
La distancia horizontal máxima no debe exceder 90 m. La distancia se mide desde la terminación mecánica del medio en la interconexión horizontal en el cuarto de telecomunicaciones hasta la toma/conector de telecomunicaciones en el área de trabajo. Además se recomiendan las siguientes distancias: se separan 10 m para los cables del área de trabajo y los cables del cuarto de telecomunicaciones (cordones de parcheo, jumpers y cables de equipo).
Importancia de un Cableado Estructurado
Sabemos que ser rentable y productivo hoy en día es de suma importancia. La tecnología está de nuestro lado, nos facilita tiempo, espacio, dinero, todo está en saberla aplicar y utilizar todos los recursos favorables para nosotros. Sin embargo estas tecnologías son cambiantes y exigen cada vez más a la red corporativa, por lo que se debe considerar muy bien la óptima utilización de los recursos. Estos sistemas de redes deben ser flexibles, adaptarse a los constantes cambios y necesidades de las empresas; también deben ser seguros para resguardar la información.
Por ejemplo: trasladar el lugar de un puesto de trabajo hace necesarios unos cambios profundos en el cableado de un edificio. Transformar la estructura de comunicaciones por cable de un edificio no es una tarea sencilla ni económica. El Sistema de Cableado Estructurado, es una metodología, basada en estándares, de diseñar e instalar un sistema de cableado que integra la transmisión de voz, datos y vídeo. Un Sistema de Cableado Estructurado propiamente diseñando e instalado proporciona una infraestructura de cableado que suministra un desempeño óptimo y la flexibilidad de acomodar futuro crecimiento por un período de tiempo largo.
Lastimosamente en nuestra cultura la infraestructura de cables de un edificio corporativo es en lo último en lo que se piensa; de hecho, los cables no son contemplados en el presupuesto de construcción inicial, su planeación e instalación se realiza cuando el edificio está listo para ocuparse y, generalmente, se utilizan varios tipos de cables para distintas funciones. Se podría afirmar que el cable ocupa una de las últimas jerarquías en las preocupaciones de dueños y arquitectos, pero esto lo podemos mejorar.
Si actualmente estás pensando en cambiarte de oficina o reestructurar lo que ya tienes, nosotros podemos ayudarte, vamos de la mano contigo en todos los aspectos, brindamos trabajos de calidad y sobre todo, nos adaptamos a tu presupuesto con un trabajo de excelencia y certificado. Llámanos, será un gusto servirte.

NORMAS PARA CABLEADO ESTRUCTURADO 
Al ser el cableado estructurado un conjunto de cables y conectores, sus componentes, diseño y técnicas de instalación deben de cumplir con una norma que dé servicio a cualquier tipo de red local de datos, voz y otros sistemas de comunicaciones, sin la necesidad de recurrir a un único proveedor de equipos y programas. De tal manera que los sistemas de cableado estructurado se instalan de acuerdo a la norma para cableado para telecomunicaciones, EIA/TIA/568-A, emitida en Estados Unidos por la Asociación de la industria de telecomunicaciones, junto con la asociación de la industria electrónica. 
EIA/TIA568-A Estándar ANSI/TIA/EIA-568-A de Alambrado de Telecomunicaciones para Edificios Comerciales. El propósito de esta norma es permitir la planeación e instalación de cableado de edificios con muy poco conocimiento de los productos de telecomunicaciones que serán instalados con posterioridad. ANSI/EIA/TIA emiten una serie de normas que complementan la 568-A, que es la norma general de cableado:
 · Estándar ANSI/TIA/EIA-569-A de Rutas y Espacios de Telecomunicaciones para Edificios Comerciales. Define la infraestructura del cableado de telecomunicaciones, a través de tubería, registros, pozos, trincheras, canal, entre otros, para su buen funcionamiento y desarrollo del futuro. 
· EIA/TIA 570, establece el cableado de uso residencial y de pequeños negocios.
· Estándar ANSI/TIA/EIA-606 de Administración para la Infraestructura de Telecomunicaciones de Edificios Comerciales.
 · EIA/TIA 607, define al sistema de tierra física y el de alimentación bajo las cuales se deberán de operar y proteger los elementos del sistema estructurado.
Las normas EIA/TIA fueron creadas como norma de industria en un país, pero se ha empleado como norma internacional por ser de las primeras en crearse. ISO/IEC 11801, es otra norma internacional. Las normas ofrecen muchas recomendaciones y evitan problemas en la instalación del mismo, pero básicamente protegen la inversión del cliente. 
Elementos principales de un cableado estructurado El Cableado estructurado, es un sistema de cableado capaz de integrar tanto a los servicios de voz, datos y vídeo, como los sistemas de control y automatización de un edificio bajo una plataforma estandarizada y abierta. El cableado estructurado tiende a estandarizar los sistemas de transmisión de información al integrar diferentes medios para soportar toda clase de tráfico, controlar los procesos y sistemas de administración de un edificio. (Para ver el gráfico faltante haga click en el menú superior "Bajar Trabajo") 
1. Cableado Horizontal El cableado horizontal incorpora el sistema de cableado que se extiende desde la salida de área de trabajo de telecomunicaciones (Work Area Outlet, WAO) hasta el cuarto de telecomunicaciones. 
2. Cableado del Backbone El propósito del cableado del backbone es proporcionar interconexiones entre cuartos de entrada de servicios de edificio, cuartos de equipo y cuartos de telecomunicaciones. El cableado del backbone incluye la conexión vertical entre pisos en edificios de varios pisos. El cableado del backbone incluye medios de transmisión (cable), puntos principales e intermedios de conexión cruzada y terminaciones mecánicas. 
3. Cuarto de Telecomunicaciones Un cuarto de telecomunicaciones es el área en un edificio utilizada para el uso exclusivo de equipo asociado con el sistema de cableado de telecomunicaciones. El espacio del cuarto de comunicaciones no debe ser compartido con instalaciones eléctricas que no sean de telecomunicaciones. El cuarto de telecomunicaciones debe ser capaz de albergar equipo de telecomunicaciones, terminaciones de cable y cableado de interconexión asociado. El diseño de cuartos de telecomunicaciones debe considerar, además de voz y datos, la incorporación de otros sistemas de información del edificio tales como televisión por cable (CATV), alarmas, seguridad, audio y otros sistemas de telecomunicaciones. Todo edificio debe contar con al menos un cuarto de telecomunicaciones o cuarto de equipo. No hay un límite máximo en la cantidad de cuartos de telecomunicaciones que puedan haber en un edificio.
4. Cuarto de Equipo El cuarto de equipo es un espacio centralizado de uso específico para equipo de telecomunicaciones tal como central telefónica, equipo de cómputo y/o conmutador de video. Varias o todas las funciones de un cuarto de telecomunicaciones pueden ser proporcionadas por un cuarto de equipo. Los cuartos de equipo se consideran distintos de los cuartos de telecomunicaciones por la naturaleza, costo, tamaño y/o complejidad del equipo que contienen. Los cuartos de equipo incluyen espacio de trabajo para personal de telecomunicaciones. Todo edificio debe contener un cuarto de telecomunicaciones o un cuarto de equipo. Los requerimientos del cuarto de equipo se especifican en los estándares ANSI/TIA/EIA-568-A y ANSI/TIA/EIA-569. 
5. Cuarto de Entrada de Servicios El cuarto de entrada de servicios consiste en la entrada de los servicios de telecomunicaciones al edificio, incluyendo el punto de entrada a través de la pared y continuando hasta el cuarto o espacio de entrada. El cuarto de entrada puede incorporar el "backbone" que conecta a otros edificios en situaciones de campus. Los requerimientos de los cuartos de entrada se especifican en los estándares ANSI/TIA/EIA-568-A y ANSI/TIA/EIA-569.
6. Sistema de Puesta a Tierra y Puenteado 
El sistema de puesta a tierra y puenteado establecido en el estándar ANSI/TIA/EIA-607 es un componente importante de cualquier sistema de cableado estructurado moderno