![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |
|
#3
|
|||
|
|||
|
Цитата:
Вдогонку. Внутра asm-функции можно свободно менять только EAX,EDX и ECX. Остальные регистры нужно сохранять (Push/Pop). Кроме того если всё тело функции написано на ассемблере и соглашение о вызовах - register, то первый параметр уже находится в EAX, второй в EDX и третий в ECX. |
|
#4
|
||||
|
||||
|
Тут форум по Delphi а не по ASM. Я плохо знаю ASM, хотя и Delphi я особо не учил
![]() |
|
#5
|
||||
|
||||
|
И оба отвечающих не обратили внимание на тот маленький факт, что переменная A - вещественная.
|
|
#6
|
||||
|
||||
|
Напиши на дельфе, скомпиль, открой отладчиком и рипани этот злощастный асм код.
|
|
#7
|
||||
|
||||
|
Не смеши, я в ассемблере не новичок.
|