|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.11.2016, 16:39 | #1 |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
TASM. Переменная в квадратных скобках - значение или адрес?
Доброго времени суток!
Начал читать книжку по Асму (tasm) за авторством Тома Свана. на 56 стр. есть разъяснение касательно употребления квадратных скобок в tasm, на примере команды MOV Как утверждается: если операнд в скобках - то он означает данные если операнд без скобок - то он означает адрес (на данные) пишу такой код Код:
Прогоняя программу в Турбо-дебаггере - вижу, что в AX и BX записываются 77h и 88h соответсвенно. Хотя в ax - должен записаться адрес переменной Х, а не ее значение... Автор врет??? Можно ли как-нибудь вытащить адрес переменной, за исключением применения Код:
- без скобок - адрес - со скобками - значение
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. |
08.11.2016, 17:49 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
У меня тасм работает как и положенно. Без скобок смещение со скобками значение.
Может просто совпадение? http://bitsavers.informatik.uni-stut...sers_Guide.pdf
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
08.11.2016, 21:50 | #3 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Pavia, как прочитать SMBus? В одном месте видел, что ты читал её но только на паскале.. На асме подскажи.. Мне нужно считать EDID от моника. Есть какие-нить идеи? Был-бы благодарен.
Нашедшего выход - затаптывают первым..
|
09.11.2016, 05:35 | #4 | |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
Цитата:
полный код такой: Код:
(см. скрин TD) при попытке указания режима IDEAL и\или другой модели памяти - компоновщик выдает предупреждение, что дескать: что X - нужно брать в скобки, но тем не менее создает OBJ файл Кстати, TD выдает в конце код возврата "exit code 119" - хотел сразу спросить: где взять список расшифровок значений кодов возрата ? Pavia Можно попросить прогнать тебя данный исходник, и посмотреть выдает ли он все-таки адрес? Какая у тебя версия Tasm'a ? p-S: ОС - Win 7 starter Tasm - 4.1 Tlink - 7.1.30.1
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. Последний раз редактировалось Niro; 09.11.2016 в 05:39. |
|
09.11.2016, 07:40 | #5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Я работаю с 5 версией, компилирую под виндоус режим идиал. Из-за виндоуса поведение компилятора сильно отличпется.
Под дос да там присваевается значение,. там использую слово OFFSET ддя получения адресса. MOV AX, OFFSET x
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
09.11.2016, 08:51 | #6 |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
Ладно, тогда возник еще вопрос:
Можно ли поменять адреса, на которые ссылаются переменные? Т.е.: переменная А имеет адрес 100500 переменная В имеет адрес 200500 Можно ли сделать так, чтобы: А ссылалась на адрес 200500 В ссылалась на адрес 100500 ?
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. |
09.11.2016, 08:56 | #7 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Используйте 3-ю переменную - указатель, в которой и храните требуемый адрес.
|
09.11.2016, 22:02 | #8 | |
Пользователь
Регистрация: 17.02.2013
Сообщений: 26
|
Цитата:
Код:
В общем, если тебе надо обратиться к операнду по адресу в виде константы, предвари эту константу именем сегмента. 4 - ясен пень это значение 4 [4] - и это тоже значение 4 ds:4 - косвенно по адресу (точнее, смещению) 4 bx - значение регистра bx [bx] - косвенно по адресу в регистре bx А вообще TASM унаследовал синтаксис MASM, который изначально был крив и неоднозначен. Последний раз редактировалось Ethereal2; 09.11.2016 в 22:05. |
|
09.11.2016, 22:10 | #9 | |
Пользователь
Регистрация: 17.02.2013
Сообщений: 26
|
Цитата:
Код:
tasm /m/l proga.asm tlink /t proga.obj Последний раз редактировалось Ethereal2; 09.11.2016 в 22:16. |
|
10.11.2016, 05:29 | #10 | |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
Цитата:
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычислить значение функции(или функция не определена), значение х вводится с клавиатуры | Safok | Помощь студентам | 2 | 16.12.2014 08:04 |
array ключ и значение в круглых скобках | khochuvseznat | JavaScript, Ajax | 2 | 05.10.2013 22:24 |
Переменная принимающая значение даты и null | wm_leviathan | C# (си шарп) | 1 | 17.06.2012 15:50 |
Какое значение получит переменная k в приведенном фрагменте программы : | zhayr | Помощь студентам | 1 | 17.05.2012 10:48 |
Три квадратных уравнения. Найти минимальное значение среди действительных корней этих уравнений. Паскаль. | GE076 | Помощь студентам | 2 | 17.12.2007 20:41 |