![]() |
|
|
![]()
|
|
| zalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.5.2005 Репутация: нет Всего: 2 |
Привет всем!
Есть ячейка памяти, обозванная мною x x db 5 к примеру. Вопрос в следующем - как узнать адрес (номер) этой ячейки. (Типа опреатора addr(x) на Паскале). |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
|
|||
|
||||
| zalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.5.2005 Репутация: нет Всего: 2 |
ОК, вопрос исчерпан. Спасибо.
|
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Ну-ка, какой сегментный регистр будет использован? И, главное, почему? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| St. Andrew |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 28.3.2005 Где: Санкт-Петербург Репутация: 1 Всего: 8 |
Позвольте узнать, а это вообще правильная команда? Вообще я мало работал с e... регистрами, но размеры их - 32 бита , а размер Х - байт Насколько я понимаю, команда просто переместит байт в регистр, расширив его до размера двойного слова или же компилятор ругнется....но адрес-то тут при чем? Вопрос про сегментный регистр актуален! Но не буду лишать zalexа возможности найти ответ самостоятельно! Читаем про директиву Assume и директивы упрощенной сегментации! --------------------
Оглянитесь вокруг! В мире так много прекрасного! |
||||
|
|||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
Может все же так?
Это сообщение отредактировал(а) Neitron - 8.11.2005, 10:41 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| oleg1973 |
|
||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
Neitron
смортя какой компилятор использовать fasm
данный код занесет в еах АДРЕС ячейки памяти Х а вот
занесет значение ячейки памяти в еах -------------------- SST 465555 icq 200-512-712 |
||||
|
|||||
| zalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.5.2005 Репутация: нет Всего: 2 |
2 Akina, если не ошибаюсь - то по логике сегментный регистр будет DS, ибо в DS определена X.
Сорри, что не ответил раньше - абстрагировался от мира и читал Абеля. |
|||
|
||||
| zalex |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.5.2005 Репутация: нет Всего: 2 |
Теперь с уверенностью отвечаю - DS. Т.к. если нет директивы Assume, то по умолчанию за сегмент данных отвечает DS. А именно в сегменте данных и находится X. До директив упрощенной сегментации пока не дошел, хотя впечатление уже слождилось. Спасибо за заботу о новичках. Кроме шуток, методы этого раздела форума заслуживают уважения. |
||||||
|
|||||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
zalex
в принципе в мсдосе при запуске СОМ файла, CS=DS а вот в ЕХЕ может быть и не равен так что для уверености можно сделать
п.с. винды это не касается ) -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| rsm |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Зависит от компилятора - какой сегмент будет наиболее удобен, такой он и возьмет. Например:
|
||||
|
|||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
rsm
SS:[EBP-5] к делу не относится это стековый фрейм -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Какая разница, откуда конкретно берется адрес переменной - из стэка или из сегмента данных? Главное что: 1. Вариантов получается два (стэк и сегмент данных); 2. Оно работает. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
не верно ) сегменты явно задаются (в асм компиляторах) -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |