انجام پروژه های دانشجویی - برنامه نویسی

انجام پروژه های دانشجویی رشته کامپیوتر نرم افزار - برنامه نویسی تحت اکثر زبانها

نوشتن اسمبلی در کامپایلر 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();
  }

+ نوشته شده در  91/09/23ساعت 10:18  توسط مجید  |