Assembler: сейчас на сайте 2 гостей и 3 новостей
Немного отдохнем от ковыряния во внутренностях системы. Переписал на Ассемблере свою PHP-шную функцию для правильного склонения языковых конструкций вида "число + слово". Всю суть вопроса и теорию можете почитать в статье по ссылке. Сама функция получилась вот такой:Code (Assembler) : Убрать нумерацию
- ;-------------------------------------------------------
- ; Функция для получения индекса массива с вариантами
- ; склонений слова в зависимости от числового значения.
- ; Массив слов формируется по принципу "1-2-5", то есть
- ; ("гость", "гостя", "гостей")
- ;-------------------------------------------------------
- ; На входе:
- ; dNum - число
- ; На выходе:
- ; EAX = [0..2] - индекс элемента массива
- ;-------------------------------------------------------
- proc num2word dNum:DWORD
- push ecx edx
- mov eax,[dNum]
- cdq
- mov ecx,100
- idiv ecx
- cmp edx,19
- jb @f
- mov eax,edx
- cdq
- mov ecx,10
- idiv ecx
- @@:
- xor eax,eax
- or edx,edx
- jz .case2
- cmp edx,1
- jz .case0
- cmp edx,4
- jbe .case1
- .case2:
- inc eax
- .case1:
- inc eax
- .case0:
- pop edx ecx
- ret
- endp
В приложении пример программы с исходным текстом, которая использует приведенную в статье функцию для формирования строки по правилам русского языка.
Просмотров: 1042 | Комментариев: 0
Метки: Assembler, полезные функции
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария