Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 22:13   #1
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
Печаль Не получается разобраться с xlat (assembler)

Двести раз перечитала параграф учебника, посвященный xlat, но никак в толк не возьму.

Код:
dat1 segment
	b db 'Goodbye!',10,13
	c db 37h,'$'
dat1 endS                              

...

	mov al,3
	mov ch,offset al
	xlat
Почему в al в итоге записывается 65? По адресу смещения 3 находится "о", ее эквивалент 6F, но никак не 65. Мозг взрывается уже(
sunny_alice вне форума Ответить с цитированием
Старый 11.05.2011, 22:18   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
mov ch,offset al
Что єэто? ) смещение таблицы должно быть в bx (или ebx)
Son Of Pain вне форума Ответить с цитированием
Старый 11.05.2011, 22:26   #3
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию

исключительно в bx? вот идиотка ><
sunny_alice вне форума Ответить с цитированием
Старый 11.05.2011, 22:27   #4
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию

Son Of Pain, написала mov bx,offset al
теперь ошибка - несоответствие типов
sunny_alice вне форума Ответить с цитированием
Старый 11.05.2011, 22:31   #5
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Потому что должно быть "mov ebx, offset b", видимо Зачем брать смещение регистра?
Son Of Pain вне форума Ответить с цитированием
Старый 11.05.2011, 22:48   #6
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию

Son Of Pain, теперь записывается не 65, а 64, что по сути не легче)
проблема изначальная осталась((
sunny_alice вне форума Ответить с цитированием
Старый 11.05.2011, 23:39   #7
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Правильно записывается, они же с нуля считаются :D
Son Of Pain вне форума Ответить с цитированием
Старый 11.05.2011, 23:54   #8
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию

Son Of Pain, так там должно быть 6F же вообще, разве нет?
Что-то я тогда вообще не понимаю сути xlat(((
sunny_alice вне форума Ответить с цитированием
Старый 11.05.2011, 23:57   #9
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Там будет 6f, если ты в al вместо тройки запишешь двойку )
Son Of Pain вне форума Ответить с цитированием
Старый 12.05.2011, 00:05   #10
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию

Son Of Pain, поняла твой предыдущий пост, с нуля же! Дурья башка)))
Спасибо большое!))
sunny_alice вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается разобраться в программе с указателями sunny_alice Паскаль, Turbo Pascal, PascalABC.NET 15 16.04.2011 22:26
проболел,много тем пропустил ... не получается разобраться bennya Фриланс 1 15.01.2011 00:09
Не получается использовать макрос GetStr(Assembler) depocomp Помощь студентам 8 16.05.2009 15:12
не получается разобраться в коде ! разъясните пожалуйста! код внутри! Lion_paint Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2009 09:30