17.02.2019, 08:01 [+3 UTC]
в нашей команде: 3 393 чел. | участники онлайн: 6 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.69 (10.02.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
10.02.2019, 21:59

Форум:
16.02.2019, 15:03

Последний вопрос:
16.02.2019, 13:32
Всего: 148762

Последний ответ:
16.02.2019, 15:37
Всего: 257791

Последняя рассылка:
17.02.2019, 06:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
18.11.2010, 11:05 »
Amfisat
Спасибо! Очень помогли! [вопрос № 180823, ответ № 264143]
20.01.2011, 16:25 »
lupus campestris
Ого! Спасибо большое! smile [вопрос № 181931, ответ № 265523]
03.08.2016, 07:45 »
Telemetrist
Спасибо за подробный и содержательный ответ, он действительно помог мне найти неисправность. Проблема и правда оказалась в цепи ОС, пробило конденсатор С15 который я совсем недавно заменил в блоке регулировок. [вопрос № 189663, ответ № 273992]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 751
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 399
cain52
Статус: 3-й класс
Рейтинг: 267

Перейти к консультации №:
 

Консультация онлайн # 140985
Раздел: • Assembler
Автор вопроса: Alena De Lon
Отправлена: 29.07.2008, 15:52
Поступило ответов: 1

Здравствуйте, Уважаемые эксперты!!!:-)
Объясните, пожалуйста, как работает эта программа, а именно что происходит с 8-15 строки. Что в данном случае обозначают квадратные скобки, я не вижу в отладчике что происходит когда в [di] заносится ah (11 строка).
И еще, подскажите, пожалуйста, где в инете найти на конкретных примерах способы адресации на ассемблере.
Заранее СПАСИБО!!!

Приложение:

Состояние: Консультация закрыта

Ответ # 226975 от Airyashov

; программа считывает строку символов в буфер, затем отображает на экране.
;Функция DOS 0Ah - Считать строку символов из STDIN в буфер
1. .model tiny
2. .code
3. org 100h
4. start:
5. mov ah,0ah; процедура ввод строки
6. mov dx,offset buffer
7. int 21h
;======================================
8. inc dx; адрес буффера ввода +1, теперь dx указывает на dlina - кол-во введенных символов
9. mov di,dx; di=dx адрес переменной dlina
10. mov bl,[di]; записать значение байта по адресу находящемуся в di в bl, кол-во введенных символов, bl=dlina
11. mov [di],ah; записать ah по адресу находящемуся в di, dlina=ah
12. xor bh,bh ;Можно и без этого, но! лучше так.
13. inc di ;di=di+1 теперь di содержит адрес начала строки text
14. mov byte ptr [di+bx],'$' ; записать в конец строки знак доллар, адрес начала строки+кол-во символов в строке
15. dec ah; ah=0Ah-1=09h функция вывод строки
;======================================
16. int 21h
17. ret
buffer db 10 ; максимальная длина ввода строки
dlina db 0 ; фактическая длина ввода
text db 10 dup() ; фактически ввод размещается здесь

end start


Консультировал: Airyashov
Дата отправки: 29.07.2008, 16:46

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 140985

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 1

= общий = | 29.07.2008, 17:43 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата:
Что в данном случае обозначают квадратные скобки, я не вижу в отладчике что происходит когда в [ di ] заносится ah (11 строка).


В своём примере Вы уже использовали несколько видов адресации.
1) Регистровая адресация : mov di,dx - записать в регистр DI значение которое хранится в регистре ВХ.
2) Непосредственная адресация : mov ah,0ah - записать в регистр непросредственное значение 0Аh.
3) Прямая адресация : mov dx,offset buffer - записать в регистр адрес ячейки памяти.
4) Косвенная адресация : mov [ di ],ah - значение регистра записать по адресу в который хранится в регистре DI.
5) Адресация по базе с индексированием : mov byte ptr [ di+bx ],'$' - байт записать по адресу полученному из суммы регистров DI и ВХ.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

неизвестный

# 2

= общий = | 29.07.2008, 18:17

Спасибо всем кто ответил!:-)
Если вы все-таки знаете сайты, где есть ПОДРОБНЕЙШЕЕ описанее о способах адресации, да еще и с примерами, то ПОЖАЛУЙСТА, подскажите!

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 3

= общий = | 29.07.2008, 18:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Почитайте эту книгу С.В. Зубков: Ассемблер для DOS, Windows и Unix, ещё А.Б. Крупник(на второй странице: Дэвид Брэдли, Питер Абель, Виктор Юров, В.Ю. Пирогов, на третей: С.В. Зубков: Assembler. Язык неограниченных возможностей).
Лично я начинал с книг С.В. Зубкова.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 4

= общий = | 29.07.2008, 18:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

В книге С.В. Зубков: Ассемблер для DOS, Windows и Unix, я нашел строение команд ассемблера. Адресация любой команды задается в самой команде. Советую купить т.к. в электронной версии нет полного описания ОП-кодов всех команд.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

неизвестный

# 5

= общий = | 29.07.2008, 22:23

Спасибо, Константин Николаевич!:-)

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13872 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.69 от 10.02.2019
Версия JS: 1.33 | Версия CSS: 3.35