PDF de programación - Referencia básica del ensamblador ASM51 de Intel

Imágen de pdf Referencia básica del ensamblador ASM51 de Intel

Referencia básica del ensamblador ASM51 de Intelgráfica de visualizaciones

Actualizado el 12 de Mayo del 2019 (Publicado el 14 de Enero del 2017)
1.192 visualizaciones desde el 14 de Enero del 2017
184,8 KB
15 paginas
Creado hace 18a (19/09/2005)
Manual de Prácticas de SDP-I


Referencia básica del ensamblador ASM51 de Intel


1. Introducción


Este manual describe los aspectos básicos del ensamblador ASM51 de Intel (v2.2), con especial

atención a la sintaxis del programa fuente, directivas y opciones disponibles.

2. Sintaxis del lenguaje ensamblador

2.1. Formato de las líneas de programa

El formato general de las líneas de instrucción es:

[etiqueta: ] nemónico [operando] [,operando] [,operando] [;comentario]

en donde el número de operandos (entre 0 y 3) depende de la instrucción en particular.

Entre campos adyacentes pueden existir espacios en blanco o tabulaciones, que serán ignoradas por el
ensamblador. El ensamblador no diferencia entre mayúsculas y minúsculas.

Los operandos pueden ser de los siguientes tipos:

1) No numéricos:

Símbolos específicos del ensamblador. Son palabras reservadas que se emplean necesariamente en
algunas instrucciones. Por ejemplo AB en la instrucción MUL AB. Son los siguientes:

A AB C DPTR PC R0 RI R2 R3 R4 R5 R6 R7

El ensamblador reconoce también los símbolos $ (contador de posición), y AR0,...,AR7 utilizados en
combinación con la directiva USING (ver apartado 3).

Direcciones indirectas. Utilizan el nombre de un registro para indicar la dirección de un dato. Por ejemplo
@RO en la instrucción MOV A,@RO.

2) Numéricos:

Datos inmediatos. Indican una constante. Por ejemplo #25 en la instrucción MOV A,#25.

Direcciones de byte. Indican la posición de la memoria en la que se encuentra un dato de tipo byte. Por
ejemplo, 40 en la instrucción MOV A,40.

Direcciones de bit. Indican la posición de la memoria en la que se encuentra un dato de tipo bit. Por
ejemplo 20H en la instrucción SETB 20H.

Direcciones de programa (código). Indican la posición de la memoria en la que se encuentra una
instrucción. Por ejemplo el número 346 en la instrucción AJMP 346.

Los tipos numéricos se pueden representar mediante expresiones simbólicas, con la condición de que puedan
ser convertidas a un número. El proceso de conversión se denomina evaluación de la expresión, y se dice
que una expresión evatúa a un número.


El ensamblador intenta evaluar las expresiones que encuentra en un programa fuente. Cuando no puede
evaluar una expresión, deja esta tarea al enlazador (linker). Las expresiones evaluables por el ensamblador se
1

Referencia básica del ensamblador ASM51 de Intel
denominan expresiones absolutas. Las que debe evaluar el enlazador se denominan expresiones reubicables
(relocatable). El estudio de las expresiones reubicables está fuera del objetivo de este manual, por lo que el
lector interesado debe consultar la documentación facilitada por el fabricante.

El margen de valores permitido para un operando numérico depende de la instrucción en la que se utiliza.
Las expresiones simbólicas se forman utilizando símbolos predefinidos o definidos por el usuario y números
que se combinan mediante operadores de la fase de ensamblado (ver apartados 2.2, 2.3 y 2.4).

El área direccionable del 8051 se divide en las 5 zonas que se indican a continuación, denominadas
segmentos.

Segmento de datos (bytes) direccionables de modo directo (DATA).

Segmento de bits (BIT).

Segmento de datos en memoria externa (XDATA).

Segmento de programa o código (CODE).

Segmento de datos direccionables de modo indirecto (IDATA).

El programador puede definir símbolos de los tipos indicados entre paréntesis (DATA, etc.) para determinar
su categoría. El ensamblador realiza una comprobación del tipo de operando numérico empleado en cada
instrucción, y advierte de posibles errores. Si el usuario no desea que se realice esta comprobación puede
emplear un tipo genérico denominado número que es aceptado como operando en cualquier instrucción.

En el apartado 2.4 se describe la forma en la que el proceso de evaluación de expresiones determina el tipo
del resultado de la evaluación, en función de los operadores empleados.

El ensamblador perimte utilizar dos nemónicos que no representan directamente ninguna instrucción del
repertorio del 8051: JMP y CALL. Cuando el ensamblador encuentra el nemónico JMP lo sustituye por una
instrucción de salto (SJMP, AJMP, LJMP) que sea válida para el destino dado. Si el salto es hacia atrás, elige
el tipo de salto más corto posible. El nemónico CALL funciona de forma similar, pero con las instrucciones
ACALL, LCALL.

2.2. Evaluación de expresiones en la fase de ensamblado (assembly-time)

Las expresiones simbólicas estan formadas por símbolos, números y operadores. Su evaluación conduce
siempre a un número de 16 bits. Si se utiliza un número negativo, el evaluador lo representa en complemento
a 2. A todos los demás efectos, la evaluación se realiza considerando todos los números positivos en el
margen 0 a 65535 (0 a FFFF).

En general, se permite la referencia a símbolos que se definen más adelante (forward reference).

Los números se pueden expresar en formato decimal, hexadecimal, octal y binarlo. Por defecto, el
ensamblador los considera en formato decimal. Para indicar un formato diferente se debe añadir un sufijo
determinado:
FORMATO
Decimal
Hexadecimal
Octal
Binario

Los números no pueden empezar por una letra, ya que el ensamblador los consideraría como símbolos
alfanuméricos. Por lo tanto, para indicar un valor hexadecimal que empieze por A,...,F se debe añadir un cero
a la izquierda. Por ejemplo 0A5H.


OBSERVACIONES

el valor no puede empezar por letra



SUFIJO
D o nada
H
O 0 Q
B

2

Manual de Prácticas de SDP-I

'A' + 5

'A0'



evalúa a 70 (el valor ascii de A es 65)

evalúa a 256*65 + 48 = 16688 (el valor ascii de 0 es 48)

No se pueden utilizar en las expresiones números mayores de 65535 (0FFFFH).

Se permite el uso de caracteres simples y cadenas en las expresiones. Se deben encerrar entre comillas
simples ('a', 'abc'). Para incluir una comilla simple como parte de una cadena se deben poner 2 seguidas. Por
ejemplo 'abc"d' es una cadena formada por las letras a, b, c, una comilla simple y d.

Los caracteres simples evalúan a su valor ASCII. Las cadenas de dos caracteres evalúan al valor ASCII del
segundo carácter más 256 por el valor ASCII del primero. Las cadenas de más de 2 caracteres sólo se pueden
utilizar con la directiva DB (ver apartado 3). Ejemplos:



2.3. Utilización de símbolos

Los símbolos se caracterizan por los 4 atributos cuyos posibles valores se indican a continuación (no todas
las combinaciones son válidas):

Tipo: register, segment, number, address.

Segmento: DATA, BIT, XDATA, CODE, IDATA.

Alcance (scope): local, public, extern.

Valor: nombre de un registro, dirección base de un segmento, constante, dirección.

Ejemplos de diferentes tipos de símbolos:

El símbolo velocidad definido mediante la directiva EQU siguiente representa al registro R4 y es de tipo
registro. Las directivas se describen en el apartado 3.



Los símbolos empleados en la definición de segmentos reubicables son del tipo segmento.

El símbolo recarga definido mediante la directiva siguiente es del tipo number (número genérico) y puede ser
utilizado en cualquier expresión.



El sínibolo espacio definido mediante la directiva siguiente es del tipo address (dirección), lo que significa
que puede emplearse, por ejemplo, como operando en una instruccción que requiera la dirección de un dato.



Los símbolos del tipo address (dirección) pueden tener alcance (scope) local, public (público) o extern
(externo). El atributo alcance se utiliza en la programación modular para permitir que el enlazador (linker)
realice la combinación de varios módulos ensamblados por separado.


El significado del atributo valor depende del tipo de símbolo. Para el tipo registro es el nombre del registro
en ASCII (p. ej. R4). Para el tipo segmento es el valor de la dirección base del segmento (determinada por el
enlazador). Para el tipo número es el valor constante asignado. Para el tipo dirección, el valor puede
representar la dirección absoluta (si el símbolo es absoluto) o el desplazamiento (offset) con respecto a la
dirección base de su segmento (si el símbolo es reubicable).


espacio DATA 40H

velocidad EQU R4

recarga EQU 52H

3

Referencia básica del ensamblador ASM51 de Intel
El archivo REG51.PDF incluye la definición de un conjunto de símbolos de los tipos dirección de byte y
dirección de bit. Estos símbolos son:

Direcciones de byte:


DIRECCION HEX
E0
F0
83
82
A8
B8
80
90
A0
B0
D0
99
98
81
88
8C
8D
8A
8B
89

SIGNIFICADO
Direcc. del acumulador
Direcc. del registro B
Direcc. de DPTR (MSBy)
Direcc. de DPTR (LSBy)
Direcc. de IE
Direcc. de IP
Direcc. del puerto 0
Direcc. del puerto 1
Direcc. del puerto 2
Direcc. del puerto 3
Direcc. de PSW
Direcc. de SBUF
Direcc. de SCON
Direcc. de SP
Direcc. de TCON
Direcc. de TH0
Direcc. de TH1
Direcc. de TL0
Direcc. de TL1
Direcc. de TMOD

DIRECCION HEX
D7
D6
D5
D4
D3
D2
D0
8F
8E
8D
8C
8B
8A
89
88
9F
9E
9D
9C
9B
9A
99
98
AF
AC

SIGNIFICADO
PSW.7 (flag de acarreo)
PSW.6 (acarreo auxiliar)
PSW.5 (flag 0)
PSW.4 (selecc. banco MSB)
PSW.3 (selecc. banco LSB)
PSW.2 (flag de desbordam.)
PSW.0 (flag de paridad)
TCON.7 (flag de desbord. temp. 1)
TCON.6 (control avance del temp. 1)
TCON.5 (flag de desbord. temp. 0)
TCON.4 (control avance del temp. 0)
TCON.3 (flag de interr. temp. 1)
TCON.2 (nivel/flanco int. ext. 1)
TCON.1 (flag de interr. temp. 0)
TCON
  • Links de descarga
http://lwp-l.com/pdf304

Comentarios de: Referencia básica del ensamblador ASM51 de Intel (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad