Я читал "Язык языка сборки" (Randall Hyde, ссылка на Amazon), и я попробовал консольное приложение в этой книге. Это была программа, которая создала новую консоль для себя, используя функции Win32 API. Программа содержит процедуру с именем LENSTR
, которая хранит длину строки в регистре EBP
. Код для этой функции выглядит следующим образом:
LENSTR PROC
ENTER 0, 0
PUSH EAX
;----------------------
CLD
MOV EDI, DWORD PTR [EBP+08H]
MOV EBX, EDI
MOV ECX, 100 ; Limit the string length
XOR AL, AL
REPNE SCASB ; Find the 0 character
SUB EDI, EBX ; String length including 0
MOV EBX, EDI
DEC EBX
;----------------------
POP EAX
LEAVE
RET 4
LENSTR ENDP
Не могли бы вы объяснить использование команд enter
и leave
здесь?