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
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