"каждую функцию — в виде отдельной подпрограммы" - пишем всего две подпрограммы, одну для a, вторую - для b
"используя разные способы передачи параметров" - допустим, для вычисления a, параметры передаем в стек по одному. Для b - через регистры.
"Вычисления, которые встречаются несколько раз, оформить в виде макрокоманд" - я вижу только одного претендента: 1/8 + ex+y
Ну и сколько делаем сегментов данных? По одному на число? Предложите свой вариант.
Да. Так. Можно ещё через общую память. Думаю лучше будет передавать для а через память
Опять же можно разными путями:
1) вообще не передавать, просто из подпрограммы обращаться к памяти;
2) передавать адреса каждой переменной;
2) оформить в виде структуры, передавать адрес структуры;
3) или подразумевается еще что-то другое...
32-битные регистры используем?
push dsegZ ;в стек длинные адреса z
push offset z
les bx, dword ptr par_x ;длинный указатель на x
"Вычисления, которые встречаются несколько раз, оформить в виде макрокоманд" - я вижу только одного претендента: 1/8 + ex+y
Подходит первый вариант.
Да. Также как с памятью. Просто брать в подпрограмме из регистра нужное выражение.
push dsegZ ;в стек длинные адреса z
push offset z
Не понимаю что происходит в этих командах. Можно обойтись без них или нет?
Ассемблер знаю на минимальном уровне. Поэтому прошу прощение за просьбы "упростить" программу.
les bx, dword ptr par_x ;длинный указатель на x
Возможно ли использовать для этого лишь одну макрокоманду? Или без расписания её на 4 не обойтись?
Вычисления, которые встречаются несколько раз, оформить в виде макрокоманд.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.