Manual Basico de Programacion en Ensamblador Del 8086
Manual Basico de Programacion en Ensamblador Del 8086
Manual Basico de Programacion en Ensamblador Del 8086
Introduccin
Este manual presenta una breve introduccin a la programacin en ensamblador
para el microprocesador de 16 bits 8086. Este manual se apoya de una serie de
recursos en lnea de otros autores, con lo cual se enriquece ms la informacin
disponible. El procedimiento para generar un conocimiento se basa en los
siguientes pasos:
Fig. 1 Ejercicio 1
.CODE ;com:
MOV AX,@DATA ;com:
MOV DS,AX
END
https://www.alpertron.com.ar/INST8088.HTM
http://www.cs.buap.mx/~mgonzalez/asm_mododir2.pdf
http://nuyoo.utm.mx/~jjf/le/LE_APENDICE_D.pdf
https://www.youtube.com/watch?v=UR1kGGe1wjw&spfreload=10
http://www.elcodigoascii.com.ar/caracteres-ascii-control/salto-linea-
nueva-linea-codigo-ascii-10.html
https://es.wikipedia.org/wiki/Retorno_de_carro
.STACK 100h
CR EQU 13 ;Retorno de cato
LF EQU 10 ;Nueva linea
.DATA ;Zona de datos inicializados
.CODE ;com:
MOV AX,@DATA ;com:
MOV DS,AX
END
.STACK 100h
CR EQU 13 ;Retorno de cato
LF EQU 10 ;Nueva linea
.DATA ;Zona de datos inicializados
.CODE ;com:
MOV AX,@DATA ;com:
MOV DS,AX
MOV AH,9 ;com:
INT 21h ;com:
END
si no
al=13?
Limpia la pantalla no si
al>57?
Imprime texto 1 no si
al<=47?
?
Bx=[bx $]
bx[si]=al
si=si+1
Imprime
bx
Imprime texto 2
;-------------------------------------------------------
;Descripcion:
; Programa que espera la captura de datos
;
;-------------------------------------------------------
;Equates o definiciones
;-------------------------------------------------------
Org 100h ;Inicio del codigo
.Data
texto1 db 10,13,'El numero es: $'
texto2 db 10,13,10, 'Programa terminado$'
.Code
mov si,0 ;Se inicia en 0 el registro "si"
;consulte http://www.cs.buap.mx/~mgonzalez/asm_mododir2.pdf
entrada: ;Etiqueta para volver a esperar caracter
mov ah,1 ;Espera de caracter con eco
int 21h
;consulte
;http://ict.udlap.mx/people/oleg/docencia/ASSEMBLER/asm_interrup_21.html
;recuerde que en AL = codigo ASCII del Carcter leido
termina:
mov ah,00h ;Limpia la pantalla
mov al,03h
int 10h
mov ah,9 ;Impresion de texto 1
mov dx,offset texto1
int 21h
;-------------------------------------------------------
;Descripcion:
; Programa que espera la captura de datos
;
;-------------------------------------------------------
;Equates o definiciones
;-------------------------------------------------------
Org 100h ;Inicio del codigo
.Data
texto1 db 10,13,'Las letras y caracteres son: $'
texto2 db 10,13,10, 'Programa terminado$'
.Code
mov si,0 ;Se inicia en 0 el registro "si"
entrada: ;Etiqueta para volver a esperar caracter
mov ah,1 ;Espera de caracter con eco
int 21h ;recuerde que en AL = codigo ASCII del Carcter ledo
;-------------------------------------------------------
;Descripcion:
; Programa que espera la captura de datos y convierte
; el valor en decimal a octal
;
;-------------------------------------------------------
;Equates o definiciones
;-------------------------------------------------------
Org 100h ;Inicio del codigo
;-------------------------------------------------------
;Datos utilizados en el programa
.Data
texto1 db 10,13,'El numero es: $'
texto2 db 10,13,10, 'su valor octal es: $'
acumulad dw 0 ;Acumador
apoyo1 dw 0
potencia dw 1 ;potencia 1 10 100 1000
;-------------------------------------------------------
;Cdigo
.Code
Mov si,0 ;Se inicia en 0 el registro "si"
entrada: ; Etiqueta para volver a esperar caracter
mov ah,1 ;Espera de caracter con eco
int 21h ;recuerde que en AL = codigo ASCII del Carcter leido
cmp al,13 ;Se presiono la tecla enter?
jz termina;si se presiono enter (valor numerico 13) ve a resultado
;para entender porque el 13 revise el codigo ASCII
cmp al,57 ;Compara el numero de la tecla con 57?
ja entrada ;brinca a entrada si es mayor a 57
cmp al,47 ;Compara el numero de la tecla con 47?
jng entrada ;brinca a entrada si es menor o igual a 47
;Aqui llega solo aquel valor entre 0 y 9 en ASCII
mov bx[si],al ;si es un digito entonces lo guardo en bx
inc si ;incrementa el registro si
jmp entrada ;regresa para esperar otro dato
;Aqu muestra el numero leido
termina:
mov ah,00h ;Limpia la pantalla
mov al,03h
int 10h
mov ah,9 ;Impresion de texto 1
mov dx,offset texto1
int 21h
Actividades. Ahora puede continuar con sus ejercicios de clase y con la tarea
4. Es importante mencionar que este documento no forma parte del material
compartido para la materia, y ha sido desarrollado para facilitar la programacin
para los alumnos.