Вы находитесь на странице: 1из 5

2017­6­21 Editando Página

Fundamentos del lenguaje de máquina 

ASSEMBLER trabaja con  diferentes sistemas numéricos, el sistema DECIMAL es el sistema que assembler 
usa por dfecto. Si deseamos trabajar con otro sistemas debemos poner una letra que identifique qué tipo de 
sistema voy a usar.

El lenguaje ensamblador reconoce los siguientes sistemas numéricos:

BINARIO

HEXADECIMAL

OCTAL 

DECIMAL.

Para identificar a cúál sistema pertenece una constante hay que decirle  al lenguaje que sistema está usando 
y esto  se lleva a cabo por medio de las letras siguintes:

B  para sistema binario

O para el sistema octal

D para el sistema decimal

Y alternativo para el sistema binario

T alternativo para el sistema decimal

ASSEMBLER NO DISTINGUE ENTRE MAYÚSCULAS Y MINÚSCULAS

Ejemplos:

   1101B es un número binario      1101  es un número decimal    1101O es un n´mero octal  y 1101H es un 
número hexadecimal.

NOTA: AUXILISE DEL CALCULAR DE WINDOWS PARA HACER LAS CONVERSIONES Y VER QUE TODOS 
SON DIFERENTES  AL CONVERTIRLOS A DECIMAL, NUESTRO SISTEMA HUMANO.

IDENTIFICADORES

Un idntificador es una palabra inventada o proporcionada por el programado para hacer referencia a algo que 
desea indenticar. Esto en los lenguajes normales se conoce como VARIABLE. Las reglas prioncipales son:

a) NO puede comenzar con un dígito

b) Su longitud máxima es de 247 caracteres

c) Puede comenzar con cualquier letra del alfabeto y también usar los caracteres $, _, @, y ?.

En esta parte coincidimos con la mayor parte de los lenguajes y hay que tener cautela al definir los nombres 
de los identificadores, un nombre muy largo puede que nos cause problemas al momento de reescribirlo.
https://carreras.utecvirtual.edu.sv/carrera­virtual/course/modedit.php?update=65795&return=0&sr=0 1/5
2017­6­21 Editando Página

DIRECTIVAS

Una directiva es una palabra que le dice al compilador que debe de hacer, no produce código objeto. Para 
este momento las directivas que hemos visto son .CODE y .DATA las cuales le dicen al compilador que a partir 
de alli comienza la sección de código datos respectivamente.  Mas adellente iremos identificado más directivas 
y oportunamente se les indicará.

ETIQUETAS

Una etiqueta es una palabra que el programador proporciona y que puede indicarle a assembler que está 
definiendo un dato , ó, que apunta o indica una instrucción.

Las ETIQUETAS pueden ser :

a) Datos

b) Instrucción

Las etiquetas de datos se encuentran en la sección de código, y se les puede identificar fácilmente poque se 
las variables definidas por el programador para uso dentro de su programa.

Las  ETIQUETAS de instrucción sol las palabras que el programado provee para marcar el inicio de una 
instrucción dentro de la sección de código.

Veamos el siguiente ejmplo de un programa en assembler:

TITLE  ETIQUETAS

INCLUDE IRVINE32.INC

.DATA

TOTALL DWORD 0

MENSAJE "La suma total es de : ",0

.CODE

ETI    PROC

        MOV ECX,10

      MOV EAX,0

 SUMAR:   ADD EAX,1

                 LOOP  SUMAR

                MOV EDX,OFFSET MENSAJE

               CALL WRITESTRING

               CALL WRITEDEC

               CALL CRLF

              EXIT
https://carreras.utecvirtual.edu.sv/carrera­virtual/course/modedit.php?update=65795&return=0&sr=0 2/5
2017­6­21 Editando Página

ETI       ENDP

            END   ETI

En el ejemplo anterior  TOTAL y MENSAJE  son etiquetas de datos

SUMAR:   es una etiqueta de instrucción.

¿Cuál es la diferencia entre ellas?  

La de datos va en la sección :DATA mientras que la de instrucción va en la sección  .CODE, con la adición de 
DOS PUNTOS al final de la etiqueta de instrucción.

Veamos una etiqueta de datos  ETI_DATOS y la instrucción ETI_INST: (ojo con los dos puntos al final).

NEMÓNICO

Un nemónico es una palabra corta de una misma palabra. ES una abreviación en cierta forma,aunque sujeta a 
criterio humano. Po ejemplo la palabra  SUMAR la puede contraer a SUM, luego SUM es el nemónico de 
sumar. 

Como podemos ver esto es útil en un lenguaje de programación porque acorta la codificacón al mismo tiempo 
que es obio el significado de la palabra corta.

COMENTARIOS

Hay dos tipos de comentarios

a) Comentarios de líneas

b) Comentarios de múltiples líneas

Un COMENTARIO DE LÍNEA SENCILLA  se representa por  un punto y coma  (:) al final de la sentencia

   MOV ECX,10   ;   mover al registro EAX el valor de 10

Los comentarios de múltiples líneas se representan por la DIRECTIVA llamada COMMENT seguida de un 
espacio y luego un caracter  proporcionado por el programador. El bloque de líneas debe de terminar con el 
mismo caracter.

COMMENT  *

MOV ECX,10

ADD EAX,0

CALL WRITEDEC

El bloque termina con el asterisco, que fue el caracter proporcionado por el programador en esta ocasión.

INSTRUCCIONES

Una instrucción es una ORDEN que se convierte en código objeto y ejecta una acción predeterminada.. la 
SINTAXIS de uma instrucción es:

https://carreras.utecvirtual.edu.sv/carrera­virtual/course/modedit.php?update=65795&return=0&sr=0 3/5
2017­6­21 Editando Página

[ ETIQUETA: ]   nemónico  [ OPERANDOS ] { ; COMENTARIOS ]

Los corchetes nos indican que lo que está entre corchetes es opcional, puede o no puede ir.

Ya sabemos qué significa cada uno de los elemntos de la instrucción , procedamos a los ejemplos.

 MOV EDX,OFFSET MENSAJE

Esta instrucción solo consta de : nemónico y de operandos.

MOV, EDX,OFFSET MENSAJE ;  mueve la direccion mensaje en el registro EDX

Esta instrucción consta de nemónico , opernado y comentario

a:  mov edx,offset mensaje ; obtiene la dirección

Esta instrucción esta completa.

la instrucción :

NOP

es una instrucciíón  que no requiere operandos.

CONVENCIONES A UTILIZAR PARA DECSRIBIR LA SINTAXIS DE LAS INSTRUCCIONES

Para poder describir a los operandos de las instrucciones se tendrán en cuenta los siguientes símbolos.

REG  va  significar cualquier registro de propósito general de 32 bits

R816   cualquier regstro de propósito general de 16 bits

R8 cualquier registro de propósito general de 8 bits

MEM  cualquier variable de memoria de 32 bits, 16 bits 0 8 bits

INM  un valor inmediato de 8,16 o 32 bits

MEM8, MEM16 Y MEM32 VARIABLES DE 8,16 Y 32BITS

INM8, INM16 Y  INM32   un valor inmediato tipo BYTE, WORD o DWORD.

SEG   registro segemento SS,DS, CS y ES

Hacer referencia a estas convenciones cuando estudie la sintaxis de un lenguaje y tenga dudas.

­­­­­­­­­­­­­­­­­­­­­­­­­­­­

TIPOS DE DATOS

­­­­­­­­­­­­­­­­­­­­­­­­­­

Como en todo lenguaje de programación HAY QUE DECLARAR LAS VARIABLES  a utilizat en el programa. 
ASSEMBLER no es la excepción, la manera en que se definen es:

 nombre­de­la­variable  DIRECTIVA  valor inicial, valor inicial.........

Las DIRECTIVAS de los tipos de datos son:

https://carreras.utecvirtual.edu.sv/carrera­virtual/course/modedit.php?update=65795&return=0&sr=0 4/5
2017­6­21 Editando Página

BYTE  entero de 8 bits

SBYTE entero con signo de 8 bits

WORD  entero de16 bits

SWORD entero de 16 bits con signo

DWORD  entro de 32 bits

SDWORD  entero de 32 bits  con signo

FWORD  entero de 48 bits

QWORD  entero de 64  bits

TBYTE entero de 80 bits

En este curso solo usaremos las directivas

BYTE

WORD

DWORD

https://carreras.utecvirtual.edu.sv/carrera­virtual/course/modedit.php?update=65795&return=0&sr=0 5/5