Nombre del Plantel: Conalep Tehuacán 150 · •Nombre del Plantel: Conalep Tehuacán 150 •...
Transcript of Nombre del Plantel: Conalep Tehuacán 150 · •Nombre del Plantel: Conalep Tehuacán 150 •...
• Nombre del Plantel: Conalep Tehuacán 150
• Nombre del módulo: Instalación de Sistemas
Microprocesados
Tutorial sobre programación en lenguaje ensamblador
• Nombre del docente:
Ing. Jonathan Quiroga Tinoco
• Grupo: 307 y 308
• Carrera:
P.T.B. en MECC
• Ciclo Escolar: Febrero – Julio 2013
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 1!
USO$DEL$EMULADOR$8086$PARA$PRÁCTICAS$INICIALES$$
Lo# primero# que# haremos# será# conseguir# el# archivo# llamado# “Setup.exe”# que# viene#contenido#en#la#carpeta#comprimida#llamada#“2;2_Programación;Emulador”#disponible#en#ZonaEMEC.# Le# daremos# doble# clic# y# al# ser# un# ejecutable# nos# saldrá# la# siguiente#advertencia:##
##
El# archivo# es# seguro,# libre# de# virus# y# amenazas# por# lo# que# seleccionaremos# “Sí”# para#continuar.# Inmediatamente# nos# aparecerá# la# ventana# de# bienvenida# para# la# instalación,#todo#lo#que#tendremos#que#hacer#es#presionar#“Next”#tantas#veces#como#nos#lo#solicite:##
##
La# instalación# dura# unos# cuantos# minutos# y# no# hace# falta# cambiar# ningún# parámetro.#Algunas#computadoras#del# laboratorio#ya# tienen# instalado#el#programa#así#que#verifique#antes#para#no#repetir#el#proceso.##
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 2!
##
Al#finalizar#el#proceso#nos#enviará#el#siguiente#mensaje:##
##
Hay#que#seleccionar#únicamente#dónde#aparece#“Launch#the#emulator”#porque#no#existe#el#archivo#“ReadMe.txt”#y#sino#lo#deseleccionamos#enviará#un#error.##Tanto# en# el# escritorio# como# en# el# menú# inicio# deberá# aparecer# el# programa# instalado#mediante#el#siguiente#ícono:##
#
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 3!
Cuando#volvamos#a#abrir#el#programa#nos#pedirá#que#ingresemos#la#clave#del#producto:##
##
Daremos#clic#en#“PLEASE#ENTER#THE#REGISTRATION#KEY#…”#y#colocaremos#los#siguientes#datos:##
##
Estos# datos# no# se# deberán# modificar# porque# de# lo# contrario# el# programa# dejará# de#funcionar# al# cabo# del# periodo# de# prueba.# Estos# datos# vienen# en# el# archivo# llamado#“Activar.txt”#o#bien#los#puede#copiar#de#aquí#mismo:##Licensee$Name:$ISHAAN,glaitm$$Registration$Key:$27R3VDEFYFX4N0VC3FRTQZX###
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 4!
Y# entonces# a# partir# de# aquí# tenemos# nuestra# aplicación# lista# para# programar,# compilar,#emular#y#simular#diversos#ejemplos#para#el#procesador#8086.##
##La# interfaz# gráfica# de# usuario# es#muy# similar# a# un# editor# de# texto# simple,# por# ejemplo#Word,#pero#en# lugar#de#diferenciar#por#hojas#o#párrafos# lo#hace#por# renglones#a# lo#que#comúnmente# se# le# llama# “Líneas# de# Código”,# entre# más# líneas# de# código# tiene# un#programa,#más#complejo#es#este#y#permite#realizar#cosas#mas#especiales.##Una# diferencia# significativa# con# respecto# a# un# procesador# de# texto# normal# es# que# las#“palabras# reservadas”# o# “instrucciones”# las# señala# automáticamente# de# un# color# (azul)#mientras# que# los# comentarios,# las# variables# y# otros# elementos# los# marca# de# un# color#distinto#para#una#mejor#estructura#y#un#mayor#entendimiento#por#parte#del#usuario.##En#la#barra#de#tareas#encontraremos#las#pestañas#típicas#de#“file”#(archivo),#“edit”#(editar)#y#“help”#(ayuda)#como#en#otros#programas,#sin#embargo#cuenta#con#otras#especiales#como#“bookmarks”,#“assembler”,#“emulator”,#“math”#y#“ascii”.##En#cuanto#a#la#barra#de#botones#ocurre#lo#mismo,#encontramos#algunos#botones#típicos#de#otros#programas#pero#la#mayoría#son#específicos#para#esta#aplicación.#El#botón#“emulate”#es#de#los#más#importantes#porque#nos#va#a#permitir#ejecutar#el#programa#en#un#ambiente#de# simulación.#Tómese#su# tiempo#para#probar# cada#uno#de#estos#botones#y#verificar# las#acciones# que# ejecutan,# recuerde# que# la# experimentación# nos# ayudará# a# una# mejor#comprensión#del#software.##
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 5!
Nuestras#prácticas#consistirán#en#verificar#los#ejemplos#ya#planteados#por#el#diseñador#del#software,#para#ello#deberemos#pulsar#el#botón#“examples”#y#seleccionar#los#que#indique#su#docente#durante#la#práctica#a#realizar:##
##Inmediatamente#después#de#haber#elegido#el#ejemplo#señalado#el#programa#en#lenguaje#ensamblador#aparecerá#en# la#pantalla#y#podremos#verificar# las# instrucciones#que# se#han#desarrollado#para#cada#caso.#Lo#siguiente#será#pulsar#el#botón#“emulate”#para#proseguir#con#la#virtualización#del#ejemplo.###
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 6!
En#este# caso#hemos#elegido#el#ejemplo# llamado#“traffic# lights”#que#es#un#programa#que#permite#el#control#de#los#semáforos#de#una#intersección#con#ciertos#parámetros:##
##De# manera# inmediata# aparecerán# tres# ventanas# flotantes,# una# de# ellas# con# el# código#fuente# original# en# lenguaje# ensamblador# (extrema# derecha)# otro# que# es# un# panel# de#control# con# registros# y# otras# actividades# (eextrema# izquierda)# y# otra#más# que# realiza# la#respectiva#simulación#gráfica#del#proceso#planteado.##Siga$las$instrucciones$del$docente$para$completar$la$actividad$de$laboratorio$y$presentar$la$evidencia$correspondiente.$$Para#mejor#comprensión#de#los#programas#en#ensamblador#se#anexa#la#siguiente#tabla#que#contiene# una# lista# de# instrucciones# generales,# su# sintaxis# y# lo# que# realiza.# Tómela# en#cuenta.## #
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 7!
INSTRUCCIONES$DE$TRANFERENCIA$DE$DATOS$MOV# MOV###AH,#AL#
MOV###AX,00H#Movimiento##general#de#Datos#
XCHG# XCHG#AX,BX# Intercambia#el#contenido#de#BX#a#AX#IN# INT######AX,PTOA# Ingresa#a#AX#el#contenido#de#PTOA#OUT# OUT####DX,PTOA# Saca#el#contenido#de#DX#por#PTOA#LEA# LEA#####BX,LIST# Carga#la#direccion#efectiva#de#LIST#PUSH# PUSH###AX# Almacena#AX#en#la#pila#POP# POP######AX# Extrae#AX#de#la#pila#
INSTRUCCIONES$DE$CONTROL$DE$CICLOS$INC# INC#######AX# Incrementa#AX#en#1#DEC# DEC######AX# Decremento#de#AX#en#1#LOOP# # Decrementa#automáticamente#CX#
LLAMADO$Y$RETORNO$DE$SUBRUTINA$CALL# CALL##Procedimiento# Llama#una#subrutina#RET# RET# Regresa#al#momento#anterior#
INSTRUCCIONES$ARITMATICAS$ADD# ADD#####AX,BX#
ADD#####AX,09H#Realiza#la#suma#de#AX#y#BX#y#se#almacena#en#AX#Suma#a#AX#un#09H#y#se#almacena#en#AX#
ADC# ADC#####AX,10H# Realiza#la#suma#aun#cuando#existe#un#acarreo#SUB# SUB#####AX,BX# #MUL# MUL####AX,BX#
MUL####AX,08H#Multiplica#AX#con#BX#y#se#almacena#en#AX#Multiplica#AX#por#08H#y#se#almacena#en#AX#
IMUL# IMUL#AX,#BX# Multiplica#AX#con#BX#considerando#el#signo#DIV# DIV######AX,BX#
DIV######AX,09H#Divide#AX#entre#BX#y#se#almacena#en#AX#Divide#AX#entre#09H#y#se#almacena#en#AX#
IDIV# IDIV#####AX,#BX# Divide#AX#entre#BX#considerando#el#signo.#El#resultado#es#almacenado#en#AX.#
INSTRUCCIONES$LOGICAS#
NOT## MOV#AX,66H;#AX=66H#NOT#AX;#AX=99H#
Realiza#la#operación#lógica#NOT#o#complemento#del#contenido#del#registro#AX.#
AND# MOV#AX,10H;#AX=10H#MOV#DX,0FFH;#BX=0FFH#AND#AX,BX;#AX=10H#
Realiza#la#operación#lógica#AND,#entre#el#contenido#del#registro#AX#y#BX.#El#resultado#se#escribe#en#AX.#
OR## MOV#AX,10H;#AX=10H#MOV#BX,#0FFH;#BX=0FFH#OR#AX,#BX;#AX=0FFH#
Realiza#la#operación#lógica#OR#entre#el#contenido#del#registro#AX#y#BX.#El#resultado#es#guardado#en#AX.#
XOR# MOV#AX,10H;#AX=10H#MOV#BX,#0FFH;#BX=0FFH#XOR#AX,#BX;#AX=0EFH#
Realiza#la#operación#lógica#XOR#entre#el#contenido#del#registro#AX#y#BX.#El#resultado#es#guardado#en#AX.#
$$
DESPLAZAMIENTO$Y$ROTACION$SHL# MOV#AX,#88H;#AX=88H#
SHL#AX,#01;#AX=#10H#y#C=1#Desplazamiento#lógico#a#la#izquierda#un#lugar#del#contenido#actual#de#AX.#
SHR# MOV#AX,#88H;#AX=88H,#C=1# Desplazamiento#lógico#a#la#derecha#un#lugar#del#
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 8!
### #
SHR#AX,#01;#AX=#0C4H#y#C=0# contenido#actual#de#AX.#ROL# MOV#AX,#88H;#AX=88H#
ROL#AX,#01;#AX=11H#Rota#hacia#la#izquierda#el#contenido#del#registro#AX#sin#pasar#por#la#bandera#de#acarreo.#
ROR# MOV#AX,#88H;#AX=88H#ROR#AX,#01;#AX=44H#
Rota#hacia#la#derecha#el#contenido#del#registro#AX#sin#pasar#por#la#bandera#de#acarreo.#
RCL# MOV#AX,#88H,#C=1#ROL#AX,#01;#AX=11H,#C=1#
Rotación#con#acarreo#a#la#izquierda#
RCR# MOV#AX,#88H,#C=1#ROR#AX,#01;#AX=11H,#C=1#
Rotación#con#acarreo#a#la#derecha#
CLC# # Pone#la#bandera#de#acarreo#a#0.#STC# # Poner#acarreo#a#1#
INSTRUCCIONES$DE$PILA$PUSH## PUSH#AX# Guarda#el#contenido#de#AX#en#la#memoria#de#pila.#
Por#cada#instrucción#la#pila#se#decrementa#en#dos.#POP# POP#AX# Extrae#el#contenido#de#AX#guardado#en#la#memoria#
de#pila.#Por#cada#instrucción#la#pila#se#decrementa#en#dos.#
PUSHF# PUSHF# Guarda#el#contenido#de#todas#las#banderas#en#la#memoria#de#pila.#
POPF# POPF# Extrae#el#valor#de#las#banderas#almacenadas#en#la#memoria#de#pila.#
INSTRUCIONES$DE$INTERRUPCION$INT# INT#21H# Llama#a#la#interrupción#21H#IRET# IRET# Retorno#de#una#interrupción#
SALTOS$JA#o#JNBE# # Salta#si#está#arriba#o#salta#si#no#está#abajo#o#si#no#es#
igual#JAE#o#JNB# # Salta#si#está#arriba#o#salta#si#no#está#abajo#o#si#no#es#
igual#JB#o#JNAE# # Salta#si#está#abajo#o#salta#si#no#está#arriba#o#si#no#es#
igual#JBE#o#JNA# # Salta#si#está#abajo#o#si#es#igual#o#salta#si#no#está#
arriba#JE#o#JZ# # Salta#si#es#igual#o#salta#si#es#cero#JNE#o#JNZ# # Salta#si#no#es#igual#o#salta#si#no#es#cero#JS# # Salta#si#el#signo#es#negativo#JNS# # Salta#si#el#signo#es#positivo#JC# # Salta#si#hay#acarreo#JNC# # Salta#si#no#hay#acarreo#
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 9!
PROGRAMACIÓN$EN$UN$AMBIENTE$DIFERENTE$SIN$EMULADOR$#A# continuación#vamos#a# trabajar# sin#emulador#directamente# sobre#el# sistema#operativo,#para#ello#deberemos#seguir#las#siguientes#instrucciones#al#pie#de#la#letra.##Primero#es#tener#estos#dos#archivos,#para#cada#caso,#que#encontraremos#en#la#carpeta#comprimida#llamada#“Ejemplos#Ensamblador”,#también#disponible#en#ZonaEMEC:##
• LINK####(ejecutables)#• MASM#(macro#ensamblador)#
#
#Después#nos#vamos#a#la#carpeta#del#disco#C.#
##Creamos#una#carpeta#y#le#ponemos#el#nombre#que#queramos.#
##Dentro#de#la#carpeta#A#introducimos#los#2#programas#(Link#y#Masm)##
#
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 10!
Creamos#un#documento#de#texto#(con#el#bloc#de#notas)#y#le#ponemos#de#nombre#lo#que#queramos##
##Pegamos#este#texto#en#el#documento#de#texto:##cr#equ#13#lf#equ#10#dades#SEGMENT#PARA#PUBLIC#'data'#msg1#DB#'Hola#Mundo',cr,lf,'$'#dades#ENDS#codi#SEGMENT#PARA#PUBLIC#'code'#MAIN#PROC#FAR#ASSUME#cs:codi,DS:dades,SS:pila,ES:dades#MOV#AX,dades#MOV#DS,AX#MOV#ES,AX#MOV#AH,09H#LEA#DX,msg1#int#21H#MOV#AX,4C00H#int#21h#MAIN#ENDP#codi#ENDS#pila#SEGMENT#PARA#STACK#'stack'#DB#128#DUP(0)#pila#ends#END#MAIN###Al#guardar#el#documento#de#texto#sele#pondrá#con#el#nombre#“hola.ASM”.#Todo#programa#en#lenguaje#ensamblador#deberá#tener#la#extensión#ASM#(de#Assembler,#ensamblador#en#inglés).#
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 11!
###Listo#ahora#abrimos#el#modo#consola#CMD,#verificar#el#sistema#operativo#que#tenemos#para#ello.##
##Ahora#nos#vamos#a#raíz#(utilizamos#el#comando#“#C..#“#)##
##Ahora#nos#vamos#a#la#carpeta#que#creamos#en#el#disco#C.#(#CD#A)#
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 12!
###Ahora#escribiremos#el#comando#MASM.##
##Ahora#le#ponemos#el#nombre#del#documento#de#texto#que#creamos.#Le#damos#4#veces#a#la#tecla#enter.#Y#nos#muestra#que#todo#salió#bien#ya#creo#el#objeto#hola.#
##
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 13!
Ahora#usaremos#el#comando#LINK.#Y#mandaremos#llamar#al#objeto#hola.##
##
Aquí#colocamos#el#nombre#del#archivo#objeto.##
##Mandamos#llamar#el#objeto#hola#y#damos#4#veces#enter.##
##
!Conalep(Tehuacán(150(
INMI 307 / 308 PTB en MECC. Ing. J. Quiroga Tinoco. www.zonaEMEC.tk 14!
Ahora#para#ejecutar#el#programa#le#ponemos##Hola.exe##
##El#resultado#final#es#que#imprime#hola#mundo.##
##Y#es#todo.##Siga$las$instrucciones$del$docente$para$completar$la$actividad$de$laboratorio$y$presentar$la$evidencia$correspondiente.$$Para# una# mayor# comprensión# del# tema# revisado,# en# la# misma# entrada# de# ZonaEMEC#existen#varios#manuales# y# tutoriales# sobre# lo# tratado#de#manera#breve#en#esta#práctica,#revíselos#para#complementar#sus#evidencias#a#entregar.#