martes, 6 de marzo de 2018

UNIDAD 2: PROGRAMA LOOP 5

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


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

.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

.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

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...