ترسیم اشکال در اسمبلی

parvazb

عضو جدید
سلام به من کمک کنید چطور اشکال هندسی رو تو اسمبلی بنویسم
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
با سلام،
برای رسم اشکال هندسی تو زبان شیرین اسمبلی فقط نیاز به سرویس روشن کردن پیکسل تو محیط گرافیکی دارید. حالا این هنر برنامه نویسی شماست که چه طور خط های مختلف رو برای رسیدن به شکل بکشید.
کمی رسم دایره متفاوته که می تونید زیربرنامه اش رو از قسمت "برنامه های نوشته شده" بردارید. اگه سؤالتون رو جزئی تر بپرسید بهتر می شه جواب داد!
 

شادمهر69

عضو جدید
با سلام.این کد شامل ترسیم اشکال هندسی از جمله مربع ،مستطیل،مثلث وخط می باشد. می توانید این کد را کپی کرده و اجراش کنید.اگر مشکلی داشتید متوانید به من ایمیل بزنید.shadmehr_1368_10@yahoo.com
page 110,100
TITLE 'Project.asm'
;--------------------------------------------------------
; 1-Define Stack Segment
; ----------------------
;
STACKSG SEGMENT STACK 'STACK'
DW 32H DUP(0)
STACKSG ENDS
;--------------------------------------------------------
; 2-Define Data Segment
; ---------------------
;
DATASG SEGMENT 'DATA'
;
msg0 db ' welcome ','$'
msg1 db 'press key 1 to Drawing Triangle :','$'
msg2 db 'pres key 2 to Drawing Square','$'
msg3 db 'pres key 3 to Drawing Rectangular:','$'
msg4 db 'pres key 4 to Drawing Line: ','$'
msg5 db 'pres key 5 to Exit : ','$'
msg6 db 'press any key to continue... ','$'

row dw 0
col dw 0
len dw 0
tol dw 0

DATASG ENDS
;---------------------------------------------------------
; 3-Define Code Segment
; ---------------------
;
CODESG SEGMENT 'CODE'
ASSUME SS:STACKSG,DS:DATASG,CS:CODESG
;///////////////////////////////////////////////////
Pixels proc
mov al,2h ;color
mov cx,col
mov dx,row
mov ah, 0ch
int 10h
ret
Pixels endp
;-----------------------------------
cls proc near ;tabe pak kardan safhe

mov ah,0 ;;resolation
mov al,12h
int 10h

ret
cls endp ; cls end

;-----------------------------------------
Triangle proc near
mov ah,0 ;;resolation
mov al,12h
int 10h

mov bx,60
i1: mov col,bx
mov row,bx
call Pixels
inc bx
cmp bx,120
jnz i1
mov bx,60
mov dx,60
i2: mov col,bx
mov row,dx
call Pixels
dec bx
inc dx
cmp bx,0
jnz i2
mov bx,0
i3: mov col,bx
mov row,120
call Pixels
inc bx
cmp bx,120
jnz i3

mov ah,1 ;;getch
int 21H


mov ah, 09h ;display message for option 6
lea dx, msg6
int 21h


mov ah,01h
int 21h
jmp l7

ret
Triangle endp
;-------------------------------
sqr proc near
mov ah,0
mov al,12h
int 10h

mov len,100
mov bx,20
s1:
mov row,bx
mov col,20
call Pixels
inc bx
cmp bx,len
jz s2
jmp s1

s2: mov bx,20
s3:
mov row,20
mov col,bx
call Pixels
inc bx
cmp bx,len
jz s4
jmp s3

s4: mov bx,20
s6:
mov row,99
mov col,bx
call Pixels
inc bx
cmp bx,len
jz s7
jmp s6
s7: mov bx,20
s8:
mov row,bx
mov col,99
call Pixels
inc bx
cmp bx,len
jz s5
jmp s8
s5: mov ah,1
int 21H


mov ah, 09h ;display message for option 6
lea dx, msg6
int 21h


mov ah,01h
int 21h
jmp l7

ret
sqr endp
;---------------------------------
rect proc near
mov ah,0
mov al,12h
int 10h

mov len,100
mov bx,20
r1:
mov row,bx
mov col,20
call Pixels
inc bx
cmp bx,len
jz r2
jmp r1

r2: mov bx,20
r3:
mov row,20
mov col,bx
call Pixels
inc bx
cmp bx,200
jz r4
jmp r3

r4: mov bx,20
r6:
mov row,99
mov col,bx
call Pixels
inc bx
cmp bx,200
jz r7
jmp r6
r7: mov bx,20
r8:
mov row,bx
mov col,199
call Pixels
inc bx
cmp bx,len
jz r5
jmp r8
r5:


mov ah,02h
mov dl,2h
mov dh,2h
mov bh,0h
int 10h


mov ah, 09h ;display message for option 6
lea dx, msg6
int 21h


mov ah,01h
int 21h
jmp l7

ret

endp

;------------------------------
line proc near

mov ah,0
mov al,12h
int 10h
mov bx,20
p1: mov row,10
mov col,bx
inc bx
call Pixels
cmp bx,150
jnz p1
mov ah,1
int 21H

mov ah,09h
lea dx,msg6
int 21h

mov ah,01h
int 21h
jmp l7


ret
endp
;----------------------------
;_______________________________
MAIN PROC FAR
MOV AX,DATASG ;Initialize DS
MOV DS,AX ;Initiall
;_______________________________


;chape menu
l1:
mov ah,02h
mov dl,1h
mov dh,1h
mov bh,0h
;-----------------------
mov ah,09h ;chape welcome
lea dx,msg0
int 21h
;-----------------------
mov ah,02h ;;NAME SERVIS
mov dl,10h ;;SOTONE SAFHE
mov dh,2h ;SATRE SAFHE
mov bh,0h
int 10h
mov ah, 09h ;display message for option 1
lea dx, msg1
int 21h



mov ah,02h ;;NAME SERVIS
mov dl,10h ;;SOTONE SAFHE
mov dh,3h ;;SATRE SAFHE
mov bh,0h
int 10h
mov ah, 09h ;display message for option 2
lea dx, msg2
int 21h


mov ah,02h
mov dl,10h
mov dh,4h
mov bh,0h
int 10h
mov ah, 09h ;display message for option 3
lea dx, msg3
int 21h


mov ah,02h
mov dl,10h
mov dh,5h
mov bh,0h
int 10h
mov ah, 09h ;display message for option 4
lea dx, msg4
int 21h

mov ah,02h
mov dl,10h
mov dh,6h
mov bh,0h
int 10h

mov ah,02h
mov dl,10h
mov dh,08
mov bh,0h

mov ah, 09h ;display message for option 5
lea dx, msg5
int 21h

;---------------------------------

;mogayese adade vared shode

l2: mov ah,1
int 21h
cmp al,'1'
jz l3
cmp al,'2'
jz l4
cmp al,'3'
jz l6
cmp al,'4'
jz l5
cmp al,'5'
jz exit
jmp l1
l3: call Triangle
jmp l1

l4: call sqr
jmp l1

l5: call line
jmp l1

l6:call rect
jmp l1

l7:call cls
jmp l1



;///////////////////////////////////////////////////
exit: MOV AX,4C00H ;End
INT 21H ;
MAIN ENDP ;End Proc
CODESG ENDS ;End of Segment
END MAIN ;End of Program
 

Similar threads

بالا