همایش معرفی نرم‌افزار های مفید: جشن تولد ده سالگی فایرفاکس!

 

بچه‌های علوم کامپیوتر به مناسبت ده سالگی فایرفاکس همایشی قراره برگزار کنن، در مورد بنیاد غیرانتفاعی موزیلا و نرم‌افزارهای آزاد مثل فایرفاکس. همایش روزدوشنبه‌ ۲۴ آذر ماه، برگزار میشه.
Firefox Party
Firefox’s 10th birthday party
برای اطلاعات بیشتر میتونین به پست مربوط مراجعه کنید و امیدوارم که همه شرکت کنید.

برنامه ساده به زبان اسمبلی برای نمایش مربع و مستطیل های درون هم

این برنامه بصورتی کار میکنه که مقدار طول ها و تعداد شکل ها رو از Data Segment چک میکنه و بعد از هر بار دور زدن از تعداد ستاره های قابل چاپ شدن کم مینه و cursor رو به داخل shift میکنه تا شکل بعدی رو با ابعاد جدید نمایش بده, سورس رو میتونید از داخل صفحه کپی کنید, این سورس با Emu 8086 نسخه 4 به بالا سازگاره..

; multi-segment executable file template.

data segment
 ; add your data here!
 pkey db "YEAHHHHH!!!..$"
 
 
 ;my data:
 
 
 rac db -2 ;for modifying the position of cursor
 
 wah db 19 ;size of shapes 
 
 round db 5
 
 
 
 
 ;my data ends.
ends

stack segment
 dw 128 dup(0)
ends

code segment
start:
; set segment registers:
 mov ax, data
 mov ds, ax
 mov es, ax

 ; add your code here 
 
 ;my code: 


sto:;star row
 MOV CH,wah ;counter for stars, starting at 19
 MOV CL,rac
 MOV BL,rac
 
 INC CL
 INC CL
 INC BL
 INC BL
 
 
nxc:MOV AH,2 ;
 MOV DL,CL ;>columns.
 MOV DH,BL ;>modifying the cursor position
 MOV BH,0 ; starting from -2(0).
 INT 10H ;
 
 
 MOV DL,'*' ;
 MOV AH,2 ;>printing stars
 INT 21H ;
 
 INC CL
 DEC CH ;1 star rows
 JNZ nxc ;
 
 
 ;star column
 MOV CH,wah
 
nxr:MOV AH,2 ;
 MOV DL,CL ;>columns:static
 MOV DH,BL ;>rows:dynamic
 MOV BH,0 ;
 INT 10H ; 
 
 
 
 MOV DL,'*' ;
 MOV AH,2 ;>printing stars
 INT 21H ;
 
 INC BL
 DEC CH
 JNZ nxr
 
 ;star row back
 MOV CH,wah
 
nxt:MOV AH,2 ;
 MOV DL,CL ;>columns:dynamic
 MOV DH,BL ;>rows:static
 MOV BH,0 ;
 INT 10H ;
 
 MOV DL,'*' ;
 MOV AH,2 ;>printing stars
 INT 21H ;
 
 DEC CL
 DEC CH
 JNZ nxt
 
 
 ;star column back
 MOV CH,wah
 
nxs:MOV AH,2 ;
 MOV DL,CL ;>columns:dynamic
 MOV DH,BL ;>rows:static
 MOV BH,0 ;
 INT 10H ;
 
 MOV DL,'*' ;
 MOV AH,2 ;>printing stars
 INT 21H ;
 
 
 DEC BL
 DEC CH
 JNZ nxs
 
 
 
 
 ;next round
 
 INC rac
 INC rac
 
 DEC wah
 DEC wah
 DEC wah
 DEC wah
 
 
 DEC round
 JNZ sto
 
 
 
 ;set position for "wait for any key...." 
 
 MOV AH,2 ;
 MOV DL,4 ;>columns:dynamic
 MOV DH,22 ;>rows:static
 MOV BH,0 ;
 INT 10H ; 
 
 
 
 
 ;my code ends.
 
 lea dx, pkey
 mov ah, 9
 int 21h ; output string at ds:dx
 
 ; wait for any key.... 
 mov ah, 1
 int 21h
 
 mov ax, 4c00h ; exit to operating system.
 int 21h 
ends

end start ; set entry point and stop the assembler.

برنامه ساده با زبان اسمبلی برای کشیدن شکل یک مثلث با ارتفاع دلخواه کاربر

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

سورس رو از اینجا میتونید کپی کنید, یا فایل. رو مستقیم دانلود کنید:

; multi-segment executable file template.

data segment
    ; add your data here!
    pkey db "press any key...$"
    inmsg DB "Please enter the triangle's height: $"
    mval DB 0
    hr DB 0
    row DB 0
    starrow DB 1
    sptemp DB 0
    strtemp DB 0
    strtemp2 DB 0
    
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ; add your code here
    
    ; my code:
    
    LEA DX,inmsg ;asking user for entering the height
    MOV AH,9  ;asking user for entering the height
    INT 21H   ;asking user for entering the height
    
    MOV AH,1 ;getting the height value
    INT 21H  ;ascii character of height is saved in AL reg
    
    SUB AL,48 ;converts the ascii code to integer
    INC AL 
    MOV BL,AL ;height is saved in BL reg (for horizontal spaces)
    MOV mval,BL
    MOV BH,AL
    ADD BH,BH ;BH = 2 * ENTERED_VALUE (for lower part)
    DEC BH    ;real horizontal line value   
    MOV hr,BH
    MOV CH,1 ;for counting the stars with CH reg
    MOV CL,0 ;for checking the number of CURRENT stars in a row
    
    
    MOV DL,10   ;going one level down    |
    MOV AH,2    ;going one level down    |
    INT 21H     ;going one level down    |
                                         ;>ENTER
    MOV DL,13   ;line beginning          |
    MOV AH,2    ;line beginning          |
    INT 21H     ;line beginning          |
                 
                 
rcn:INC row     ;|>counts the ROW number and saves in row
    MOV BH,row  ;|
    MOV BL,mval ;|
    SUB BL,BH   ;|
    jz  j1      ;|>to finish the program!
                    
 sp:MOV DL,' '  ;|
    MOV AH,2    ;|>PRINTING SPACE
    INT 21H     ;|
    
    
    DEC BL  ;using BL reg for counting the spaces
    JNZ sp  ;prints space till BL > (mval-row) 
    
    
            
    
    
    MOV strtemp,0
nxt:MOV DL,'*'  ;puts star character in DL reg|
    MOV AH,2    ;prints the star              |>PRINTING one STAR
    INT 21H     ;prints the star              |  
    INC strtemp
    
    MOV CH,starrow ;checks the number of currently printed stars
    SUB CH,strtemp
    JNZ nxt
             
        
    
ent:MOV DL,10   ;going one level down    |
    MOV AH,2    ;going one level down    |
    INT 21H     ;going one level down    |
                                         ;>ENTER
    MOV DL,13   ;line beginning          |
    MOV AH,2    ;line beginning          |
    INT 21H     ;line beginning          |
    
    
    

    INC starrow         ;|
    INC starrow         ;|
                        ;|> decides how many stars should be printed in NEXT ROW    
    JMP rcn             ;|
            
 j1:MOV DL,7   ;finishing the program with a beep!     
    MOV AH,2
    INT 21H
    JNZ J1
    
    ; my code end
            
    lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx
    
    ; wait for any key....    
    mov ah, 1
    int 21h
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

برای دانلود فایل سورس روی دانلود کلیک کنید.

download