Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microcontroladores
Tarea #1:
Lenguaje Ensamblador
Programa Ensamblador
Lenguaje
• Instrucciones de CPU
La mayoría de las CPU tienen más o menos los mismos grupos de instrucciones,
aunque no necesariamente tienen todas las instrucciones de cada grupo. Las
operaciones que se pueden realizar varían de una CPU a otra. Una CPU particular
puede tener instrucciones que no tenga otro y viceversa.
• Ensamblado
La sentencia:
1. “MOV AL, 61h”
Asigna el valor hexadecimal 61(97 decimal) al registro “AL”
El programa ensamblador lee la sentencia de arriba y produce su equivalente binario
en lenguaje de maquina
2. Binari: 10110000 01100001 (hexadecimal: B061)
En el segundo byte se especifica el numero 61h, escrito en binario como 01100001,
que se asignara al registro AL, quedando la sentencia ejecutable como:
3. 10110000 01100001
• Elementos Básicos
• Secciones de datos
Hay instrucciones usadas para definir elementos de datos para manejar datos y
variables. Definen el tipo de dato, la longitud y la alineación de los datos. Estas
instrucciones también pueden definir si los datos están disponibles para programas
exteriores (programas ensamblados separadamente) o solamente para el programa
en el cual la sección de datos está definida. Algunos ensambladores clasifican esta
instrucción como pseudo-instrucciones.
• Directivas del ensamblador
• Macros
Las macros se usaron para personalizar sistemas de software de gran escala para
clientes específicos en la era del mainframe. También se emplearon macros por los
usuarios mismos para satisfacer las necesidades de sus organizaciones haciendo
versiones específicas de los sistemas operativos del fabricante. Esto fue hecho, por
ejemplo, por los programadores de sistema que trabajaban con el Conversational
Monitor System / Virtual Machine (CMS/VM) de IBM y con los complementos real
time transaction processing de IBM, CICS, Customer Information Control System,
el airline/financial system que comenzó en los años 1970 y todavía corre con
muchos sistemas de reservaciones computarizados (CRS) y sistemas de tarjeta de
crédito de hoy.
• Perspectiva Histórica
• Uso actual
• Aplicaciones Típicas
; -------------------------------------------------------------------
; Imprime un string en pantalla
; --------------------------------------------------------------------
MOV DX, offset Cadena1 ; mueve a DX la dirección del string a imprimir
MOV AH, 9 ; AH = código para indicar al MS DOS que
imprima en la pantalla, el string en DS:DX
INT 21h ; llamada al MS DOS para ejecutar la función
(en este caso especificada en AH)
; --------------------------------------------------------------------
; Finaliza el programa
; --------------------------------------------------------------------
INT 20h ; llamada al MS DOS para finalizar el programa
end programa
ORG 8030H
include
T05SEG:
SETB TR0
JNB uSEG,T05SEG ;esta subrutina es utilizada
CLR TR0 ;para realizar una cuenta de
CPL uSEG ;0,5 segundos mediante la
MOV R1,DPL ;interrupción del timer 0.
INVOKE
MOV R2,DPH
CJNE R2,#07H,T05SEG
CJNE R1,#78H,T05SEG
MOV DPTR,#0
RET
ORG 0
Inicio
bcf STATUS,RP0
clrf PORTB
movlw 0xFF
movwf PORTA
bsf STATUS,RP0
Principal
movf PORTA,W
movwf Contador
movf Contador,F
btfsc STATUS,Z
goto PuntoDecimal
sublw d'9'
btfss STATUS,C
END
CONCLUSIONES
Con lo hecho en este trabajo, podemos ver la importancia del lenguaje ensamblador
y sus principales aportaciones a los lenguajes de programación, además de algunos
de sus usos durante la historia y en la actualidad. Podemos decir que el lenguaje
ensamblador es de gran importancia debido a que constituye la representación más
directa del código maquina especifico para cada arquitectura de microprocesador,
además al tratarse de un lenguaje de programación de bajo nivel, representa
instrucciones básicas para las computadoras, microprocesadores,
microcontroladores y otros circuitos integrados programables.