Junior
Статус: Не в сети Регистрация: 15.10.2009 Откуда: от туда
serj писал(а):
Добавлено спустя 7 минут 26 секунд: A1exander, внимательно прочитай и попробуй понять. Пока этого не сделаешь, будешь и дальше задавать глупые вопросы. Переменные - это ячейки в памяти, область данных. Константы - это часть кода программы. Область данных и область программы - это РАЗНОЕ и адресуется через РАЗНЫЕ сегменты(сегментные регистры). С точки зрения процессора, это две совершенно разные структуры. Код программы - это, что исполняется. Хоть она и лежит в памяти, ее трогать нельзя. Область данных - некоторая зона памяти, которую можно читать и писать.
(несколько упростил и утрировал)
Я вас всех понял с первого раза, но вы НЕ ХОТИТЕ понять меня и вдуматься в суть моего вопроса, а продолжаете говорить одно и тоже но другими словами. Вопрос не в том чем отличается константа и переменная, а в том, как они объявляются (зарезервированные разработчиками константы в расчет не берем) Объясню то что мне от вас требуется узнать, на примере языка PHP $index = 10; // создается переменная c именем index define ('const', 10); //создается константа с именем const Вот и все что мне от вас нужно
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Константа не "создается", а "определяется". Возьмите переводчик и переведите слово "define". Константа не лежит в памяти, ее не существует 'физически'. Переменная не 'создается', а резервируется регион памяти, который имеет имя. Переменная (ее регион памяти), в данном случае, расписывается константой (числом) 10. И вообще, переменных в ASM не существует. Есть указатели на память. Эти регионы можно поименовать и назвать 'переменными', но суть не изменится, это всё те-же указатели.
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
A1exander
Код:
A EQU 1 .data B dw 3 .code add ax,B ;транслируется в команду add ax,word ptr ds:[B], опкод процессора содержит АДРЕС ЯЧЕЙКИ ПАМЯТИ, по которой расположено число 3 в сегменте данных (по умолчанию DS) add ax,A ; транслируется в команду add ax,1, опкод процессора содержит САМО ЧИСЛО 1, которое занимает 2 байта в опкоде add al,A ; транслируется в команду add al,1, опкод процессора содержит САМО ЧИСЛО 1, которое занимает 1 байт в опкоде
О боже !!! Неужели нельзя почитать синтаксис языка, на котором пишешь...
Ребята подскажите пожалуйста, нужен код вот такой задачки: Сравнить 50 восьмиразрядных чисел с эталонным, находящимся в регистре R0 банка 0. Несовпадающие числа разместить в массиве с начальным адресом 2Ah. Количество этих чисел записать в регистр A.
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
maco Можно, НО: 1010202: Исходный массив где находится? - Хз. Это вся задача. Как я понял где захотим;) ? А если массив в ОЗУ MС62C64 (к примеру) через "процессорное кольцо" 74HC273 (тож варианты)?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения