PDA

View Full Version : اشکال در کشیدن مستطیل



roxen13
دوشنبه 27 آذر 1385, 18:47 عصر
سلام
کد زیر برنامه ای برای کشدن مستطیل است ولی اجرا نمی شه:ناراحت: .می شه اشکال برنامه را بگید.

.model small
.stack 256
.code
;______________________
rec proc
push bp
mov bp,sp
mov cx,[bp+10] ;y1
mov bh,0
mov ax,[bp+4];color
l4:
cmp cx,[bp+6];y2
jz l1
mov dx,[bp+12];x1
l3:
cmp dx,[bp+8];x2
jz l2
mov ah,0ch
int 10h
inc dx
jmp l3
l2:
inc cx
jmp l4
l1:
pop bp
ret 10
rec endp
;________________________
main proc far
mov ax,@data
mov ds,ax
mov ax,15;x1
push ax
mov ax,15;y1
push ax

mov ax,30;x2
push ax
mov ax,30;y2
push ax
mov ah,00h
mov al,12h
int 10h
mov ah,0
push ax
call rec
mov ax,4c00h
int 21h
main endp
end main

roxen13
سه شنبه 28 آذر 1385, 19:05 عصر
کدی که نوشته بودم درست بود.

یاسی صبوری
یک شنبه 03 دی 1385, 13:32 عصر
سلام من اشکال اینو پیدا نکردم ولی اگه بخواهید یه سورس بلدم که مستطیل می کشد.

D32.00110
سه شنبه 05 دی 1385, 09:16 صبح
سلام من اشکال اینو پیدا نکردم ولی اگه بخواهید یه سورس بلدم که مستطیل می کشد.

اگه میشه بدید و یه کم درباره گرافیم توی اسمبلی بگید ...

roxen13
جمعه 22 دی 1385, 16:40 عصر
کد کشیدن مستطیل :

.model small
.stack 256
.code
;______________________
rec proc
push bp
mov bp,sp
mov cx,[bp+10] ;y1
mov bh,0
mov ax,[bp+4];color
l4:
cmp cx,[bp+6];y2
jz l1
mov dx,[bp+12];x1
l3:
cmp dx,[bp+8];x2
jz l2
mov ah,0ch
int 10h
inc dx
jmp l3
l2:
inc cx
jmp l4
l1:
pop bp
ret 10
rec endp
;________________________
main proc far
mov ax,@data
mov ds,ax
mov ax,15;x1
push ax
mov ax,15;y1
push ax

mov ax,30;x2
push ax
mov ax,30;y2
push ax
mov ah,00h
mov al,13h
int 10h
mov ax,3
push ax
call rec
MOV AH,00H
INT 16H
mov ax,4c00h
int 21h
main endp
end main

اون کدی که اول هم نوشته بودم درست بود فقط این وقفه رو کم داشت برای دیدن نگه داشتن صفحه نمایش.
اگه از دوستان کسی کد کشیدن مثلث یا دایره رو داره خیلی ممنون می شم اگه بذاره.

Younes
یک شنبه 24 دی 1385, 13:17 عصر
سلام
برنامه رسم مثلث :


.model small
.stack 256
.code
;______________________
rec proc
jmp start
count dw 0
start :
push bp
mov bp,sp
mov di,[bp+6] ; X
mov count,di
mov bh,0
mov si,[bp+10] ; H
add si,[bp+8]
mov dx,[bp+8] ; Y
mov ax,[bp+4];color
l4:
cmp dx,si ;H
jz l1
mov cx,di
l3:
cmp cx,count
ja l2
mov ah,0ch
int 10h
inc cx
jmp l3
l2:
inc dx
dec di
inc count
jmp l4
l1:
pop bp
ret 10
rec endp
;________________________
main proc far
mov ax,@data
mov ds,ax
mov ax,20H ; H
push ax
mov ax,15H;y1
push ax
mov ax,90H;X
push ax
mov ax,4 ; color
push ax

;mov ax,30;x2
;push ax
;mov ax,30;y2
;push ax
mov ah,00h
mov al,13h
int 10h
;mov ax,3
;push ax
call rec
mov ah,0
int 16H
MOV AH,00H
mov al,3
INT 10H
mov ax,4c00h
int 21h
main endp
end main


این برنامه مختصات راس مثلث و طول ارتفاع آنرا گرفته و مثلث را رسم می کند در انتها هم از مد گرافیک بیرون میآید.

kaikaoos
دوشنبه 07 اسفند 1385, 16:49 عصر
سلام.بابت این برنامه ممنون. شاید روزی به دردم بخورد.

Smart User
جمعه 18 اسفند 1385, 22:39 عصر
سلام دوستان.
این برنامه رو من حدود 2 سال پیش نوشتم . البته الان که فکرشو می کنم می بینم عجب حوصله ای داشتم .. :لبخند: . قبلا یه بار کد اجراییش رو با یک ID دیگه تو سایت گذاشتم ولی به دلایلی دیگه اون ID رو ندارم. به هر حال این همون برنامه نقاشی است که با اسمبلی نوشته شده . و برای راحت تر شدن دیباگ اون ، تحت tcdos نوشتمش( منظورم صدا زدن تابع ها و تعریف متغیر هاست ) . فکر کنم چیزایی که دوستان میخوان به علاوه چیزهای دیگه تو این برنامه به طور کامل بهش برسن.

این برنامه رو تحت tcdos کامپایل و اجرا کنید.

موفق باشید