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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 04:40   #1
EThread
 
Регистрация: 05.10.2008
Сообщений: 9
Плохо Найти значение выражения при х=[1..10]

Найти значение выражения Y=x3+4, где x[1..10].
У меня сделано так, но нельзя ли проще как-нибудь? М.б. как-нибудь в цикл загнать?

Цитата:
Var x,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10: word;
t1,t2,t3: word;
begin
asm
MOV t1,AX;
MOV t2,BX;
MOV t3,CX;
MOV CX,10;
@L: MOV AX,CX;
MOV BX,AX;
MUL BX;
MUL BX;
ADD AX,4;
CMP BX,1;
JNE @x1;
MOV x1,AX;
@x1:
CMP BX,2;
JNE @x2;
MOV x2,AX;
@x2:
CMP BX,3;
JNE @x3;
MOV x3,AX;
@x3:
CMP BX,4;
JNE @x4;
MOV x4,AX;
@x4:
CMP BX,5;
JNE @x5;
MOV x5,AX;
@x5:
CMP BX,6;
JNE @x6;
MOV x6,AX;
@x6:
CMP BX,7;
JNE @x7;
MOV x7,AX;
@x7:
CMP BX,8;
JNE @x8;
MOV x8,AX;
@x8:
CMP BX,9;
JNE @x9;
MOV x9,AX;
@x9:
CMP BX,10;
JNE @x10;
MOV x10,AX;
@x10:
LOOP @L;
MOV AX,t1;
MOV BX,t2;
MOV CX,t3;
end;
Memo1.Lines.Add(IntToStr(x1));
Memo1.Lines.Add(IntToStr(x2));
Memo1.Lines.Add(IntToStr(x3));
Memo1.Lines.Add(IntToStr(x4));
Memo1.Lines.Add(IntToStr(x5));
Memo1.Lines.Add(IntToStr(x6));
Memo1.Lines.Add(IntToStr(x7));
Memo1.Lines.Add(IntToStr(x8));
Memo1.Lines.Add(IntToStr(x9));
Memo1.Lines.Add(IntToStr(x10));
end;
EThread вне форума Ответить с цитированием
Старый 22.12.2008, 04:49   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

for i := 1 to 10 do
Memo1.Lines.Add(FloatToStr(power(i, 3) + 4));

Хотя, прошу прощения, не обратил внимание, что обязательно асме надо

Код:
procedure TForm1.FormCreate(Sender: TObject);
var y, x : Integer;
    arr : Array [1..10] of Integer;
begin
   asm
     mov ecx, 10;
   @aa:
     mov eax, ecx;
     mov ebx, eax;
     imul ebx, eax;
     imul ebx, eax;
     add ebx, 3;
     mov Integer[arr + ecx*4 - 4 ], ebx;
     loop @aa;
   end;
   for x := 1 to 10 do
   Memo1.Lines.Add(IntToStr(Arr[x]));
end;

Последний раз редактировалось _Engine_; 22.12.2008 в 06:00.
_Engine_ вне форума Ответить с цитированием
Старый 22.12.2008, 07:25   #3
EThread
 
Регистрация: 05.10.2008
Сообщений: 9
По умолчанию

Спасибо огромное! Очень помогли!
Надо ж было не додуматься...
EThread вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dblookupcombobox значение по дефолту при условии 1sal1 Общие вопросы Delphi 2 12.12.2009 14:16
получить значение ID при наведении мышкой badfilin JavaScript, Ajax 9 25.04.2009 19:35
Найти значение функций для всех целых значений из диапазона -8..3 Goldberg Паскаль, Turbo Pascal, PascalABC.NET 5 13.11.2008 00:05
Получить значение многочлена при данном x Aleksandr Паскаль, Turbo Pascal, PascalABC.NET 7 07.03.2008 18:54
значение получившегося выражения должно быть равно заданному целому S Elm0 Паскаль, Turbo Pascal, PascalABC.NET 6 18.01.2008 00:13