Mune
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:
...
Regístrate para leer el documento completo.