martes, 6 de marzo de 2018
UNIDAD 2: PROGRAMA LOOP 4 EN EMU8086 Y TASM
PROGRAMA DE AQUINO EN EMU8086
org 100h
.model small
.stack 64
.data
mensaje db 10,13 ,"Dame un numero",10,13,"$"
mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$"
n1 db 0
n2 db 0
n3 db 0
.code
inicio: ;función inicio
mov ax,@data ;Movemos el segmento data a ax
mov ds,ax ; Movemos lo que esta en ax a ds
mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1
mov ah, 09h ;Imprimimos el primer mensaje parte 2
int 21h ;Imprimimos el primer mensaje parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupción para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n1,al ;Movemos lo que esta en al a la variable n1
mov n3,al ;Movemos lo que esta en al a la variable n3
mov ah, 09h ;imprimimos el mensaje 2 parte 1
mov dx,offset mensaje2 ;imprimimos el mensaje 2 parte 2
int 21h ;imprimimos el mensaje 2 parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupcion para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n2,al ;Guardamos lo que el usuario preciono el n2
mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar
sub cl,1 ;le restamos 1 para que no de una vuelta de mas
call ciclo ;llamada a ciclo
ciclo: ;Funcion
call ciclo1 ;llamada el procediemto 1
ciclo1 proc near : ;procedimiento ciclo
mov al,n1 ;potencia parte 1
mov bh,n3 ;potencia parte 2
mul bh ;potencia parte 3
mov n1,al
loop ciclo1 ;loop a la funcion ciclo
mov ax,4c00h ;fin parte 1
int 21h; fin parte 2
fin: ;funcion fin
mov ax,4c00h ;funcion que termina el programa
int 21h
end inicio
org 100h
.model small
.stack 64
.data
mensaje db 10,13 ,"Dame un numero",10,13,"$"
mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$"
n1 db 0
n2 db 0
n3 db 0
.code
inicio: ;función inicio
mov ax,@data ;Movemos el segmento data a ax
mov ds,ax ; Movemos lo que esta en ax a ds
mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1
mov ah, 09h ;Imprimimos el primer mensaje parte 2
int 21h ;Imprimimos el primer mensaje parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupción para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n1,al ;Movemos lo que esta en al a la variable n1
mov n3,al ;Movemos lo que esta en al a la variable n3
mov ah, 09h ;imprimimos el mensaje 2 parte 1
mov dx,offset mensaje2 ;imprimimos el mensaje 2 parte 2
int 21h ;imprimimos el mensaje 2 parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupcion para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n2,al ;Guardamos lo que el usuario preciono el n2
mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar
sub cl,1 ;le restamos 1 para que no de una vuelta de mas
call ciclo ;llamada a ciclo
ciclo: ;Funcion
call ciclo1 ;llamada el procediemto 1
ciclo1 proc near : ;procedimiento ciclo
mov al,n1 ;potencia parte 1
mov bh,n3 ;potencia parte 2
mul bh ;potencia parte 3
mov n1,al
loop ciclo1 ;loop a la funcion ciclo
mov ax,4c00h ;fin parte 1
int 21h; fin parte 2
fin: ;funcion fin
mov ax,4c00h ;funcion que termina el programa
int 21h
end inicio
EN TASM
datos segment
mensaje db 10,13"Dame un numero",10,13,"$"
mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$"
n1 db 0
n2 db 0
n3 db 0
datos ends
codigo segment
assume ds:datos,cs:codigo
inicio: ;función inicio
mov ax,datos ;Movemos el segmento data a ax
mov ds,ax ; Movemos lo que esta en ax a ds
mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1
mov ah, 09h ;Imprimimos el primer mensaje parte 2
int 21h ;Imprimimos el primer mensaje parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupción para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n1,al ;Movemos lo que esta en al a la variable n1
mov n3,al ;Movemos lo que esta en al a la variable n3
mov ah, 09h ;imprimimos el mensaje 2 parte 1
mov dx,offset mensaje2 ;imprimimos el mensaje 2 parte 2
int 21h ;imprimimos el mensaje 2 parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupcion para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n2,al ;Guardamos lo que el usuario preciono el n2
mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar
sub cl,1 ;le restamos 1 para que no de una vuelta de mas
call ciclo ;llamada a ciclo
ciclo: ;Funcion
call ciclo1 ;llamada el procediemto 1
ciclo1 proc near ;procedimiento ciclo
mov al,n1 ;potencia parte 1
mov bh,n3 ;potencia parte 2
mul bh ;potencia parte 3
mov n1,al
loop ciclo1 ;loop a la funcion ciclo
mov ax,4c00h ;fin parte 1
int 21h; fin parte 2
ciclo1 endp
fin: ;funcion fin
mov ax,4c00h ;funcion que termina el programa
int 21h
codigo ends
end inicio
UNIDAD 2: PROGRAMA LOOP 3 EN EMU8086
;PROGRAMA LOOP HECHO EN EMU8086
;JESUS EDUARDO MARTINEZ HINOJOSA
.model small
.stack 64
.data
texto db "INGRESA LAS VECES QUE QUIERES REPETIR EL MENSAJE (1-9)",13,10,'$'
repetir db 13,10,"ESTE CICLO SE REPITE Y SE REPITE $"
.code
inicio proc far
mov ax, @data
mov ds, ax
mov ah, 09
lea dx, texto
int 21h
mov ah, 01
int 21h
sub al, 30h
mov cl, al
ciclo:
mov ah, 09
lea dx, repetir
int 21h
loop ciclo
mov ax,4c00h
int 21h
inicio endp
end
EN TASM
.model small
.stack 64 ; Se pone el stack
datos segment
mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$'
repetir db 13,10,"Repitiendo el ciclo $"
datos ends
codigo segment
assume cs:codigo, ds:datos
inicio:
mov ax, datos
mov ds, ax
mov ah, 09
lea dx, mensaje
int 21h
mov ah, 01 ; Leer un caracter desde el teclado con la interrupcion 21h
int 21h
sub al, 30h ; Se le resta 30h para convertirlo a digito
mov cl, al
ciclo:
mov ah, 09
lea dx, repetir
int 21h
loop ciclo
mov ax,4c00h
int 21h
codigo ends
end inicio
UNIDAD 2: PROGRAMA LOOP 2 EN EMU8086
PROGRAMA DE ARMANDO MONREAL DE LOOP
;JESUS EDUARDO MARTINEZ HINOJOSA
org 100h
.data
mensaje db "PROGRAMA UTILIZANDO LOOP QUE IMPRIME DEL 0 al 9",13,10,"$"
.code
inicio:
mov ax,@data
mov ds, ax
mov dx,offset mensaje
mov ah,09h
int 21h
MOV DL, "0";se transfiere la letra 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 26 interaciones
MOV AH, 02;se transifiere 02 al acumulador de byte alto
INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas
ret
TURBO ASSEMBLE
;JESUS EDUARDO MARTINEZ HINOJOSA
org 100h
.data
mensaje db "PROGRAMA UTILIZANDO LOOP QUE IMPRIME DEL 0 al 9",13,10,"$"
.code
inicio:
mov ax,@data
mov ds, ax
mov dx,offset mensaje
mov ah,09h
int 21h
MOV DL, "0";se transfiere la letra 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 26 interaciones
MOV AH, 02;se transifiere 02 al acumulador de byte alto
INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas
ret
TURBO ASSEMBLE
.model small
.stack 64
datos segment
.model small
.stack 64
datos segment
mensaje db "Programa que utiliza loop e imprime del 0 al 9",13,10,"$"
datos ends
codigo segment
assume cs:codigo, ds:datos
inicio:
mov ax,datos
mov ds, ax
mov dx,offset mensaje
mov ah,09h
int 21h
MOV DL, "0";se transfiere la letra 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 26 interaciones
MOV AH, 02;se transifiere 02 al acumulador de byte alto
INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas
codigo ends
end inicio
UNIDAD 2: PROGRAMA LOOP 1 EN EMU 8086
PROGRAMA EMU DE LA MAESTRA
; uso del LOOPZ, REPETICION BASADA EN
;COMPARACION SI ES IGUAL A 0
; INTERRUPCION PARA LEER DEL TECLADO ES LA INT16H
; CUANDO USAMOS LA INT16H , EL PARAMETROA USAR ES AH = 0
; Y EL CARACTER LEIDO QUEDARA EN AL= CARACTER LEIDO
.model small
.stack 64
.data
;mensaje1 db "instrucciones de repeticion
.code
inicio:
mov al,'>' ; caracter inicial
mov cx,10 ;numero de veces a repetir el ciclo
leer_car:
mov ah,0EH ;FUNCION PARA IMPRIMIR EL CARACTER AL
int 10h ;llama al BIOS
mov ah,08 ;pausa y espera a que el usuario precione una tecla
int 21h ;interrupcion para capturar
cmp al,'S'; el caracter leeido int 16h lo guarda en al
loopz leer_car ;toma en cuenta la comparacion del cmp si se cumple continua
; coloco el fin de la linea para que baje una linea y lo baje
mov ah,0EH ; FUNCION DEL BIOS PARA IMPRIMIR CARACTER
mov al,10
int 10h
MOV AL,13
INT 10H
mov ah,04ch ;Al terminar finaliza el programa.
int 21h
end inicio
EN TASM
; uso del LOOPZ, REPETICION BASADA EN
;COMPARACION SI ES IGUAL A 0
; INTERRUPCION PARA LEER DEL TECLADO ES LA INT16H
; CUANDO USAMOS LA INT16H , EL PARAMETROA USAR ES AH = 0
; Y EL CARACTER LEIDO QUEDARA EN AL= CARACTER LEIDO
.model small
.stack 64
.data
;mensaje1 db "instrucciones de repeticion
.code
inicio:
mov al,'>' ; caracter inicial
mov cx,10 ;numero de veces a repetir el ciclo
leer_car:
mov ah,0EH ;FUNCION PARA IMPRIMIR EL CARACTER AL
int 10h ;llama al BIOS
mov ah,08 ;pausa y espera a que el usuario precione una tecla
int 21h ;interrupcion para capturar
cmp al,'S'; el caracter leeido int 16h lo guarda en al
loopz leer_car ;toma en cuenta la comparacion del cmp si se cumple continua
; coloco el fin de la linea para que baje una linea y lo baje
mov ah,0EH ; FUNCION DEL BIOS PARA IMPRIMIR CARACTER
mov al,10
int 10h
MOV AL,13
INT 10H
mov ah,04ch ;Al terminar finaliza el programa.
int 21h
end inicio
EN TASM
.model small
.stack 64
.data
; Mensaje1 db "instrucciones de repeticion
mov cx,10 ; Numero de veces a repetir el ciclo
leer_car:
mov ah,0EH ; Funcion para imprimir el caracter AL
int 10h ; Llama al BIOS
;mov ah, 01 Aqui pide el dato y lo imprime
mov ah,01 ; Pausa y espera a que el usuario precione una tecla
int 21h ; Interrupcion para capturar
cmp al,'S' ; El caracter leeido la int 16h lo guarda en al
loopz leer_car ; Toma en cuenta la comparacion del cmp, si se cumple continua
; Coloco el fin de la linea para que baje una linea y lo baje
mov ah,0EH ; Funcion del bios para imprimir caracter
mov al,10
int 10h
MOV AL,13
INT 10H
mov ah,04ch ; Al terminar finaliza el programa.
int 21h
end inicio
Suscribirse a:
Entradas (Atom)
EXPOSICIÓN 2: PROGRAMACION DEL PUERTO USB
RESUMEN DE LA EXPOSICIÓN DE PUERTOS USB PUERTO USB BUFFER DE VIDEO EN MODO TEXTO Se llama modo texto a cualquier modo de vi...
-
REGISTROS DE BANDERAS: DEFINICIÓN De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y...
-
RESUMEN DE LA EXPOSICIÓN DE PUERTOS USB PUERTO USB BUFFER DE VIDEO EN MODO TEXTO Se llama modo texto a cualquier modo de vi...
-
PROGRAMA USANDO EL MACROS PAQRA EMU 8086 CODIGO TITLE Cadena que solicita una cadena y una posición pa...