Está en la página 1de 9

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 int 21h mov ah,09h mov dx,offset label2 int 21h mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h

mov ah,09h mov dx,offset label3 int 21h mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h

mov ah,09h mov dx,offset label4 int 21h mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h

mov ah,09h mov dx,offset label5 int 21h mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h

mov ah,09h mov dx,offset label6 int 21h mov mov int mov ah,02h dl,10 21h ah,02h

mov dl,13 int 21h mov ah,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 ;se dirige al metodo multiplik cmp al,4 jz divi ;se dirige al metodo dividir cmp al,5 jz fin suma: mov mov int mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h ah,09h dx,offset label8 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 mov AH,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 mov int mov mov int jmp imprime: MOV MOV MOV DIV AH,0 AL,resultado CL,10 CL AH,09H DX,OFFSET label9 21H ah,02h dl,'-' 21h imprime

ADD AL,30H ADD AH,30H; CONVIRTIENDO A DECIMAL MOV BL,AH MOV DL,AL MOV AH,02H;IMPRIME LA DECENA INT 21H MOV DL,BL MOV AH,02H

INT 21H;IMPRIME LA UNIDAD mov cx,2 jmp menu resta: mov mov int mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h ah,09h dx,offset label8 21h

;lee teclado mov ah,01h int 21h ;verificando si es negativo cmp al,2dh je signor ;ajusta teclado sub al,30h cmp cx,2 je etiqueta1 sub resultado,al jmp return2 etiqueta1: mov resultado,al jmp return2 signor: mov ah,01h int 21h sub al,30h neg al cmp cx,2 je etiqueta1 sub resultado,al je return2 return2: loop resta jmp imp1 mult: mov mov int mov mov int mov mov int ah,02h dl,10 21h ah,02h dl,13 21h ah,09h dx,offset label8 21h

;lee teclado mov ah,01h int 21h ;verificando si es negativo cmp al,2dh

je signom sub al,30h cmp cx,2 je etiqueta2 mov ah,0 mul resultado jmp return3 etiqueta2: mov resultado,al jmp return3 signom: mov ah,01h int 21h sub al,30h neg al cmp cx,2 je etiqueta2 mov ah,0 mul resultado jmp return3 return3:loop mult mov resultado,al jmp imp1 mov signox,0 divi: 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 signod sub al,30h cmp cx,2 je etiqueta3 cmp al,0 je falla mov ah,0 mov numero,al mov al,resultado div numero jmp return4 etiqueta3: mov resultado,al jmp return4 signod: mov ah,01

int 21h sub al,30h inc signox cmp cx,2 je etiqueta3 mov ah,0 mov numero,al mov al,resultado div numero jmp return4 return4:loop divi mov cociente,al mov residuo,ah mov resultado,al jmp imp3 falla: mov ah,9 mov dx, offset label10 int 21h jmp divi imp3: mov mov int mov mov int mov mov int jmp ah,02h dl,10 21h ah,02h dl,13 21h AH,09H DX,OFFSET label9 21H imprimedivi

imprimedivi: MOV AL,resultado MOV ADD ADD MOV CH,30H AL,CH AH,CH BL,AH

MOV AH,9 MOV DX,OFFSET label11 INT 21H cmp signox,1 jz cambio jmp termina cambio: mov mov int mov dl,"-" ah,02h 21h signox,0

termina: MOV ADD MOV MOV INT

DX,0 cociente,30H DL,cociente AH,02H ;IMPRIME EL COCIENTE 21H

MOV AH,9 MOV DX,OFFSET label12 INT 21H MOV ADD MOV MOV INT DX,0 residuo,30H DL,residuo AH,02H ;IMPRIME EL RESIDUO 21H

jmp menu fin: ret menu endp code ends end menu Lo ms popular Suma dos numeros sin importar el acarreo Calculadora Aritmtica Bsica Realiza la suma, resta, multiplicacin o division de dos nmeros del 0 al 9. Menu Lee Cadena y la muestra en una coordenada especifica Binario a Decimal ensamblador suma,resta,multiplicacion y divide Factorial comparacion Los 10 mas visitados Suma dos numeros sin importar el acarreo Realiza la suma, resta, multiplicacin o division de dos nmeros del 0 al 9. Calculadora Aritmtica Bsica Binario a Decimal ensamblador Tablas de multiplicar Menu Factorial Limpia pantalla y cambia el color del fondo Mayor, Menor o Igual Ultimos 10 agregados realizar un margen Menu duplicar palabra crear carpeta Almacena contrasea y la muestra suma,resta,multiplicacion y divide posiciones del cursor en cualquier momento comparacion

Captura Cadena rotabit o kit de 16 bits |

También podría gustarte