В Delphi (для Win32) по умолчанию используется соглашение вызовов
register: до 3-х параметров передаётся через регистры EAX, ECX, EDX, результат передаётся через EAX (подробнее, смотри тут:
Using Assembler in Delphi).
Соответственно, получаем вот такой код:
function IntervalAsm(const AValue, AMin, AMax: Byte): Boolean; register;
asm
// Входные параметры уже лежат в регистрах:
// al = AValue
// dl = AMin
// cl = AMax
cmp dl, al // сравнение с AMin
ja @@RetFalse // если al < dl, то выход с False
cmp cl, al // сравнение с AMax
jae @@RetTrue // если al <= cl, то выход с True
@@RetFalse:
xor eax, eax // eax = 0 -> Result = False
ret
@@RetTrue:
mov al, 1 // eax = 1 -> Result = True
ret
end;
Если возникают трудности с написанием кода на ассемблере, то лучше всего написать код на Delphi (или даже на самом простом Си), скомпилировать его, а затем декомпилировать и посмотреть, а какой же код генерирует сама Delphi. Для учебных проектов на Delphi прекрасно подойдёт
Interactive Delphi Reconstructor (IDR).