nima1364
سه شنبه 04 دی 1386, 05:57 صبح
سلام دوستان
من زیاد اسمبلی وارد نیستم ولی
یه برنامه اسمبلی دارم که می خوام از بین اعداد سه رقمی اعدادی رو چاپ کنه که در رابطه زیر صدق کنند:
n=abc
a^2+b^2=c^2
حالا من برنامه رو نوشتم تریس هم کردم منطقش هم درسته ولی بهم خروجی نمی ده
اصلا توی خروجی نمی ره و پنجره خروجی رو می بنده
فکر کنم تو چاپش مشکل دارم
دوستان اگه ممکنه یه نگاهی بندازند ببینند اشکال کار کجاست
ممنون می شم.فوری لطفا
data_seg segment
a db 3 Dup(?)
a2 db ?
b2 db ?
c2 db ?
m db 10
data_seg ends
code_seg segment
assume cs:code_seg,ds:data_seg
main proc far
mov ax,data_seg
mov ds,ax
mov cx,345
lea si,a
l3:mov ax,cx
add si,2
l1:div m
mov a[si],ah
dec si
cmp al,0
je l2
mov ah,0
jmp l1
l2:lea si,a
mov al,a[si]
mul a[si]
mov a2,al
mov al,a[si+1]
mul a[si+1]
mov b2,al
mov al,a[si+2]
mul a[si+2]
mov c2,al
mov bl,a2
add bl,b2
cmp bl,c2
je prn
dec cx
cmp cx,100
jae l3
jmp ext
prn:lea si,a
prn1:mov dl,a[si]
add dl,30h
mov ah,2h
int 21h
inc si
cmp si,2
jbe prn1
dec cx
cmp cx,344
jae l3
ext:mov ax,4c00h
int 21h
main endp
code_seg ends
End main
من زیاد اسمبلی وارد نیستم ولی
یه برنامه اسمبلی دارم که می خوام از بین اعداد سه رقمی اعدادی رو چاپ کنه که در رابطه زیر صدق کنند:
n=abc
a^2+b^2=c^2
حالا من برنامه رو نوشتم تریس هم کردم منطقش هم درسته ولی بهم خروجی نمی ده
اصلا توی خروجی نمی ره و پنجره خروجی رو می بنده
فکر کنم تو چاپش مشکل دارم
دوستان اگه ممکنه یه نگاهی بندازند ببینند اشکال کار کجاست
ممنون می شم.فوری لطفا
data_seg segment
a db 3 Dup(?)
a2 db ?
b2 db ?
c2 db ?
m db 10
data_seg ends
code_seg segment
assume cs:code_seg,ds:data_seg
main proc far
mov ax,data_seg
mov ds,ax
mov cx,345
lea si,a
l3:mov ax,cx
add si,2
l1:div m
mov a[si],ah
dec si
cmp al,0
je l2
mov ah,0
jmp l1
l2:lea si,a
mov al,a[si]
mul a[si]
mov a2,al
mov al,a[si+1]
mul a[si+1]
mov b2,al
mov al,a[si+2]
mul a[si+2]
mov c2,al
mov bl,a2
add bl,b2
cmp bl,c2
je prn
dec cx
cmp cx,100
jae l3
jmp ext
prn:lea si,a
prn1:mov dl,a[si]
add dl,30h
mov ah,2h
int 21h
inc si
cmp si,2
jbe prn1
dec cx
cmp cx,344
jae l3
ext:mov ax,4c00h
int 21h
main endp
code_seg ends
End main