Mune

Solo disponible en BuenasTareas
  • Páginas : 5 (1164 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de marzo de 2011
Leer documento completo
Vista previa del texto
Mis Algoritmos

Ensamblador

* Envía tus aplicaciones o ejemplos en Ensamblador
* Ejemplos en Ensamblador
Menu
suma,resta,multiplica,divide

-------------------------------------------------
Principio del formulario
Búsqueda de ejemplos en Ensamblador
* Búsqueda

Final del formulario
;Autor Jonathan
;URL

Data segment
    label1 DB "Selecciona una operacion $"
   label2 DB "1.- Suma $"
    label3 DB "2.- Resta $"
    label4 DB "3.- Multiplicacion $"
    label5 DB "4.- Division $"
    label6 DB "5.- Salir $"
    label7 DB "Ingrese una opcion $"
    label8 DB "Ingrese numero     $"
    label9 DB "El resultado es $"
    label10 DB "error no divisible entre 0 $"
    label11 DB "`cociente  $"
    label12 DB "residuo $"
    resultado DB 0
   cociente  DB    0
    residuo   DB    0
    numero    DB    0
    signox     DB    0
    r2      DB    ?
    ac      DB    0
   
Data ends

pila segment stack
       
    DW 256 DUP (?)

pila ends
   
code segment

menu proc far
   
    assume cs:code,ds:data,ss:pila
    push ds
    xor ax,ax
    push ax
    mov ax,data
    mov ds,ax
    xor dx,dx
   
    ;interlineado
   mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
    ;interlineado
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h         
    ;imprime seleccion de menu
    mov ah,09h
    mov dx,offset label1
    int 21h
   
    ;interlineado
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int21h
   
    mov ah,09h
    mov dx,offset label2
    int 21h
   
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
   
    mov ah,09h
    mov dx,offset label3
    int 21h
   
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
   
    mov ah,09h
    mov dx,offset label4
    int 21h
   
    mov ah,02h
   mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
       
    mov ah,09h
    mov dx,offset label5
    int 21h
   
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
   
    mov ah,09h
    mov dx,offset label6
    int 21h
   
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
   
    movah,09h
    mov dx,offset label7
    int 21h
       
    ;lee teclado
    mov ah,01h
    int 21h
     
    ;ajunstando el teclado
    xor ah,ah
    sub al,30h
    mov cx,2
    ;verificando opcion
   
    cmp al,1
    jz suma ;se dirige al metodo suma
   
    cmp al,2
    jz resta ;se dirige al metodo resta
                                       
    cmp al,3
    jz mult ;sedirige al metodo multiplik
   
    cmp al,4
    jz divi ;se dirige al metodo dividir
   
    cmp al,5
    jz fin
   
suma:
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h           
    mov ah,09h
    mov dx,offset label8
    int 21h
   
    ;lee teclado
    mov ah,01h
    int 21h
   
    ;verificando si es negativo
    cmp al,2dh
   je signo
       
    ;ajusta teclado
    sub al,30h
    add resultado,al
    jmp return1
   

signo:
    mov ah,01h
    int 21h
    sub al,30h
    neg al
    add resultado,al
    je return1
 
return1: loop suma
         

imp1:
    cmp resultado,00
    jl imp2
    ;interlineado
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
    movAH,09H
    mov DX,OFFSET label9
    int 21H
    jmp imprime
       
       
imp2:
    neg resultado
    ;interlineado
    mov ah,02h
    mov dl,10
    int 21h
    mov ah,02h
    mov dl,13
    int 21h
       
    mov AH,09H
    mov DX,OFFSET label9
    int 21H
    mov ah,02h       
    mov dl,'-'       
    int 21h
    jmp imprime
       
imprime:

               ...
tracking img