![]() |
|
|
![]()
|
|
| kuller |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
Здравствуйте!!!!
Подскажите пожалуйста в чем дело: ввожу с клавиатуры строку и пытаюсь ее присвоить полю структуры.....но почему то ничего не выходит. есть структура:
это вот в сегмента Data:
затем ввожу строку:
и вот теперь пытаюсь введенное начение присвоить полю MARKA
после того как отработл этот кусок по копированию пытаюсь вывести содержимое поля .... но он ничего не выводит, как-будто в поле ничего не занеслось! Помогите разобраться в чем дело Заранее спасибо! |
||||||||
|
|||||||||
| shurf |
|
|||
|
Просто программист Профиль Группа: Участник Сообщений: 12 Регистрация: 19.7.2007 Где: Чернигов Репутация: нет Всего: нет |
В ary точно есть введённые данные?
Если да, надо проверить, чтобы DS и ES указывали на один сегмент данных, так как MOVSB копирует байт DS:SI в ES:DI Также, надо убедиться, что выбрано правильное направление копирования. Флаг DF должен быть равен 0, чтобы использовалось инкрементирование индексов. Сделать это можно командой CLD |
|||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
shurf, спасибо за советы!!!
но я решил этот вариант отложить и сделал копирование из ary в поле структуры посимвольно с использованием loop, хотя надо бы и с этим разобраться!!! |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
kuller, как-то так
|
|||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
Mikl_, посмотрите, вроде бы делаю все так, а результат опять не получаю, ничего в поле структуры не заносится, вот мой код:
|
|||
|
||||
| shurf |
|
|||
|
Просто программист Профиль Группа: Участник Сообщений: 12 Регистрация: 19.7.2007 Где: Чернигов Репутация: нет Всего: нет |
Я, всё таки, советую проинициализировать сегментный регистр ES, чтобы правильно выполнялась
команда MOVSB Вот так работает:
|
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
kuller,
|
|||
|
||||
| kuller |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
Mikl_, как нам в универе говорили вот этот кусок:
при вводе строки с клавиатуры ОБЯЗАТЕЛЕН, тут: MAX - это максимально возможная длина вводимой строки; LEN - реальная длина введенной строки А по помоду rep movsb изменил в своей программе:
и все отлично работает!!! значит всетаки проблема была в сегментном регистре ES Всем спасибо!!!! |
||||
|
|||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |