Форум: "Потрепаться";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
ВнизЗнатоки АСМА. Что это за фигня?? Найти похожие ветки
← →
Карелин Артем (2003-11-20 14:36) [0]Гляжу я на исходники программы распознавания образов и думаю, что автору пора завязывать с мухоморами и всякими фиолетовыми таблетками. Что он хотел выразить в выделенном жирном текстом сегменте?
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
i,j:inttype;
ins1,outs:array of real;
c:char;
tmp1,tmp2:byte;
begin
if Edit1.text<>"" then
begin
SetLength(ins1,1024);
SetLength(outs,16);
for i:=0 to 31 do
for j:=0 to 31 do
begin
if Image1.Canvas.Pixels[j,i]=clblack then
ins1[((i*32)+j)]:=0.01;
if Image1.Canvas.Pixels[j,i]=clwhite then
ins1[((i*32)+j)]:=1;
end;
c:=Edit1.text[1];
///////////////////////////////
for i:=0 to 7 do
begin
tmp2:=i+1;
asm
mov ah,00h
mov al,c
mov cl,tmp2
sal ax,cl
and ah,01h
mov tmp1,ah
end;outs[7-i]:=tmp1;
end;
for i:=0 to 7 do
if outs[i]=0 then
outs[i]:=0.01;
for i:=7 to 15 do
outs[i]:=1;
///////////////////////////////
net[1].adddata(ins1,outs);
end;
MemAloc;
end;
← →
mrcat (2003-11-20 14:58) [1]>Карелин Артем © (20.11.03 14:36)
это ты лучше у разработчика спроси :) у меня с распознованием образов нелады :)
← →
Карелин Артем (2003-11-20 15:10) [2]Тут что-то типа выделения битов по одному. Спасибо Анатолию Подгорецкому и Игорю Шевченко за консультацию.
← →
Nikolay M. (2003-11-20 15:12) [3]> asm
> mov ah,00h
> mov al,c
В регистр ax заносится код 1-го символа из Edit1.Text, для 0, скажем, это будет 48
> mov cl,tmp2
> sal ax,cl
Код символа (в ах) возводится в i+1 степень.
> and ah,01h
В ah остается его 0-й бит.
> mov tmp1,ah
Сохраняем результат в tmp1
> end;
Итого вся конструкция аналогична следующему:
tmp1 := ((c shl (i + 1)) and (1 shl 16));
если нигде не напутал
← →
Anatoly Podgoretsky (2003-11-20 16:30) [4]for i:=0 to 7 do outs[i] := (c shr i) and 1;
← →
BlackTiger (2003-11-20 18:23) [5]Удалено модератором
Примечание: Offtopic
← →
han_malign (2003-11-20 18:35) [6]Ну судя по использованию sal подразумевалось использование флага переноса знага, но видимо он не вспомил команды условного перехода по этому знаку, и намудрил в запарке.
З.Ы. Я, кстати, тоже навскидку не помню... :)))
З.З.Ы. Хотя, по нажатию кнопки, в единоразовой операции, мудрить что-то с ассемблерной оптимизацие - маразм. И тогда уж весь цикл оптимизировать надо было, а не тело.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.088 c