асемблеровские вставки

Тема в разделе "WASM.BEGINNERS", создана пользователем yk92, 23 окт 2010.

  1. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    нада найти минимальний елемент и среднееарифметическое в массиве с помощью асемблеровских вставок.
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    yk92
    так в чём конкретно поблема?
     
  3. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    в том что я понятия неимею что ето такое. ти немогби помочь с програмой???
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    yk92
    я могу только подправить, то что ты напишеш и если это не будет полный бред
    если тебе нужна готовая прога в ветку COMMERCE
     
  5. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    Вот я написал но оно что-то непашет
    Если можна исправить то исправь пожалоста.
    #include <iostream.h>
    #include <conio.h>
    void main()
    {
    int arr[6];
    int i,min,sum;
    cout<<"Vvedite massiv:\n";
    for(i=0;i<6;i++)
    {
    cout<<"Element["<<i<<"]:";
    cin>>arr;
    }
    _asm{
    mov cx,6
    mov ax,0
    mov bx,0
    mov dx,0
    lea si,arr

    }
    _asm{
    mov si, offset arr
    mov ax, 0
    mov cx, 5
    myloop:
    add ax,[si]
    add si, 4
    loop myloop
    mov bx, 5
    div bx
    mov sum, ax
    }


    cout <<"\n sum:"<<sum<<"\n Min="<<min<<";
    getch();
    }
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    yk92
    ты в той програмке прокоментируй пожалуйста что ты чем хотел добиться?
     
  7. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    первая вставка ето вводим массив. а во второй я сам запутался, там я делал среднееарифметическое .
     
  8. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    yk92
    первая вставка массив не вводит
    по повоу второй: ты в чём работаеш? если в борланд цпп под дос, то там размер инта 2 байта, а не 4
    отладчиком пользоваться умееш?

    ps и массив у тебя размер 6, а не 5
     
  9. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    работаю в борлавнд. нет неумею!!!!(=
     
  10. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    yk92
    если запускаеш в винде это может быть и старый досовский
    короче чтоб путаницы небыло сделай
    cout << "int size : " << sizeof( int) << endl;
    и по выводу будет понятно.
    ты сколько асм команд уверенно знаеш?
     
  11. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    если чесно пару штук. там какаято путаница с меткой loop myloop. если она есть то ошибка
     
  12. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    yk92
    так о какой проге может идти речь?
    читай Зубкова , Калашникова
     
  13. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    Сейчас накатал по-быстрому. Держи Родной!
    Находит минимальный элемент и целую часть среднего арифметического.
    Visual_Studio, WinXP_SP2.

    #include <iostream>
    #define Size 5
    using namespace std;

    int main (void)
    {
    int massiv[Size];
    int min;
    int srednee;
    for(int i=0;i<Size;i++)
    {
    cin>>massiv;
    }
    _asm
    {
    lea esi,massiv;
    mov ecx,Size;
    mov edx,[esi];
    xor edi,edi;

    cikl: mov ebx,[esi];
    add edi,ebx;
    cmp ebx,edx;
    jg lab1;
    mov edx,ebx;
    lab1:
    dec ecx;
    add esi,4;
    cmp ecx,0;
    jnz cikl;
    mov min,edx;
    mov srednee,edi;

    }
    for(int i=0;i<Size;i++)
    {
    cout<<massiv<<" ";
    }
    cout <<endl<<"MIN->"<<min<<endl;
    cout<<"Tselaya chast ot Srednego arifmeticheskogo->"<<srednee/Size;
    getchar();
    getchar();
    return(0);
    }
     
  14. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Nafanya
    ТС проявлял хоть какую-то тягу к изучению, а ты ему накатал
     
  15. yk92

    yk92 New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    8
    большое спасиби
     
  16. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    wsd
    Этот индивид не проявлял тяги к изучению, ему результат был важен, поэтому он в COMMERCE потопал.
    Вот гляньте:
    http://wasm.ru/forum/viewtopic.php?id=39035
     
  17. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Nafanya
    и правда )
    неожидал