Показать сообщение отдельно
Старый 24.04.2004, 17:05     # 2
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
Встроенной процедуры, как ты понимаешь, для этого нет. Последний раз писал на асме очень давно, поэтому написать код не могу (может попозже), но алгоритм таков:

1. узнаешь адрес и длину строки, в регистр dx (например) записываешь "адрес - длина + 1" (это адрес последней цифры)
2. в регистр bl (например) записываешь 1 (это коэффициент, на который будем множить)
3. в регистр si (например) записываешь "длина строки" (это номер обрабатываемой цифры)
4. заводишь переменную "результат" и записываешь в нее 0 (без комментариев)
5. проверяешь, если si = 0, то переходишь на пункт (9)
6. считываешь байт по адресу dx, уменьшаешь его на 48 (код "0"), умножаешь на bl, результат прибавляешь к переменной "результат"
7. уменьшаешь dx и si на 1; умножаешь bl на 10
8. возвращаешься к пункту 5
9. готово

Попохже может выложу код.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума