|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.11.2016, 22:10 | #1 |
Регистрация: 02.10.2016
Сообщений: 9
|
Помогите с адресацией
mov ax,W_TAB+3
это прямая адресация, но нигде не могу найти, что делает "+3"? |
02.11.2016, 02:33 | #2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
допустим у тебя есть массив из 10 байтов с именем W_TAB
db W_TAB 19,28,37,46,55,64,73,82,91,10
|
09.11.2016, 22:50 | #3 | |
Пользователь
Регистрация: 17.02.2013
Сообщений: 26
|
Цитата:
mov ax, константа Но ведь вместо константы можно всегда написать выражение. Его сосчитает ассеблер при компиляции. Например, ты пишешь mov ax, 3+2 ассемблер сосчитает выражение и скомпилирует mov ax, 5 Ну а в твоем случае ассемблер возьмет W_TAB, чтобы это W_TAB ни значило (если W_TAB - метка, то он возьмет адрес этой метки) и прибавит к нему 3. А потом скомпилирует mov ax, результат_этого_сложения |
|
10.11.2016, 23:53 | #4 |
Пользователь
Регистрация: 17.02.2013
Сообщений: 26
|
Только какой это будет иметь смысл ?
Фишка в том, что в MASM (и оттуда из совместимости в TASM) была зачем-то введена типизация. У каждой метки есть тип. И исходя из него ассемблер соображает что ему компилировать. Типа из контекста. Если ты напишешь : W_TAB = 5, то mov ax, W_TAB+3 даст тебе mov ax, 8 ; константа_восемь а если ты напишешь W_TAB dw 1,2,3 то mov ax, W_TAB+3 даст тебе mov ax, косвенно с адреса на 3 больше, чем у метки W_TAB потому-что в первом случае у метки есть тип "константа", а втором случае тип "указатель на слово". Вот такой вот богомерзки неоднозначный синтаксис у MASM/TASM. А у FASM такой неоднозначности нет и там эта команда скомпилируется как выше указал Mikl. |
10.11.2016, 23:57 | #5 |
Пользователь
Регистрация: 17.02.2013
Сообщений: 26
|
--------
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамическое создание форм с адресацией | Алексей_2012 | Общие вопросы Delphi | 24 | 29.04.2015 02:23 |
Проблема с многоуровневой адресацией | grook | Общие вопросы C/C++ | 3 | 18.12.2010 17:15 |
Снова торможу с адресацией... | tae1980 | Microsoft Office Excel | 18 | 28.03.2010 21:05 |
Помогите с адресацией листа в формуле | ABCOz | Microsoft Office Excel | 2 | 09.09.2009 13:38 |
Помогите новичку с адресацией разобраться | Zeneth | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 13 | 16.06.2009 19:55 |