Важная информация
Показано с 1 по 6 из 6

Тема: Работа с массивами на ассемблере

  1. #1 Работа с массивами на ассемблере 
    Новичок
    Регистрация
    12.12.2013
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Здравствуйте,прошу вашей помощи в лабораторной работе,связанной с массивами на языке ассемблера.
    Задание:
    Y[k] = 4*X[k]/X[2N-k] + k**2*X[N+1-k]/(k+1)/X[k+1]
    N=5 k=1,2,...5

    Код программы:
    Код :
    arr_x db 0,1,2,3,4,5,6,7,8,9,10,11 ;Размер каждого элемента 1 байта
    arr_y dw 7 dup (0) ;Размер каждого элемента 2 байта
    N db 5
     
    .code
    main proc
    ; код главной функции
    mov esi,0 ;esi=0
    mov ecx,5 ;ecx= k=5
     
    for_k:
    movzx edx,N                ;В регистр edx помещаем значение N
    movsx eax,arr_x[ecx] ;В eax лежит значение X[k]
    shl eax,2                        ;eax=4 X[k]
                                           ;Теперь переходим к работе с X[2N-k]
    shl edx,1                         ;dx =2 N
    sub edx,ecx                    ;edx=2N-k
    movsx ebx,arr_x[edx]  ;ebx= X[2N-k]
    cwd                                ;знаковое расширение
    idiv ebx                          ;eax=4*X[k]/X[2N-k]
    mov arr_y[ecx*2],dx    ;Y[k]=4*X[k]/X[2N-k]
    ;Переходим ко второй части выражения :
    mov eax,ecx                  ;eax=ecx=k
    mul ecx                          ;eax=k^2
    movzx esi,N                   ;esi=N
    sub esi,ecx                      ;esi=N-k;
    imul arr_x[esi+1]          ;eax=k^2*X[N+1-k]
    mov ebx,ecx                   ;ebx=ecx=k
    add ebx,1                        ;ebx=k+1
    idiv ebx                           ;eax=k^2*X[N+1-k]/(k+1)
    mov esi,ecx                     ;esi=k
    idiv arr_x[esi+1]            ;eax=k^2*X[N+1-k]/(k+1)/X[k+1]
    add arr_y[esi*2],ax        ax=4*X[k]/X[2N-k]+k^2*X[N+1-k]/(k+1)/X[k+1]
    sub ecx,1
    jnz for_k
    invoke ExitProcess, 0      ; завершение работы
    main endp
    end main
    При вычислениях значений массива выходного(arr_y) в значениях находятся явно неверные значения, объясните пожалуйста в чем ошибка в этом коде?
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,931
    Сказал(а) спасибо
    1,842
    Поблагодарили 982 раз(а) в 840 сообщениях
    Записей в блоге
    1
    vladis222, 4 форума не жирно?
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. #3  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    А с другой стороны, задавать подобные вопросы (имею в виду ассемблер) можно только на серьезном профессиональном сайте, с чем я всех присутствующих и поздравляю!
    Ответить с цитированием  
     

  4. #4  
    Новичок
    Регистрация
    12.12.2013
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от Dimon012 Посмотреть сообщение
    А с другой стороны, задавать подобные вопросы (имею в виду ассемблер) можно только на серьезном профессиональном сайте, с чем я всех присутствующих и поздравляю!
    Я обратился за помощью,а не за тем,что 4 форума это слишком жирно и что задавать вопросы по ассемблеру можно только на профессиональном форуме
    Ответить с цитированием  
     

  5. #5  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Я обратился за помощью,а не за тем,что 4 форума это слишком жирно и что задавать вопросы по ассемблеру можно только на профессиональном форуме
    Оно-то да, имейте просто в виду, что вам, в общем-то, никто из нас ничего не должен. Мы можем помочь, а можем и не помогать. Я вот, например, мог-бы поколупаться, но после такого уже как-то не имею особого желания
    Прошу все-же отписаться в этой теме, если вам найдут проблему на другом форуме. Возможно, на выходных мне станет скучно и я займусь.
    И да, подскажите, какой конкретно ассемблер?
    Дружба-магия-радость!
    Ответить с цитированием  
     

  6. #6  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Цитата Сообщение от vladis222 Посмотреть сообщение
    ...и что задавать вопросы по ассемблеру можно только на профессиональном форуме
    Я может неверно сформулировал, задавать вопросы можно где угодно, но про ассемблер не имеет смысла задавать вопросы на улице.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 28.05.2013, 10:46
  2. Помогите с 2-х мерными массивами
    от KnightMrak в разделе C/C++
    Ответов: 0
    Последнее сообщение: 12.11.2012, 16:25
  3. Задачи с массивами
    от Дмитрий 1993 в разделе QBasic
    Ответов: 13
    Последнее сообщение: 04.03.2012, 05:57
  4. Работа с массивами
    от Этери в разделе QBasic
    Ответов: 2
    Последнее сообщение: 15.11.2011, 05:54
  5. Графика в ассемблере
    от Potap в разделе Assembler
    Ответов: 3
    Последнее сообщение: 21.01.2011, 13:42
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •