برای دیدن نسخه كامل اینجا را كلیك كنید : راهنمایی در مورد برنامه ای با وقفه ها
سلام دوستان، يه برنامه ميخوام با استفاده از وقفه ها در مد گرافيكي 480*640 كه ابتدا كرسل رو وسط صفحه نمايش تنظيم كنه سپس با فشردن كليدهاي پيكاني در چهار جهت چپ ،راست ، بالا و پايين پيكسل در محل مكان نما روشن بشه و با فشردن متوالي كليدها خط هاي عمودي و افقي ترسيم كنه و با زدن space يك ستاره چاپ كنه. خيلي فوري .لطفا راهنماييم كنيد:(
sayyad84
2012/1/13, 11:23 PM
با سلام،
برنامه ی طولانی ایه! شما شروع کنید و بخش بخش سؤالاتون رو بپرسید!
سلام دوست عزيز
من برنامه رو تقريبا كد زدم اما error داره اول اينكه مد گرافيكي كه تنظيم ميكنم ايراد ميگيره ( هر مد گرافيكي) و اصلا از مد متني به گرافيكي نميره. اگر ميشه من برنامه رو براتون بفرستم و شما بگيد كه ايرادش چيه كه اجرا نميده . تا 2 بهمن بايد تحويل بدم به استاد
stseg segment stack 'stack'
dw 32 dup ('?')
stseg ends
;----------------------------------
codseg segment 'code'
assume cs:codseg,ss:stseg
main proc far
; setmode
; --------------
mov ah,00h
mov al,8h
int 10h
; setcurser
; --------------
mov ah,02h
mov bh,00h
mov dh,50h
mov dl,64h
int 10h
; --------------
back:mov ah,10h
int 16h
mov dx,50h
mov cx,64h
cmp al,48h
je up
cmp al,50h
je down
cmp al,4bh
je left
cmp al,4dh
je right
je p1
; --------------
up:mov ah,0ch
mov al,07h
int 10h
inc dx
loop back
; --------------
down:mov ah,0ch
mov al,07h
int 10h
dec dx
loop back
; --------------
left:mov ah,0ch
mov al,07h
int 10h
dec cx
loop back
; --------------
right:mov ah,0ch
mov al,07h
int 10h
inc cx
loop back
; --------------
p1:mov ax,4c00h
int 21h
main endp
codseg ends
end main
sayyad84
2012/1/16, 04:35 PM
با سلام،
نکته ی مهم در استفاده از حالت گرافیکی اینه که Stack رو باید از حد معمول بزرگتر بگیرید! مثلاً 256
سلام و ممنون از راهنماييتون
من طبق راهنمايي شما سايزش رو بزرگ در نظر گرفتم اما زمان اجرا صفحه رو با رنگ سبز و خطهاي مشكي كه به بالا حركت ميكرد نمايش داد.
شايد جاي ديگه تو كد هام خطا دارم . لطفا راهنماييم كنيد.
sayyad84
2012/1/16, 10:51 PM
خواهش می کنم!
دقت کنید که به CX باید قبل از شروع حلقه مقدار بدید نه داخل حلقه!!
بازم ممنون بابت اينكه وقت ميگذاريد و جواب ميدين
من CX رو جابجا كردم اما بازم مشكل خطهاي صفحه رو دارم. مشكل من چيه؟؟؟؟ برنامه من درسته ؟؟؟؟ به خدا وقت ندارم الانم امتحانامه. بگيد چكار كنم
sayyad84
2012/1/17, 10:44 PM
با سلام،
لازمه که برنامه ی تغییریافته رو هم اینجا بذارید!
مگه قرار نیست که به ازای هر بار فشردن کلیدهای جهت دار فقط یه پیکسل از سمت فشرده شده روشن بشه؟ در این صورت به حلقه چه احتیاجی هست؟شما ورودی رو می گیرید، به label مناسب می رید، یه پیکسل روشن می کنید و برمی گردید برای ورودی بعدی!
سلام، بازم مشكل صفحه رو دارم:confused:
stseg segment stack 'stack'
dw 256 dup ('?')
stseg ends
;----------------------------------
codseg segment 'code'
assume cs:codseg,ss:stseg
main proc far
; setmode
; --------------
mov ah,00h
mov al,8h
int 10h
; setcurser
; --------------
mov ah,02h
mov bh,00h
mov dh,50h
mov dl,64h
int 10h
; --------------
mov dx,50h
mov cx,64h
mov ah,10h
int 16h
cmp al,48h
je up
cmp al,50h
je down
cmp al,4bh
je left
cmp al,4dh
je right
je p1
; --------------
up:mov ah,0ch
mov al,07h
int 10h
inc dx
; --------------
down:mov ah,0ch
mov al,07h
int 10h
dec dx
; --------------
left:mov ah,0ch
mov al,07h
int 10h
dec cx
; --------------
right:mov ah,0ch
mov al,07h
int 10h
inc cx
; --------------
p1:mov ax,4c00h
int 21h
main endp
codseg ends
end main
sayyad84
2012/1/18, 04:49 PM
با سلام،
این مقادیر dec cx یا dec dx رو بالای int 10h بنویسید. اول تغییر رو اعمل کنید بعد پیکسل رو روشن کنید.
سلام ،همونطور كه فرمودين جابجا كردم، اما مشكل بازم هست.نميشه يه لطفي كنيد و اشكالات كلي برنامه من رو بگيد. چون فكر ميكنم برنامه من خيلي ايراد داره.
stseg segment stack 'stack'
dw 256 dup ('?')
stseg ends
;----------------------------------
codseg segment 'code'
assume cs:codseg,ss:stseg
main proc far
; setmode
; --------------
mov ah,00h
mov al,8h
int 10h
; setcurser
; --------------
mov ah,02h
mov bh,00h
mov dh,50h
mov dl,64h
int 10h
; --------------
mov dx,50h
mov cx,64h
mov ah,10h
int 16h
cmp al,48h
je up
cmp al,50h
je down
cmp al,4bh
je left
cmp al,4dh
je right
je p1
; --------------
up:inc dx
mov ah,0ch
mov al,07h
int 10h
; --------------
down:dec dx
mov ah,0ch
mov al,07h
int 10h
; --------------
left:dec cx
mov ah,0ch
mov al,07h
int 10h
; --------------
right:inc cx
mov ah,0ch
mov al,07h
int 10h
; --------------
p1:mov ax,4c00h
int 21h
main endp
codseg ends
end main
سلام ،همونطور كه فرمودين جابجا كردم، اما مشكل بازم هست.نميشه يه لطفي كنيد و اشكالات كلي برنامه من رو بگيد. چون فكر ميكنم برنامه من خيلي ايراد داره.
stseg segment stack 'stack'
dw 256 dup ('?')
stseg ends
;----------------------------------
codseg segment 'code'
assume cs:codseg,ss:stseg
main proc far
; setmode
; --------------
mov ah,00h
mov al,8h
int 10h
; setcurser
; --------------
mov ah,02h
mov bh,00h
mov dh,50h
mov dl,64h
int 10h
; --------------
mov dx,50h
mov cx,64h
mov ah,10h
int 16h
cmp al,48h
je up
cmp al,50h
je down
cmp al,4bh
je left
cmp al,4dh
je right
je p1
; --------------
up:inc dx
mov ah,0ch
mov al,07h
int 10h
; --------------
down:dec dx
mov ah,0ch
mov al,07h
int 10h
; --------------
left:dec cx
mov ah,0ch
mov al,07h
int 10h
; --------------
right:inc cx
mov ah,0ch
mov al,07h
int 10h
; --------------
p1:mov ax,4c00h
int 21h
main endp
codseg ends
end main
sayyad84
2012/1/19, 09:47 AM
با سلام،
در اون صورت چه نيازي به تلاش شما بود؟!!
بعد از هر كليد و چاپ يه پيكسل بايد به ابتداي برنامه jmp كنيد. يعني به mov ah,10h! براي اين كه كليد جديدي بگيره!
سلام، به خاطر كمبود وقت اين حرفو زدم. چون 2 بهمن بايد تحويل بدم. در هر صورت ممنون
من تغييرات رو دادم.اما مشكل خطهاي صفحه ....!!!
sayyad84
2012/1/20, 09:35 PM
با سلام،
برنامه رو از تاپیک "برنامه های نوشته شده" بردارید، فقط یه کمی دقت نیاز داشت!
سلام،ازتون يه دنيا ممنون،اميدوارم هر آرزويي دارين بهش برسين،
فقط يه لطف ديگه ميكنين، من تو برنامه وقتي بين حركت پيكانها space رو ميزنم بايد ستاره چاپ كنه من اين برنامه رو دارم البته از يكي ديگه گرفتم و با برنامه تركيب كردم اما بازم اجرا نميده. من اين دستور رو بذارم شما يه كاريش ميكنين:redface:
star db 0,0,0,0,0,0,0
db 0,1,1,0,1,1,0
db 0,0,1,1,1,1,0
db 1,1,1,1,1,1,1
db 0,0,1,1,1,0,0
db 0,1,1,0,1,1,0
db 0,0,0,0,0,0,0
push ax
push bx
push dx
push cx
mov al,07
mov ah,07
lea si,star
mov bl,[si]
mov bl,0
je p2
push ax
push bx
mov ah,0ch
mov bh,00h
int 10h
pop bx
pop ax
p2:
inc cx
inc si
dec al
jnz p1
mov al,07
inc dx
pop cx
push cx
dec ah
jnz p1
pop cx
pop dx
pop bx
pop ax
Powered by vBulletin® Version 4.1.12 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.