![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Код:
for i:=1 to N do begin j:=i; while (j>1) and (B[j-1]>A[i]) do begin B[j]:=B[j-1]; j:=j-1; end; B[j]:=A[i]; end; end; нужно перебить кусок этот программы под асемблерную вставку в Delphi помогите завтра к зачету нужно сдать прогу ![]() Последний раз редактировалось Admin, 28.12.2011 в 20:48. |
|
#2
|
||||
|
||||
|
вставляешь этот код в программу, ставишь на for точку останова и запускаешь. на точке останова вызываешь View CPU и переписываешь команды)
|
|
#3
|
||||
|
||||
|
Чтобы знать, до куда переписывать, можно вставить это
Код:
asm nop nop nop nop end; ![]() |
|
#4
|
|||
|
|||
|
А поподробнее, а то я не очень понял как это реализовать
|
|
#5
|
||||
|
||||
|
Код:
asm nop nop nop nop end; for i:=1 to N do begin j:=i; while (j>1) and (B[j-1]>A[i]) do begin B[j]:=B[j-1]; j:=j-1; end; B[j]:=A[i]; end; end; asm nop nop nop nop end; Последний раз редактировалось Bargest, 28.12.2011 в 21:09. |
|
#6
|
||||
|
||||
|
они сильно ускоряют? а если весь код так переписать?)
|
|
#7
|
||||
|
||||
|
Если ТАК переписать - не ускорят.
NOP'ы только для выделения блока, который надо выдирать. По-хорошему его еще надо оптимизировать по полной программе, но не думаю, что ТС будет этим заниматься. Только тогда был бы прирост в скорости.З.Ы. зачем переписывать весь код? Проще уж сразу на ассемблере писать. ![]() |
|
#8
|
|||
|
|||
|
ставишь на for точку останова и запускаешь. на точке останова вызываешь View CPU
Как вот это сделать для меня большая проблема, можно от и до) |
|
#9
|
||||
|
||||
|
Код:
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure test;
const
N = 10;
var
i: Integer;
j: Integer;
B, A: array [0..$ff] of Integer;
begin
for i:=1 to N do
begin
j:=i;
while (j>1) and (B[j-1]>A[i]) do
begin
B[j]:=B[j-1];
j:=j-1;
end;
B[j]:=A[i];
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
test;
end;в текст сам переписывай ![]() |
|
#10
|
||||
|
||||
|
Цитата:
![]() |
|
#11
|
||||
|
||||
|
Такое переписывание кода вообще ничего не изменит. Размер будет тот же байт-в-байт и скорость та же такт-в-такт.
![]() |
|
#12
|
|||
|
|||
|
Сейчас попробуем спасибо за помощь
|
|
#13
|
|||
|
|||
|
Мне нужно вставить это в виде ассемблерной вставки, я записал как в скрине он чот ошибки выдает
Вот я тут залил мб у кого есть время свободое посмотреть laba1(2variant).rar |
|
#14
|
||||
|
||||
|
Где pas и dfm? А вот exe совсем не нужен.
|