hosein320
یک شنبه 03 دی 1391, 13:27 عصر
سلام من یه سوال داشتم یعنی یه کمک میخواستم از دوستان یه برنامه دارم که میخوام با روال بنویسمش
البته برنامه آماده است فقط میخوام با روال بنویسمش ممنون میشم کمکم کنید:قلب:
اینم کد برنامه است که باید با روال نوشته بشه:لبخندساده:
http://uploadkon.ir/?file=Project%20III.rar
hosein320
یک شنبه 03 دی 1391, 15:23 عصر
کسی نیست کمک کنه:گریه:
خیلی فوریه خواهش میکنم
rayarasool
یک شنبه 03 دی 1391, 19:15 عصر
روال منظورتون زیر برنامست؟؟
hosein320
یک شنبه 03 دی 1391, 22:09 عصر
روال منظورتون زیر برنامست؟؟
اره فکر کنم
شبیه تابع تو بقیه زبونا
rayarasool
دوشنبه 04 دی 1391, 20:21 عصر
فکر میکنم اگه کد رو بزارید بهتر باشه !!!
اینجوری هم من میتونم ببینم هم همه ی دوستان .
اینجوری لینک ندید (لطفا)
hosein320
دوشنبه 04 دی 1391, 23:35 عصر
اینم کدش
فط من عجله دارم
datasg segment 'data'
buf db 49 dup('$')
satr db ?
sotoon db ?
datasg ends
codesg segment
main proc far
assume cs:codesg,ds:datasg
mov bx,datasg
mov ds,bx
;ßÇÏÑ Çæá
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,20h
mov al,25
mov ah,6h
int 10h
;ßÇÏÑÏæã
mov ch,10
mov cl,5
mov dh,16
mov dl,11
mov bh,40h
mov al,7
mov ah,6h
int 10h
mov dh,10
mov dl,5
mov bh,0
mov ah,2h
int 10h
mov satr,dh
mov sotoon,dl
mov si,offset buf
a1:
mov ah,8h
int 21h
cmp al,'e'
je del
cmp al,'q'
jne en
jmp end
en:
cmp al,'r'
je right
cmp al,'l'
je leftt
cmp al,'u'
je upp
cmp al,0dh
je ent
cmp al,'d'
je downn
jne def
def:
cmp al,61h
jae if
jmp else
if:
cmp al,7ah
jbe iff
jmp else
iff:
mov [si],al
mov dl,[si]
mov ah,2h
int 21h
jmp right
else:
cmp al,41h
jae ifff
jmp else1
ifff:
cmp al,5ah
jbe iffff
jmp else1
iffff:
mov [si],al
mov dl,[si]
mov ah,2h
int 21h
jmp right
else1:
jmp a1
del:
mov dl,' '
mov ah,2h
int 21h
mov cl,'$'
mov [si],cl
jmp right
endd:
jmp end
leftt:
jmp left
upp:
jmp up
downn:
jmp down
ent:
mov bl,'$'
cmp [si],bl
je a1
mov bl,[si]
xor bl,20h
mov [si],bl
mov dl,[si]
mov ah,2h
int 21h
jmp right
right:
cmp sotoon,11
je f
jb right1
f:
cmp satr,16
je right3
jne right2
right1:
add sotoon,1
inc si
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
cmp sotoon,11
ja right2
jmp a1
right2:
cmp satr,16
je right3
add satr,1
mov sotoon,5
inc si
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
right3:
mov dh,16
mov dl,11
mov bh,0
mov ah,2h
int 10h
jmp a1
mov si,49
jmp a1
left:
cmp sotoon,5
je ff
ja left1
ff:
cmp satr,10
je left3
jne left2
left1:
sub sotoon,1
dec si
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
cmp sotoon,5
jb left2
jmp a1
left2:
cmp satr,10
je left3
sub satr,1
dec si
mov sotoon,11
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
left3:
mov dh,10
mov dl,5
mov bh,0
mov ah,2h
int 10h
mov si,0
jmp a1
up:
cmp satr,10
je up1
ja up2
up2:
sub si,7
dec satr
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
cmp satr,10
je up1
jmp a1
up1:
mov dh,10
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
down:
cmp satr,16
je down1
ja down2
down2:
add si,7
inc satr
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
down1:
mov dh,16
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
end:
mov ah,4ch
int 21h
main endp
codesg ends
end main
end
rayarasool
سه شنبه 05 دی 1391, 08:28 صبح
با سلام
متاسفانه برنامه شما خیلی زیاد و من هم نمیتونم براتون همشو بنویسم اما یه بخشیش رو انتخاب کردم تا نحوه رو یادتون بدم.
در کد زیر :
cmp satr,16
je down1 //در اینجا میشه از نوشتن جامپ خودداری کرد , و اون رو به call تغییر داد .
ja down2 //این جا هم به همین صورت...
down2: حالا این عبارت را برداشته و کل کارهایی که مخصوص down2 هست رو بیرون برنامه اصلی که احتمالا با اسم main هست مینویسیم ما باید برای این کار مثل main خط زیر را بنویسید (اما فراخوانی اش با همان برچسب گذاری در جامث ها فرقی نمیکند. خطی که باید اضافه شود:
(down2 proc near )
البته دقت داشته باشید که درون زیربرنامه متغیر های که استفاده شده اند و نمیخواهید در کل برنامه تغییر کنند را در ابتدا درون استک ریخته و در پایان بردارید.
add si,7
inc satr
mov dh,satr
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
down1: //برای این روال هم همان کار بالا را انجام دهید .
mov dh,16
mov dl,sotoon
mov bh,0
mov ah,2h
int 10h
jmp a1
در آخر call هم دستور ret را قرار داده و در برنامه اصلی پرش های jmp a1 را قرار دهید .
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.