Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не работает mov [di+bp],al, tasm, td 
V
    Опции темы
kuzyara
Дата 25.6.2011, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



собственно отладка в td:
раз
user posted image
два
user posted image
почему не изменилась ячейка памяти по адресу [di+bp]? (ячейка 10h)


mac.lib

Это сообщение отредактировал(а) kuzyara - 25.6.2011, 07:00

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  lab4_7v2.asm 1,73 Kb
--------------------
подпись
PM MAIL   Вверх
kuzyara
Дата 25.6.2011, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



...

Это сообщение отредактировал(а) kuzyara - 25.6.2011, 08:15
--------------------
подпись
PM MAIL   Вверх
iff
Дата 25.6.2011, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



Регистр BP по умолчанию "привязан" к сегментному регистру SS, а DI - к DS. Т.е. если выполняется код
Код

mov [bp],al

то значение регистра AL помещается по адресу SS:BP. А если выполняется код
Код

mov [di],al

то значение регистра AL помещается по адресу DS:DI.

При выполнении кода
Код

mov [di+bp],al

Вы ожидаете, что значение регистра AL будет находится по адресу DS:[DI+BP], но это не так: AL будет помещён в память по адресу SS:[DI+BP].

Вывод: нужно принудительно указать, что смещение [DI+BP] должно вычислятся относительно сегментного адреса, находящегося в DS.
Вам нужен код:
Код

mov ds:[di+bp],al

Правда код будет немного больше весить, а возможно и немного медленнее работать.

Либо есть другой вариант: использовать вместо BP регистр BX или SI.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
kuzyara
Дата 28.6.2011, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



 smile 
--------------------
подпись
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0640 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.