или не будет найден
MOV EDI , szDest // Установить целевую строку ng.
MOV ЕСХ , iLen // Установить длину копирования.
// Копировать немедленно!
REP MOVS BYTE PTR [EDI] , BYTE PTR [ESI]
}
}
int StrLEN (char * szSrc )
{
int iReturn ; _asm
{
XOR EAX , EAX // Обнулить ЕАХ.
MOV EDI , szSrc // Поместить проверяемую строку в EDI.
MOV ECX , 0FFFFFFFFh // Максимальное число проверяемых
// символов.
REPNE SCAS BYTE PTR [EDI] // Сравнивать, пока ЕСХ не станет
// равным 0 или не будет найден конец
// строки .
СМР ЕСХ ,0 // Если ЕСХ равен 0, то
JE StrLEN_NoNull // в строке не был найден NULL.
NOT ECX // Преобразовать ЕСХ в положительное число,
// поскольку он был просчитан.
DEC ЕСХ ' // Подсчет для Попадания на NULL.
MOV EAX , ЕСХ // Возврат счета.
JMP StrLen_Done .// Возврат. StrLENJNoNull:
MOV EAX , OFFFFFFFFh // Поскольку NULL не был найден,
И возвратить -1.
StrLEN_Done:
}
_asm MOV iReturn , EAX ;
return ( iReturn ) ;
}
void MemSET ( char * szDest , irit iVal , int iLen )
{ _asm
{
MOV EAX , iVal // EAX содержит полное значение.
MOV EDI , szDest // Переместить строку в EDI.
MOV ECX , iLen // Переместить счет в ЕСХ.
REP STOS BYTE PTR [EDI] // Заполнить память.
}
}
int MemCMP ( char * szMeml , char * szMem2 , int iLen )
{
int iReturn ;
_asm
{
MOV ESI , szMeml // ESI содержит первый блок памяти.
MOV EDI , szMem2 // EDI содержит второй блок памяти.
MOV ECX , iLen // Максимальное число байт для сравнения
// Сравнить блоки памяти.
REPE CMPS BYTE PTR.
[ESI], BYTE PTR [EDI]
JL MemCMP_LessThan // Если szSrc < szDest
JG MemCMP_GreaterThan // Если szSrc > szDest
// Блоки памяти равны.
XOR EAX', EAX // Возвратить 0.
JMP MemCMP_Done
MemCMP_Les sThan:
MOV EAX , 0FFFFFFFFh // Возвратить -1.
JMP MemCMP_Done
MemCMP_GreaterThan:
MOV EAX , 1 // Возвратить 1.
JMP MemCMP_Done
XemCMP_Done:
}
_asm MOV iReturn ,
EAX return ( iReturn ) ;
}
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий