Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 20:52   #1
EmmyLy
Новичок
Джуниор
 
Регистрация: 30.09.2010
Сообщений: 1
Печаль Работа с массивами, вычисление формул (assembler)

мне дали задания, но я в этом ничего не смыслю... (((( пожалуйста... это действительно вопрос жизни и смерти!!... Заранее всем СПАСИБО!!!!
1).Найти максимальный нечетный отрицательный элемент массива целых чисел. Ограничения: - число элементов в массиве не более 10-ти.

2). Линейная:
1-абсолютн. адрес
2-относительная
Y=(a+b)/(c2-d)
3). условие
Y=(A*B)/B+F/B
Если B<>0; Y=A*F +F*F, если B=0
4). Цикл
1-с предустановкой
2-со счетчиком
N
Y=∑(A^i+i^i),
i=1

5). подпрограмма
Y=min(A,B,D)/min(F,C,E)-
min(L,N,K)
..
вот так вот... хоть что-нибудь... эх-хех...
EmmyLy вне форума Ответить с цитированием
Старый 30.09.2010, 21:49   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Могу сделать. Контакты ниже.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 01.10.2010, 08:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1).Найти максимальный нечетный отрицательный элемент массива целых чисел. Ограничения: - число элементов в массиве не более 10-ти.
Осмелюсь предложить своих баранов.
Код:
format PE ; console
include 'D:\fasmw16726\INCLUDE\win32a.inc'
include 'D:\fasmw16726\INCLUDE\MACRO\IF.inc'

entry start

section '.data' data readable writeable
mas dw -11,5,6,-7,-23,8;
fmat db '%d'

section 'Код' code readable executable
start:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov esi,mas
mov ecx,6
mov edx,-999
mov bl,2;
 .while ecx>0
  .if word [esi]>0 ; Если отрицательный
   mov ax,[esi]
   idiv bl
   .if (ah<>0); Если нечетный
     .if (word [esi]>dx)
       mov dx,[esi]
     .endif
   .endif
  .endif
  dec ecx
  add esi,2
 .endw
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   cinvoke printf,fmat,edx;
   cinvoke getch
   invoke ExitProcess,0
ret

  section '.idata' import data readable

library kernel,'kernel32.dll',msvcrt,'msvcrt.dll'

import kernel,\
       ExitProcess,'ExitProcess'

import msvcrt,printf,'printf',getch,'_getch'
Единственный бок :.if word [esi]>0 ; Если отрицательный
Честно признаюсь не знаю как на макроасме правильно писать на проверку отрицательных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2010, 09:52   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Цитата:
Сообщение от Stilet
Честно признаюсь не знаю как на макроасме правильно писать на проверку отрицательных.
наверное так:
test word ptr [esi],8000h/jnz число_отрицательное
Mikl___ вне форума Ответить с цитированием
Старый 01.10.2010, 09:55   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я имел ввиду как это в макроинструкциях пишется
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами (assembler) erazer89 Помощь студентам 3 19.12.2008 21:25
Работа с массивами (assembler) deni Помощь студентам 2 12.12.2008 10:28
Работа с массивами (assembler) Gespenst Помощь студентам 1 21.04.2008 14:34