Beruflich Dokumente
Kultur Dokumente
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/carreravirtual/course/modedit.php?update=65795&return=0&sr=0 1/5
2017621 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/carreravirtual/course/modedit.php?update=65795&return=0&sr=0 2/5
2017621 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/carreravirtual/course/modedit.php?update=65795&return=0&sr=0 3/5
2017621 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:
nombredelavariable DIRECTIVA valor inicial, valor inicial.........
Las DIRECTIVAS de los tipos de datos son:
https://carreras.utecvirtual.edu.sv/carreravirtual/course/modedit.php?update=65795&return=0&sr=0 4/5
2017621 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/carreravirtual/course/modedit.php?update=65795&return=0&sr=0 5/5