Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 723
от 15.04.2007, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 375, Экспертов: 42
В номере:Вопросов: 1, Ответов: 2


Вопрос № 81796: Здраствуйте!!! У меня проблема!!! Очень нежна программа!!! Описать близкую процедуру SHIFT23, которой передается начальный адрес некоторого массива из 100 байтов и которая за один просмотр этого массива циклически сдвигает его элементы на 23 пози...

Вопрос № 81.796
Здраствуйте!!! У меня проблема!!! Очень нежна программа!!!
Описать близкую процедуру SHIFT23, которой передается начальный адрес некоторого массива из 100 байтов и которая за один просмотр этого массива циклически сдвигает его элементы на 23 позиции вперед (влево). В своей работе процедура должна использовать вспомогательный массив, отведя ему место в стеке. Выполнить это упражнение при условии, что параметр передается процедуре: а) через регистр; б) через стек.

Помагите!!!!Очень прошу!!!
Отправлен: 09.04.2007, 21:10
Вопрос задал: YaRus (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Пашка
Здравствуйте, YaRus!
Я думаю прошло то время когда тут помогали делать лабы студентам. Мой вам совет ищите старые ответы мож найдете ответ.
Ответ отправил: Пашка (статус: 1-ый класс)
Ответ отправлен: 10.04.2007, 03:41

Отвечает: Зенченко Константин Николаевич
Здравствуйте, YaRus!

Принцип такой:
в начале процедуры
сохраняем регистр BP, в нем запоминаем SP.
вариант Б) извлекаем адрес массива из стека и запоминаем его в регистре SI.
Уменьшаем SP на 23, регистр DI настраиваем на стек, в СХ заносим 23.
Строковой командой MOVSB с префиксом REP переносим в стек 23 байта.
Данные в вспомагательном массиве.
тепенрь DI-начало массива, SI-24-й байт массива, СХ-(100-23) и снова строковые команды. Данные сдвинуты.
SI-начало вспомагательного массива, DI-уже установлен, СХ-23 и снова строковые команды. Данные сдвинуты.
Из регистра ВР востанавливаем SP и из стека востанавливаем ВР.
Возвращаемся в место вызова. для варианта Б)возврат с корекцией стека
PS:стек лутше изменять на четное число
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: 10-ый класс)
Ответ отправлен: 10.04.2007, 10:41


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.49 от 14.04.2007
Яндекс Rambler's Top100

В избранное