Я читал Искусство языка ассемблера (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
?