Assember to Delphi

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Assember to Delphi

Assember to Delphi

Subway_ » 24 дек 2017, 10:47

Ребят, кто-нибудь может перевести этот asm код в Delphi код?

function TTreeNodeList.IndexOf(Item: TTreeNTNode): Integer; assembler;

// finds Item's index in the list
// EAX contains the Self reference (address of this instance)
// EDX contains Item

asm
PUSH EBX
PUSH EDI
MOV ECX, EAX.FCount // number of entries
JECXZ @NotFound // no search, if no entries
MOV EBX, ECX // keep count for index calc.
MOV EDI, EAX.FList // start address
MOV EAX, EDX // search value
REPNE SCASD // search the value
JNZ @NotFound // jump if not found
MOV EAX, EBX
SUB EAX, ECX // calculate index
DEC EAX // it's zero-based
JMP @Finish

@NotFound: MOV EAX, -1
@Finish: POP EDI
POP EBX
end;

Вернуться к началу