|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
организация циклов
задачая простая очень, просто не понимаю ассемблер(
помогите плиз!!! Дано вещественное число A и целое число N (> 0). Используя один цикл, найти сумму 1+A+A2+A3+…+AN. ввод, вывод данных на делфи, а реализация цикла на ассемблере... |
#2
|
||||
|
||||
Ф-нц набрал, осталось только ввод/вывод на Delphi.
Код:
Function Summa_ASM(A, N: Integer): Integer; Register; Asm xor edi, edi mov esi, 1 mov ecx, N mov ebx, A @Next: cmp edi, ecx jz @Exit Inc edi mov eax, edi imul ebx add esi, eax jmp @Next @Exit: xchg esi, eax end; If end Then begin; |
#3
|
|||
|
|||
Цитата:
Вдогонку. Внутра asm-функции можно свободно менять только EAX,EDX и ECX. Остальные регистры нужно сохранять (Push/Pop). Кроме того если всё тело функции написано на ассемблере и соглашение о вызовах - register, то первый параметр уже находится в EAX, второй в EDX и третий в ECX. |
#4
|
||||
|
||||
Тут форум по Delphi а не по ASM. Я плохо знаю ASM, хотя и Delphi я особо не учил
If end Then begin; |
#5
|
||||
|
||||
И оба отвечающих не обратили внимание на тот маленький факт, что переменная A - вещественная.
|
#6
|
||||
|
||||
Напиши на дельфе, скомпиль, открой отладчиком и рипани этот злощастный асм код.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
||||
|
||||
Не смеши, я в ассемблере не новичок.
|