Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как загрузить адрес метки в регистр ? 
:(
    Опции темы
Dreamuchiy
Дата 6.1.2014, 02:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не могу сообразить никак. 
Надо в  ax загрузить адрес начала блока данных. все ерунда какаято. 
примерный текст программы:

.small
.code
MOV AX,адрес  (вот что тут должно быть после "ах," что бы физический адрес начала "TEXT" был ? Или вообще     надо команду "LEA" применить? Опять же что полсле запятой должно быть?
....
....
.DATA
TEXT DB "HELLO"


Будет применятся последовательный вывод символов на экран через int 10 bios. То есть адрес соответственно будет увеличиваться на единицу и продолжать выводить символ за символом. DOS функции использовать не могу потому что программа будет запускаться до загрузки оs. Давно этим не занимался и ничего не могу сообразить который день ((
--------------------
Мечтаю написать в карман Биллу Гейтсу... Или как минимум посмотреть крах Майкрософт...
PM MAIL   Вверх
ФедосеевПавел
Дата 6.1.2014, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



lea ax, text
или
mov ax, offset text
PM   Вверх
Dreamuchiy
Дата 6.1.2014, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В общем ерунда какая то получается. С загрузкой адреса я разобрался, спасибо ! А вот далее получается что угодно но только не то что надо. Вот программа:
Код

lea bx,priv
cycle:
 push bx
mov al,[bx]       вот тут загружается все что угодно кроме того что надо. Хотя в bx адрес верный
cmp al,255
jz prn_end
mov ah,0ah
mov bh,0
mov cx,0
int 10h
pop bx
inc bx
jmp cycle

.data
priv db "Hello",255 


все остальное работает как надо
--------------------
Мечтаю написать в карман Биллу Гейтсу... Или как минимум посмотреть крах Майкрософт...
PM MAIL   Вверх
Dreamuchiy
Дата 7.1.2014, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



P.S. грубо говоря в al назо поместить содержимое ячейки по адресу с меткой "priv"
чего я только не перепробовал. все ерунда какая то. И в bx адрес грузится. Но после команды например mov al,[bx] значение регистра al совсем не то ((  smile 
--------------------
Мечтаю написать в карман Биллу Гейтсу... Или как минимум посмотреть крах Майкрософт...
PM MAIL   Вверх
ksili
Дата 7.1.2014, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



Давно не писал на ассемблере. Но вот такой момент бросился в глаза: если в bx уже нужный адрес, зачем писать [bx]? Пробовал просто mоv ax, bx?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Dreamuchiy
Дата 7.1.2014, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ksili @ 7.1.2014,  13:37)
Давно не писал на ассемблере. Но вот такой момент бросился в глаза: если в bx уже нужный адрес, зачем писать [bx]? Пробовал просто mоv ax, bx?

ну так надо же содержимое ячейки а не значение регистра
--------------------
Мечтаю написать в карман Биллу Гейтсу... Или как минимум посмотреть крах Майкрософт...
PM MAIL   Вверх
Dreamuchiy
Дата 7.1.2014, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Все разобрался. Добавил указатель CS:[SI]
В SI смещение а cs текущий сегмент соответственно. Только функция 0a int 10 bios печатает все на одном знакоместе
--------------------
Мечтаю написать в карман Биллу Гейтсу... Или как минимум посмотреть крах Майкрософт...
PM MAIL   Вверх
ФедосеевПавел
Дата 8.1.2014, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Dreamuchiy @  7.1.2014,  16:51 Найти цитируемый пост)
Только функция 0a int 10 bios печатает все на одном знакоместе

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

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

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


 




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


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

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