Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - PrideJoy

#1
ASM / Ayuda urgente... nota del año...
12 Junio 2014, 19:13 PM
Hola amigos muy buenas necesito ayuda..
tengo este codigo y la verdad no entiendo mucho sobre este lenguaje. sirve para hacer una suma de dos numero pero de dos cifras cada uno, ahora tengo que hacer que sume dos numero mismo pero que cada uno sea de 4 cifras... es urgente ayudenme sii..

codigo actual:

.model small
.stack
.data

m1 db "1 Suma",10,13
  db "Presione enter para salir ",10,13,"$"
m2 db "Ingrese el primer numero",10,13,"$"
m3 db 10,13,10,13,"Ingrese el segundo numero",10,13,"$"
m4 db 10,13,10,13,"El resultado es: $"

v db ?
w db ?
x db ?
y db ?
z db ?

.code
INICIO:

call borrar

mov ax,@data
mov ds,ax

lea dx,m1
call mens
tecle:
call tecla
cmp al,13
je salir
cmp al,49
je ingreso1
ja tecle
jb tecle


salir:
call tecla
call fin

ingreso1:
call borrar
lea dx,m2
call mens
;---------------------------------------
wr:
call tecla
cmp al,13
je cerow
loop blockw

blockw:
cmp al,48
jb wr
cmp al,57
ja wr
loop mostrarw

cerow:
mov al,48
loop mostrarw


mostrarw:
call caract
mov w,al
loop xr

;-------------------------------------------
xr:
call tecla
cmp al,13
je cerox
loop blockx

blockx:
cmp al,48
jb xr
cmp al,57
ja xr
loop mostrarx

cerox:
mov al,w
mov x,al
mov al,48
mov w,al
mov al,x
loop mostrarx


mostrarx:
mov x,al
call borrar
lea dx,m2
call mens
mov al,w
call caract
mov al,x
call caract
loop ingreso2


ingreso2:
lea dx,m3
call mens
;-------------------------------------------

yr:
call tecla
cmp al,13
je ceroy
loop blocky

blocky:
cmp al,48
jb yr
cmp al,57
ja yr
loop mostrary

ceroy:
mov al,48
loop mostrary


mostrary:
call caract
mov y,al
loop zr

;-------------------------------------------

zr:
call tecla
cmp al,13
je ceroz
loop blockz

blockz:
cmp al,48
jb zr
cmp al,57
ja zr
loop mostrarz

ceroz:
mov al,y
mov z,al
mov al,48
mov y,al
mov al,z
loop mostrarz


mostrarz:
mov z,al
call borrar
lea dx,m2
call mens
mov al,w
call caract
mov al,x
call caract
lea dx,m3
call mens
mov al,y
call caract
mov al,z
call caract
loop resz


resz:
mov v,48
mov al,x
add z,al
sub z,48
mov al,z
cmp al,57
ja cifra
jb resw


cifra:
sub al,10
mov z,al
mov v,49
loop resw

resw:
mov al,y
add w,al
sub w,48
mov al,v
mov v,48
add w,al
sub w,48
mov al,w
cmp al,57
ja cifra1
jb mostrares

cifra1:
sub al,10
mov w,al
mov v,49
jb mostrares

mostrares:
lea dx,m4
call mens
mov al,v
call caract
mov al,w
call caract
mov al,z
call caract
call tecla
jmp inicio



;-------------------------------------------


tecla proc near
mov ah,07h
int 21h
ret
tecla endp  

mens proc near
mov ah,09h
int 21h
ret
mens endp

caract proc near
mov dl, al
mov ah,02h
int 21h
ret
caract endp


fin proc near
mov ax,4c00h
int 21h
ret
fin endp


borrar proc near
mov ax,0003h
int 10h
ret
borrar endp

end INIcio