Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Переворот числа (assembler)

33K
25 июня 2008 года
Nickolai
10 / / 17.06.2008
Вводится последовательность, окан. "#". Нужно при помощи ass-вставки осуществить переворачивание в памяти.
Вот такая задача. Нужна помощь.
Заранее благодарен
1.6K
25 июня 2008 года
Vov4ick
476 / / 01.02.2007
Цитата: Nickolai
Нужно при помощи ass-вставки...


Вы верно форумом ошиблись ;-)

примерный вид (без оптимизаций)

Код:
; (E)SI=начало входной строки
; (E)DI=конец выхоной строки
; --------------------------
reverse:
             cld
             lodsb
             cmp al,'#'
             je done
             std
             stosb
             jmp reverse
done:
33K
25 июня 2008 года
Nickolai
10 / / 17.06.2008
Язык C++.
было бы замечательно, если бы немного по подробнее. Сам бы разобрался, да времени в обрез. Хочу хоть на чём-то сэкомить тайм.
1.6K
25 июня 2008 года
Vov4ick
476 / / 01.02.2007
lodsb - копирует байт из [si] в al и si++ если флаг переноса=0 или si-- если 1
stosb - из al в [di], плюс те же операции.
std - установка флага переноса
cld - сброс.
Твоя задача - поместить в регистры si и di адреса соответствующих массивов в памяти. (Если 32-разрядные адреса - соответственно в esi и edi)
Разбираться придётся всё равно.
Справочник по командам
Чтобы тебе помочь, нужно увидеть конкретные вопросы, а не невнятные просьбы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог