WMmail.ru - сервис почтовых рассылок

четверг, 11 июня 2020 г.

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

  
Отправляйте AMP-рассылки вместе c Sendsay!
  
  
  
Subscribe.ru
RFpro.ru: Ассемблер? Это просто! Учимся программировать

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

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

cain52
Статус: 3-й класс
Рейтинг: 3
• повысить рейтинг »
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0
• повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 0
• повысить рейтинг »

• Assembler

Номер выпуска:1765
Дата выхода:11.06.2020, 21:45
Администратор рассылки:Лысков Игорь Витальевич (Мастер-Эксперт)
Подписчиков / экспертов:85 / 25
Вопросов / ответов:1 / 1

Консультация # 198857: Уважаемые Игорь Витальевич, и эксперты, здравствуйте, MASM 6.11/13 для DOS, Windows 7, 64-bit, DOS Box Emulator. написал простой Листинг для экспериментирования (см. присоединенный файл). AfdPro показывает, что для второго набора команд в коде,
Код (Assembler) ::
...

Консультация # 198857:

Уважаемые Игорь Витальевич, и эксперты,
здравствуйте,

MASM 6.11/13 для DOS, Windows 7, 64-bit, DOS Box Emulator.

написал простой Листинг для экспериментирования (см. присоединенный файл).

AfdPro показывает, что для второго набора команд в коде,

Код (Assembler) :: выделить код
mov si,1 mov bx,mas1[si] add ax,bx


в регистр BX заносится 0700h, а не 0007h.

подскажите, пожалуйста, почему в данной ситуации возникает такой "артефакт" ?

Спасибо.

---------------------------------------
Код (Assembler) :: выделить код
Cseg1 segment org 100h  _start:  	xor ax,ax  	mov si,0 	mov bx,mas1[si] 	add ax,bx 	 	mov si,1 	mov bx,mas1[si] 	add ax,bx 	 	mov si,1d 	 	int 20h 	 mas1 dw 4,7,1,9 	 dw 0,3,5,8 	 dw 6,2  Cseg1 ends end _start

Дата отправки: 06.06.2020, 21:42
Вопрос задал: Ильдар Рифович Альмиев (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


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

Здравствуйте, Ильдар Рифович Альмиев!

Команда mov bx,mas1[si] читает слово по адресу: mas1 + si

  • во время компиляции процессор подставляет вместо mas1 реальный адрес в памяти, в данном случае 0х0119;
  • слово читается так: в младший байт 16-ти битного регистра попадает значение, на которое указывает адрес, в старший - следующий байт;
  • изменяя si - можно добраться к любому адресу относительно mas1. В коде si - принимает значение 0х0000 и 0х0001, поэтому будут читаться BL с адреса 0х0000 BH с адреса 0х0001, при si равном 0х0000 и BL с адреса 0х0001 BH с адреса 0х0002, при si равном 0х0001;
  • массивы проще считывать строковыми командами LODS, при этом в АХ - будет очередной элемент массива, также автоматически изменится SI - на величину(размер в байтах) элемента массива.


Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 11.06.2020, 13:51
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


 
     Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать RFpro.ru: Ассемблер? Это просто! Учимся программировать RFpro.ru: Ассемблер? Это просто! Учимся программировать Все выпуски рассылки
 
Если выпуск не отображается, вы можете прочесть его на сайте

Это сообщение было отправлено на admin10383.deep@blogger.com потому, что вы подписались на рассылку comp.prog.assembler на subscribe.ru.
Чтобы гарантировать получение писем от нас — добавьте наш адрес в адресную книгу.

Вы можете отказаться от получения писем.

Архив рассылки Поддержка подписчиков

Это сообщение сформировано и выслано с помощью Sendsay.Ru

Комментариев нет:

Отправить комментарий