| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Как загрузить адрес метки в регистр ? |
| Автор: Dreamuchiy 6.1.2014, 02:56 |
| Не могу сообразить никак. Надо в ax загрузить адрес начала блока данных. все ерунда какаято. примерный текст программы: .small .code MOV AX,адрес (вот что тут должно быть после "ах," что бы физический адрес начала "TEXT" был ? Или вообще надо команду "LEA" применить? Опять же что полсле запятой должно быть? .... .... .DATA TEXT DB "HELLO" Будет применятся последовательный вывод символов на экран через int 10 bios. То есть адрес соответственно будет увеличиваться на единицу и продолжать выводить символ за символом. DOS функции использовать не могу потому что программа будет запускаться до загрузки оs. Давно этим не занимался и ничего не могу сообразить который день (( |
| Автор: ФедосеевПавел 6.1.2014, 21:12 |
| lea ax, text или mov ax, offset text |
| Автор: Dreamuchiy 6.1.2014, 23:09 | ||
В общем ерунда какая то получается. С загрузкой адреса я разобрался, спасибо ! А вот далее получается что угодно но только не то что надо. Вот программа:
все остальное работает как надо |
| Автор: Dreamuchiy 7.1.2014, 03:29 |
| P.S. грубо говоря в al назо поместить содержимое ячейки по адресу с меткой "priv" чего я только не перепробовал. все ерунда какая то. И в bx адрес грузится. Но после команды например mov al,[bx] значение регистра al совсем не то (( |
| Автор: ksili 7.1.2014, 13:37 |
| Давно не писал на ассемблере. Но вот такой момент бросился в глаза: если в bx уже нужный адрес, зачем писать [bx]? Пробовал просто mоv ax, bx? |
| Автор: Dreamuchiy 7.1.2014, 14:16 | ||
ну так надо же содержимое ячейки а не значение регистра |
| Автор: Dreamuchiy 7.1.2014, 16:51 |
| Все разобрался. Добавил указатель CS:[SI] В SI смещение а cs текущий сегмент соответственно. Только функция 0a int 10 bios печатает все на одном знакоместе |
| Автор: ФедосеевПавел 8.1.2014, 19:36 |
Смотри http://itnews.3dn.ru/publ/48-1-0-642, http://yandex.ru/yandsearch?clid=9582&text=int+10h&lr=35. |