نحوه درخواست برای نوشتن کد

با عرض سلام و خسته نباشید به دوستان دانشجو .

این وبلاگ برای راحتی شما دوستان ایجاد شده تا بتوانید کد های مورد نیاز خود را از آن بردارید .

یک سری از کد ها بصورت طبقه بندی شده موجود است .

برای نوشتن کدهای جدید میتونید با شماره 4442-480-0938 تماس بگیرید .

هزینه نوشتن کدهای جدید به صورت توافقی می باشد .

مثلا نوشتن کدی مثل نمونه کدهای سی و سی پلاس پلاس که موجود است بین 15 تا 20 هزار تومان است .

البته این قیمتها مربوط به سال 1392 می باشد .

نحوه واریز مبلغ به حساب برنامه نویس بصورت تلفنی گفته خواهد شد .

برای ارسال ایمیل به برنامه نویس آدرس زیر موجود است .

Majid_Ahadi@hotmail.com

در صورتی که هرگونه سوالی داشتید با شماره موبایل ذکر شده در قسمت بالا تماس بگیرید .

در صورتی که کد هارو کپی کردید و دیدید کار نمیکنه احتمالا به خاطر سیستم بلاگفاست که نمیشه کد رو کپی کرد و کد رو به عنوان تگ های اچ تی ام ال میبینه ، ایمیل بزنید اصل فایل رو بفرستم .

با تشکر .

1392/6/10


شمردن حروف بزرگ در اسمبلی

.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 'PLEASE ENTER YOUR SENTENCE: $'
MSG2 DB 0DH,0AH,'THE NUMBER OF CAPITAL LETTERS IN SENTENCE :$'
MSG3 DB 0DH,0AH,'You have entered more than 19 CAPITAL LETTERS $'
.CODE
MAIN PROC
MOV AX,@DATA ;initialize DS
MOV DS,AX
;DISPLAY MSG1
LEA DX,MSG1 ;GET MSG1
MOV AH,9 ;DISPLAY STRING
INT 21H ;DISPLAY MSG1
; start of loop reading the input
; one character at a time
mov bX,0 ; initialize CAPITAL LETTERS counter
loop_top:
MOV AH,1 ;READ A CHARACTDR
INT 21h
cmp al,0dh ; end of line?
je Display1 ; yes, then stop
; test for capital letters
cmp al,'A'
JL loop_end ; if char < 'A' then go to the end of the loop
CMP al,'Z'
JG loop_end ; if char > 'Z' then go to the end of the loop
INC bx ; increment capital letter counter
cmp bx,19
JG Display2 ; more than 19 capital letters
loop_end:
jmp loop_top
Display1:
LEA DX,MSG2 ;GET MSG1
MOV AH,9 ;DISPLAY STRING
INT 21H ;DISPLAY MSG1
CMP bx,9
JLE Display3
mov ah,2
mov dl,'1'
int 21h
mov dl,bl ; print the number of characters
add dl,'0' ;To convert the number of characters from ASCII to decimal number
SUB dl,10
MOV AH,2 ;display the number of character that is in dl
INT 21H
jmp exit_program
Display3:
mov dl,bl ; print the number of characters
add dl,'0' ;To convert the number of characters from ASCII to decimal number
MOV AH,2 ;display the number of character that is in dl
INT 21H
jmp exit_program ; all done
Display2:
LEA DX,MSG3 ;GET MSG3
MOV AH,9 ;DISPLAY STRING
INT 21H ;DISPLAY MSG3
exit_program:
MOV AH,4CH ; return control to DOS
INT 21H
MAIN ENDP
END MAIN
ENDF

گرافیک در اسمبلی - کشیدن دایره

.model small
.stack 640
.data
    ray dw 20
    x   dw ?
    y   dw ?
    help1 dw ?
       
.code

circle proc
   mov ah,0
   mov al,13h
   int 10h
    mov ax,1
    mul ray
    mov ray,ax ;ray*=10
    ;mov ax,ray
    mul ray
    mov ray,ax ;ray=ray^2
    ; - - - - - -
    mov dx,0
l1c:    mov cx,0;payine safhe - sotun
l2c:    push cx
    push dx
    mov x,20
    sub cx,x
    mov ax,cx
    mul cx  ;ax=cx^2
    mov help1,ax
    ; - - - - - -
    mov y,20
    pop dx
    push dx
    sub dx,y
    mov ax,dx
    mul dx  ;ax=dx^2
    add help1,ax
    mov ax,help1 ;ax=dx^2 + cx^2
    ; - - - - - -
    pop dx
    pop cx
    cmp ray,ax
    jb l3c
    ; - - - paint pixel - - -
    mov al,12
    mov ah,0ch
    mov bh,0
    int 10h
    ; - - - - - -
l3c:   
    inc cx
        cmp cx,40
        jne l2c
    inc dx
        cmp dx,40
        jne l1c
    ret      
circle endp   
main proc far
    mov ax,@data
    mov ds,ax
    call circle
    mov ah,8
    int 21h
    mov ax, 4c00h
    int 21h
main endp
end main

رمز گذاری یک عدد

رمز گذاری یک عدد - یعنی یک عدد را میدهیم و بعد یک عدد کلیدی می دهیم سپس آنرا تبدیل به کد میکند و یک رمز میدهد که با اولی کلی فرق دارد و برای رمز گذاری یک متن میتوان بکار برد .

ضمنا در آن از دستور Rotate هم استفاده میشود .


.model small

.stack 64
.data
    n db ?
    yekan db ?
    strlist label byte
        max db 80
        len db ?
        buf db 80 dup("$")
       
    strlist1 label byte
        ma1 db 80
        len1 db ?
        buf1 db 80 dup("$")
    linef db 13,10,"$"
.code
newline proc
    mov ah,9
    lea dx,linef
    int 21h
    ret
newline endp

main proc far
    mov ax,@data
    mov ds,ax
  ;get strlist
    mov ah,0ah
    lea dx,strlist
    int 21h
  ;new line        
    call newline
  ;get strlist1 
    mov ah,0ah
    lea dx,strlist1
    int 21h
  ;new line
    call newline
   
    cmp len1,1
    jz l1
   
    lea bx,buf1
    mov al,[bx]
    sub al,48
   
    mov cl,10
    mul cl
    add al,[bx+1]
    sub al,48
    mov ah,[bx+1]
    sub ah,48
    mov yekan,ah
    jmp l2
    l1:
    lea bx,buf1
    mov al,[bx]
    sub al,48
    mov yekan,al
    l2:
    mov n,al
    lea bx,buf
    mov ch,0
    l3:
    cmp ch,len
    jz l4   
   
    mov al,[bx]
    add al,n
   
    mov cl,yekan
    ror al,cl
   
    mov ah,2
    mov dl,al
    int 21h
    inc bx
    inc ch
    jmp l3
   
    l4:
     
    mov ah,8
    int 21h
    mov ax, 4c00h
    int 21h
main endp
end main

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

برنامه فوق استفاده از توابع و فراخوانی آن در اسمبلی است و ضمنا ب م م دو عدد را هم به اسمبلی محاسبه می کند

.model small
.stack 64
.data
    n dw ?
    m dw ?
    res dw ?
    sign db 1
    linef db 13,10,"$"
    str db 7 dup("$")
    strlist label byte
        max db 6
        len db ?
        buf db 6 dup("$")
        dolar db "$"
    strlist1 label byte
        max1 db 6
        len1 db ?
        buf1 db 6 dup("$")
        dolar1 db "$"       
.code
getnum proc
    mov ah,0ah
    int 21h
   
    mov ax,0; javab
    mov bx,dx
    add bx,2
    cmp [bx],'-'
    jnz g1
    mov sign,-1
    inc bx
    g1:
   
    cmp [bx],'0'
    jb g2
    cmp [bx],'9'
    ja g2
   
    mov cx,10
    mul cx
   
    mov cl,[bx]
    sub cl,48
    mov ch,0
    add ax,cx
   
    inc bx
    jmp g1
    g2:
    cmp sign,1
    jz g3
    neg ax
    g3:
   
    ret
getnum endp
bmm proc
   
    n1:
    cmp m,0
    jz n2
    mov ax,n
    mov dx,0
    mov si,m
    div si
    mov ax,m
    mov n,ax
    mov m,dx
    jmp n1
    n2:
    mov ax,n
    ret
bmm endp

printnum proc
    lea bx,str
   
    cmp ax,0
    jg p1
    mov [bx],'-'
    neg ax
    inc bx
    p1:
    mov cx,0
    p4:
    cmp ax,0
    jz p2
    mov dx,0
    mov si,10
    div si
    push dx
    inc cx
    jmp p4
    p2:
    cmp cx,0
    jz p3
    pop dx
    add dl,48
    mov [bx],dl
    inc bx
    dec cx
    jmp p2
    p3:
    mov ah,9
    lea dx,str
    int 21h
    ret
printnum endp
main proc far
    mov ax,@data
    mov ds,ax
          
    lea dx,strlist      
    call getnum
    mov n,ax
   
    mov ah,9
    lea dx,linef
    int 21h
   
    lea dx,strlist1
    call getnum
    mov m,ax
         
    call bmm
   
    mov res,ax
   
    mov ah,9
    lea dx,linef
    int 21h
       
    mov ax,res
    lea dx,str
    call printnum     
         
    mov ah,8
    int 21h
    mov ax, 4c00h
    int 21h
main endp
end main

برنامه میانگین دو عدد

برنامه میانگین دو عدد

.model small

.stack 64
.data
    n dw ?
    m dw ?
    q dw ?
    res dw ?
    sign db 1
    linef db 13,10,"$"
    str db 7 dup("$")
    str1 db ".5" , '$'
    strlist label byte
        max db 6
        len db ?
        buf db 6 dup("$")
        dolar db "$"
    strlist1 label byte
        max1 db 6
        len1 db ?
        buf1 db 6 dup("$")
        dolar1 db "$"       
.code
getnum proc
    mov ah,0ah
    int 21h
   
    mov ax,0; javab
    mov bx,dx
    add bx,2
    cmp [bx],'-'
    jnz g1
    mov sign,-1
    inc bx
    g1:
   
    cmp [bx],'0'
    jb g2
    cmp [bx],'9'
    ja g2
   
    mov cx,10
    mul cx
   
    mov cl,[bx]
    sub cl,48
    mov ch,0
    add ax,cx
   
    inc bx
    jmp g1
    g2:
    cmp sign,1
    jz g3
    neg ax
    g3:
   
    ret
getnum endp
avrg proc

    mov ax,n
    mov si,2
    mov cx,m
    add ax,cx
    div si
    mov q,dx
    ret
avrg endp

printnum proc
    lea bx,str
   
    cmp ax,0
    jg p1
    mov [bx],'-'
    neg ax
    inc bx
    p1:
    mov cx,0
    p4:
    cmp ax,0
    jz p2
    mov dx,0
    mov si,10
    div si
    push dx
    inc cx
    jmp p4
    p2:
    cmp cx,0
    jz p3
    pop dx
    add dl,48
    mov [bx],dl
    inc bx
    dec cx
    jmp p2
    p3:
    mov ah,9
    lea dx,str
    int 21h
    ret
printnum endp

main proc far
    mov ax,@data
    mov ds,ax
          
    lea dx,strlist      
    call getnum
    mov n,ax
   
    mov ah,9
    lea dx,linef
    int 21h
   
    lea dx,strlist1
    call getnum
    mov m,ax
         
    call avrg
   
    mov res,ax
   
    mov ah,9
    lea dx,linef
    int 21h
   
    mov ax,res
    lea dx,str
    call printnum     
  ;momaiez
    cmp q,0
    jbe o1
    mov ah,9
    lea dx,str1
    int 21h
    o1:
  ;end momayez  
    mov ah,8
    int 21h
    mov ax, 4c00h
    int 21h
main endp
end main

نوشتن اسمبلی در کامپایلر Borland C++ 4.5

نوشتن اسمبلی در کامپایلر Borland C++ 4.5

#include
#include
#include
int main()
  {
      int n , k , i=0 , l , m;
      scanf("%d",&n);
      int *a = new int [n];
      int index1 , index2 ;
      int bindex1 , bindex2 ;
      int r=1 , bestr=1 ;
      index1 = index2 = 0 ;

      /*  Code C++
      for (int i = 0 ; i < n ; i++ ){
            scanf("%d", &a[i]);
      if(!a[i]) {
          if(r>bestr){
              bindex1 = index1 ;
              bindex2 = index2 - 1;
              bestr = r ;
              }
          r=1  ;
          index1 = index2 = i+1 ;
                    }
      else {
              r *= a[i] ;
              index2 ++ ;
             }
                                                 }
     for(i = bindex1 ; i< bindex2 ; i++ )
          printf( " %d * ", a[i] );
     printf( "  %d = %d ", a[bindex2], bestr );


      */

      __asm {
             MOV AX , r
                 MOV CX , 0
                 L1:
                 MOV CX , i
                 CMP CX , n
                 JAE L2

                }
      scanf("%d",&a[i]);
      k=a[i];
      __asm {

                 CMP k , 0
                 JNE L3
                 MOV BX , bestr
                 CMP BX , r
                 JB L4
                 MOV r , BX
                 MOV BX , bindex1
                 MOV index1 , BX

                 DEC index2
                 MOV BX , index2
                 MOV bindex2 ,BX

                 L4:
                 MOV r , 1
                 MOV index2 , CX
                 INC index2
                 MOV BX , index2
                 MOV index1 , BX
                 L3:
                 CMP k ,0
                 JE L9

                 MUL k

                 INC index2
                 L9:
                 INC i
                 JMP L1
                 L2:
             MOV bestr , AX
                 /*
                 MOV BX , bindex1
                 L5:
                 CMP BX , bindex2
                 JAE L6
              }
      printf("%d * " , a[i]);
      __asm {
                 INC BX
                 JMP L1
                 L6:
              }
      printf("%d = %d",a[bindex2],bestr);*/

             }

     for(i = 0 ; i< n-1 ; i++ )
          printf( " %d * ", a[i] );
     printf( "  %d = %d ", a[n-1], bestr );
        return 0 ;
        getch();
  }

نحوه برنامه نویسی در اسمبلی

برنامه های اسمبلی و زبان ماشین تحت کامپایلر EMU8086 نوشته شده است .

برای دانلود برنامه EMU8086 به سایت emu8086.com مراجعه کنید و لینک دانلود برای ویندوز مورد نظرتون دانلود کنید .

نکته اینکه سایت ذکر شده برای ایرانی ها فیلتر میباشد . نه اینکه مخابرات فیلترش کرده باشه !!! نه !!! اونا مارو فیلتر کردن !!!!

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

برنامه چاپ و حرکت ستاره

برنامه چاپ و حرکت ستاره

* ->*->*->* *

       *      *

           *

      *      *

* ->*->*->* *


.model
.stack 64
.data
   i db 0
   j db 4
   n db 5
.code
main proc far
    mov ax , @data
    mov DS , ax
;l15:
; for khate aval
    mov i , 0
    l1:
    cmp i , 5
    jae l2
  ;gotoxy
    mov ah , 2
    mov dl , i
    ;mov dh , i
    mov bh , 0
    int 10h
  ;printf
    mov ah , 2
    mov dl , "*"
    int 21h
  ;delay
    mov cx , 100
    l5:
    loop l5
  ;gotoxy
    mov ah , 2
    mov dl , i
    ;mov dh , i
    mov bh , 0
    int 10h       
  ;printf
    mov ah , 2
    mov dl , " "
    int 21h       
  ;end for
    inc i
    jmp l1
    l2:
; for khate dovom
    mov i , 0
    l3:
    cmp i , 5
    jae l4
  ;gotoxy
    mov ah , 2
    mov dl , j
    mov dh , i
    mov bh , 0
    int 10h
  ;printf
    mov ah , 2
    mov dl , "*"
    int 21h
  ;delay
    mov cx , 100
    l6:
    loop l6
  ;gotoxy
    mov ah , 2
    mov dl , j
    mov dh , i
    mov bh , 0
    int 10h       
  ;printf
    mov ah , 2
    mov dl , " "
    int 21h       
  ;end for
    inc i
    dec j
    jmp l3
    l4:
; for khate Sevom
    mov i , 0
    l7:
    cmp i , 5
    jae l8
  ;gotoxy
    mov ah , 2
    mov dl , i
    ;mov dh , i
    mov bh , 0
    int 10h
  ;printf
    mov ah , 2
    mov dl , "*"
    int 21h
  ;delay
    mov cx , 100
    l9:
    loop l9
  ;gotoxy
    mov ah , 2
    mov dl , i
    ;mov dh , i
    mov bh , 0
    int 10h       
  ;printf
    mov ah , 2
    mov dl , " "
    int 21h       
  ;end for
    inc i
    jmp l7
    l8:
; for khate chaharom
    mov i , 4
    mov j , 4
    l10:
    cmp i , 0
    jb l11
  ;gotoxy
    mov ah , 2
    mov dl , j
    mov dh , i
    mov bh , 0
    int 10h
  ;printf
    mov ah , 2
    mov dl , "*"
    int 21h
  ;delay
    mov cx , 100
    l12:
    loop l12
  ;gotoxy
    mov ah , 2
    mov dl , j
    mov dh , i
    mov bh , 0
    int 10h       
  ;printf
    mov ah , 2
    mov dl , " "
    int 21h       
  ;end for
    dec i
    dec j
    jmp l10
    l11:
;jmp l15          
main endp
end main
   
   
   

برنامه Hello

برنامه hello به عنوان اولین برنامه تحت زبان اسمبلی ارسال می گردد .

.model small
.stack 64
.data
     str DB "HELLO" , '$'
.code
     main proc far
          mov AX , @data
          mov DS , AX
          mov AH , 9
          lea DX , str
          int 21h
          mov AX , 4c00h
          int 21h
          main endp
     end main