![]() |
|
|
![]()
|
|
| St. Andrew |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 28.3.2005 Где: Санкт-Петербург Репутация: 1 Всего: 8 |
У меня есть небольшой вопрос по поводу адресации. Грубо говоря, я хочу получить второй символ из цепочки байтов. Для этого я беру адрес первого байта, затем инкрементирую его. А потом - хочу получить в al символ, находящийся по новому адресу. Вот здесь возникает проблема.
Мой код:
В строке mov al, [dx] компилятор выдает ошибку. А вот когда я попробовал просто использовать регистр bp, то ошибок не было, но и символ получается не тот. Другие регистры использовать не могу - все заняты...
У меня такое подозрение, что я неправильно с адресацией работаю, но проверить никак не могу...не учили нас этому толком. Нужен ваш опытный совет --------------------
Оглянитесь вокруг! В мире так много прекрасного! |
||||
|
|||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
и все ) получаем в al нужный байт и esi автоматом инкрементируется на 1 -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Payne |
|
||||
![]() Детектив ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 6.4.2005 Где: Петербург Репутация: нет Всего: 10 |
У меня все работало. Для иллюстрации я использовал функцию 02h прерывания 21h - в dl помещал смещение на символ, и на экран выводился нужный символ! Если вместо bp или другого регистра юзать dx, то выдается сообщение об ошибке. Не помню точно, но вроде в пособиях говорится, что нельзя напрямую через dx передавать что-то там (говорю же - не помню точно).
Вот мой кусок кода:
Если ты создаешь exe-шник, а не .com-файл, то вполне возможно, что другой символ получаешь из-за этого. Лучше создавай com. Данный код я привел для иллюстрации. Если тебе нужно просто получить символ в регистр, то не нужно занимать регистры dl и ax. Кстати, если их нужно будет занять, то можешь поместить старые значения в стек, а после необходимых операций извлечь их оттуда.
Побольше работая в отладчике, довольно быстро можно разобраться со всем. |
||||
|
|||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |