martes, 6 de marzo de 2018

Multiplicación número de dos dígitos con número de un dígito, TASM

.model small
.stack
.data
.code
     
 chr1    db      ?
        chr2    db      ?
        chr3    db      ?
        r1              db      ?
        r2              db      ?
        ac              db      0

.startup

        ;cls
        mov ah,00h              ;Function(Set video mode)
        mov al,03               ;Mode 80x25 8x8 16
        int 10h                 ;Interruption Video

        mov ah,01h              ;Function(character read)
        int 21h                 ;Interruption DOS functions
        sub al,30h              ;ajustamos valores
        mov chr1,al             ;[chr1].chr2 * chr3 = ac.r1.r2
     
        mov ah,01h              ;Function(character read)
        int 21h                 ;Interruption DOS functions
        sub al,30h              ;Ajustamos valores
        mov chr2,al             ;chr1.[chr2] * chr3 = ac.r1.r2
     
        mov ah,02h              ;Function(character to send to standard output)
        mov dl,'*'              ;Character to show
        int 21h
     
        mov ah,01h              ;Function(Read character)
        int 21h                 ;Interruption DOS Functions
        sub al,30h              ;Transform(0dec = 30hex)
        mov chr3,al             ;chr1.chr2 * [chr3] = ac.r1.r2
     
        mov ah,02h              ;Character to send to standar output
        mov dl,'='              ;
        int 21h                 ;Interruption DOS functions
     
        ;Realizamos operación
     
        mov al,chr3             ;al = chr3
        mov bl,chr2             ;bl = chr2
        mul bl                  ;AL = chr3*chr2 (BL*AL)
        mov Ah,0h               ;
        AAM                             ;ASCII Adjusment
        mov ac,AH               ;ac = AH (Acarreo)
        mov r2,AL               ;r2 = AL                (Unidad del resultado)
     
        mov al,chr3             ;AL = chr3
        mov bl,chr1             ;BL = chr1
        mul bl                  ;AL = chr1*chr3 (BL*AL)
        mov r1,al               ;r1 = AL                (Decena del resultado)
        mov bl,ac               ;BL = Acarreo anterior
        add r1,bl               ;r1 = r1+ac (r1 + Acarreo)
        mov ah,00h              ;
        mov al,r1               ;AL = r1 (Asignación para el ajust)
        AAM                             ;ASCII Adjustment
        mov r1,al               ;r1 = AL
        mov ac,ah               ;ac = AH (Acarreo para la Centena del resultado)
     
        ;Mostramos resultado
        mov ah,02h           
        mov dl,ac
        add dl,30h
        int 21h                 ;Mostramos ac (Centena)

        mov ah,02H
        mov dl,r1
        add dl,30h
        int 21h                 ;Mostramos r1 (Decena)

        mov ah,02H
        mov dl,r2
        add dl,30h
        int 21h                 ;Mostramos r2 (Unidad)
.exit
end


Ejemplo maestra LOOPZ tasm

.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


Ejemplo de la maestra LOOPZ emu8086

.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,10     ;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


Ejemplo Eduardo tasm potencia de un número

.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


Ejemplo Eduardo emu8086 Potencia de un número

org 100h

.model small

.stack

.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:     ;funcion 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

lunes, 5 de marzo de 2018

Programa con loop 0 al 9 en tasm

.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

Aportación de David Mendoza, LOOP en emu8086


;EMU8086
.model small
.stack 64 .data mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$' repetir db 13,10,"Repitiendo el ciclo $" .code inicio proc far mov ax, @data mov ds, ax mov ah, 09 lea dx, mensaje 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

Aportación de David Mendoza, programa Loop (turbo Assembler)

;Turbo Assembler   

.model small
.stack 64

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
int 21h
sub al, 30h 
mov cl, al
 
ciclo:
        mov ah, 09
        lea dx, repetir
        int 21h
loop ciclo

mov ax,4c00h
int 21h                             

codigo ends
end inicio


Programa con loop del 0 al 9 en emu8086

org 100h

.data
    mensaje db "Programa que utiliza loop e 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


jueves, 1 de marzo de 2018

mensajes con tkinter en python

#Programa que muestra un messagebox con el nombre tecleado#Realizado por: Edgar Alan Hernandez Mijangos
import sys
from Tkinter import *
import tkMessageBox

def saludar():
    tkMessageBox.showinfo("EMERGENTE", "Hola "+nombre.get())

ventana = Tk()
nombre =StringVar()
nombre.set("")

ventana.title("Entradas en tkinter")
ventana.geometry("300x150")

etiqueta1 = Label(ventana,text="Escribe tu nombre: ").place(x=10, y=20)

nombreCaja =Entry(ventana, textvariable=nombre).place(x=130, y=20)

boton1 = Button(ventana, text="Saludo Personalizado",command= saludar).place(x=110, y=100)

ventana.mainloop()

Psy - Gangnam Style Psy - Gangnam Style Animated Rainbow Nyan Cat Animated Rainbow Nyan CatDancing Banana/* Start http://www.cursors-4u.com */ body, a:hover {cursor: url(http://cur.cursors-4u.net/food/foo-2/foo112.ani), url(http://cur.cursors-4u.net/food/foo-2/foo112.png), progress !important;} /* End http://www.cursors-4u.com */Animated Rainbow Nyan Cat