Assember to Delphi

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Subway_
Сообщения: 3
Зарегистрирован: 05 сен 2016, 17:59

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;
Ответить