miércoles, 28 de febrero de 2018

programa de ciclos en emu8086

; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

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:


mov ax,@data
mov ds,ax
mov dx,offset mensaje
mov ah, 09h
int 21h



mov ah,01     ;pausa y espera a que el usuario precione una tecla
int 21h        ;interrupcion para capturar
sub al,30h
mov n1,al
mov n3,al

mov ah, 09h
mov dx,offset mensaje2

int 21h
mov ah,01     ;pausa y espera a que el usuario precione una tecla
int 21h 
sub al,30h
mov n2,al

mov ah,0
mov cx,ax
sub cx,1



cmp al,0     
je ciclo     
cmp al ,1       
je ciclo
cmp al,2      
je ciclo
cmp al,3      
je ciclo
cmp al,4      
je ciclo
cmp al,5       
je ciclo
cmp al,6       
je ciclo
cmp al,7      
je ciclo
cmp al,8       
je ciclo
cmp al,9      
je ciclo
jmp fin 


ciclo:
call ciclo1 

ciclo1 proc near :
mov al,n1
mov bh,n3
mul bh

mov n1,al

loop ciclo1
add dl,al
sub dl,30h
mov ah ,2
int 21h

mov ah,04ch
int 21h

fin:
 mov ax,4c00h      ;funcion que termina el programa
 int 21h
end inicio

practica en emu 8086 y en turboassembler del dia 28 de febrero


martes, 27 de febrero de 2018

practica del dia 27 de febrero en emu 8086






codigo:

pila segment stack 'stack'
db 100h dup (?)
pila ends
datos segment
    titulo db 13,10,'CAMBIAR FONDO DE PANTALLA',13,10,10,'Menu:',13,10,10,'$'
    mensaje db '1.-Pantalla Azul y letras Rosas',13,10,'2.-Pantalla Morada y Letras Amarillas ',13,10,'3.-Pantalla Aqua y Letras Celestes',13,10,'4.-Pantalla Roja y Letras Verdes',13,10,10,'Para salir, presione cualquier tecla...',13,10,'$'
datos ends
codigo segment ;segmento de codigo
assume cs:codigo, ss:pila, ds:datos
    inicio:
         mov ah,0
         mov al,3h
         int 10h
         mov ax,0600h
         mov bh,0fh
         mov cx,0000h
         mov dx,184Fh
         int 10h
         mov ah,02h
         mov bh,00
         mov dh,00
         mov dl,00
         int 10h

            mov ax,datos
            mov ds,ax
            lea dx,titulo
            mov ah,9h
            int 21h
            lea dx,mensaje
            mov ah,9h
            int 21h
             mov ah,08
             int 21h
             cmp al,49
             je llamarAzul
            cmp al,50
            je llamarMorado
            cmp al,51
            je llamarAqua
            cmp al,52
            je llamarRojo
            jmp fin

            fin:
            mov ax,4c00h
            int 21h
            llamarAzul:
            CALL AZULPROC
            llamarMorado:
            CALL MORADOPROC
            llamarAqua:
            CALL AQUAPROC
            llamarRojo:
            CALL ROJOPROC
         
         
            AZULPROC PROC NEAR
            mov ah,0
             mov al,3h
             int 10h
             mov ax,0600h
             mov bh,0fh
             mov cx,0000h
             mov dx,184Fh
             int 10h
             mov ah,02h
             mov bh,00
             mov dh,00
             mov dl,00
             int 10h
            mov ah,06h
            mov bh,1dh
            mov cx,0000h
            mov dx,184fh
            int 10h
            mov ax,4c00h
            int 21h
            RET
            AZULPROC ENDP

            MORADOPROC PROC NEAR
            mov ah,0
             mov al,3h
             int 10h
             mov ax,0600h
             mov bh,0fh
             mov cx,0000h
             mov dx,184Fh
             int 10h
             mov ah,02h
             mov bh,00
             mov dh,00
             mov dl,00
             int 10h
            mov ah,06h
            mov bh,5eh
            mov cx,0000h
            mov dx,184fh
            int 10h
            mov ax,4c00h
            int 21h
            RET
            MORADOPROC ENDP
         
            AQUAPROC PROC NEAR
            mov ah,0
             mov al,3h
             int 10h
             mov ax,0600h
             mov bh,0fh
             mov cx,0000h
             mov dx,184Fh
             int 10h
             mov ah,02h
             mov bh,00
             mov dh,00
             mov dl,00
             int 10h
            mov ah,06h
            mov bh,3bh
            mov cx,0000h
            mov dx,184fh
            int 10h
            mov ax,4c00h
            int 21h
            RET
            AQUAPROC ENDP
         
            ROJOPROC PROC NEAR
             mov ah,0
             mov al,3h
             int 10h
             mov ax,0600h
             mov bh,0fh
             mov cx,0000h
             mov dx,184Fh
             int 10h
             mov ah,02h
             mov bh,00
             mov dh,00
             mov dl,00
             int 10h
            mov ah,06h
            mov bh,4ah
            mov cx,0000h
            mov dx,184fh
            int 10h
            mov ax,4c00h
            int 21h
            RET
            ROJOPROC ENDP
            codigo ends
             end inicio

miércoles, 21 de febrero de 2018

archivo con lista de interrupciones


https://drive.google.com/file/d/1Oyz09aRBjFBNcSDsa5msbiP-e13Kdp69/view

practica en workbench



programa 2

2.  Programa que cambia el color de pantalla mediante opciones:


Pila segment stack 'stack' ;Segmento de la pila
     db 100h dup (?)       ; A partir de la direccion 100 de la pila.
Pila ends

  datos segment
    
      titulo db 13,10,'  CAMBIAR FONDO DE PANTALLA  ',13,10,'$'
      mensaje db 'Presione ENTER si quiere la pantalla azul ' , ' Si quiere morado, presione 2 ',13,10,' Para salir ', ' Presione cualquier tecla',13,10,'$'

  datos ends

codigo segment ;segmento de codigo
       
       assume cs:codigo, ss:pila, ds:datos

Inicio:
           ;****************************** PREPARAR PANTALLA
   mov ah,0
       mov al,3h ; Modo Texto
       int 10h   ; Interrupcion de Video
       
       mov ax,0600h ; Limpiar Pantalla
       mov bh,0fh   ; O Color de fondo negro, el color de letra blanco
       mov cx,0000h
       mov dx,184Fh
       int 10h
       
       mov ah,02h
       mov bh,00
       mov dh,00
       mov dl,00
       int 10h
       
           ;****************************** MOSTRAR MENSAJE

       mov ax,datos
       mov ds,ax
       
       lea dx,titulo
       mov ah,9h
       int 21h
       
       lea dx,mensaje
       mov ah,9h
       int 21h
       
           ;****************************** CAPTURA DE TECLAS

       mov ah,08           ; Pausa y captura de datos db espera que el usuario presiona una tecla
       int 21h

       cmp al,13           ; Verifica al presionar ENTER, el cual tiene un codigo ascii
       je llamarAzul       ; Salto Condicional jump equals opcion 1 saltar si es igual a la opcion 1
       
       
       cmp al,50           ; Ascii 50 = numero 2 compara lo que tiene el regisro ah con el ascii 50 en el reg a1
       je llamarMorado
       
       jmp fin             ; Si no escoge ni ENTER ni 2, Sale del programa

       fin:                ; Saca el mensaje por pantalla

       mov ax,4c00h
       int 21h
       
llamarAzul:
      CALL AZULPROC
      
llamarMorado:
      CALL MORADOPROC
      
           ;****************************** STORE PROCEDURE AZUL

AZULPROC PROC NEAR

         mov ah,0
         mov al,3h ; Modo Texto
         int 10h   ; Interrupcion de video
         
         mov ax,0600h ; Limpiar Pantalla
         mov bh,0fh   ; Color de fondo negro, f color de letra blanco
         mov cx,0000h
         mov dx,184Fh
         int 10h
        
         mov ah,02h
         mov bh,00
         mov dh,00
         mov dl,00
         int 10h
         
;//////////////////////////////////////         

      mov ah,06h
      mov bh,1fh     ;2fh
      mov cx,0000h
      mov dx,184fh
      int 10h
      
      mov ax,4c00h
      int 21h
RET

AZULPROC ENDP

;*****************************************STORED PROCEDURE MORADO

MORADOPROC PROC NEAR

           mov ah,06h
           mov bh,5fh        ;2fh;3 para azul, 4 para guinda, 5 morado
           mov cx,0000h
           mov dx,184fh
           int 10h
           
           mov ax,4c00h
           int 21h
           
RET

MORADOPROC ENDP


codigo ends
end inicio               ; Podemos Asignar desde se inicia PC

Trabajo con puerto usb

Programación de puerto USB USB viene de frase en Ingles “Universal Serial Bus” que se utiliza para describir un tipo de puerto en la co...