0 / 0 / 1
Регистрация: 28.08.2016
Сообщений: 25
1

Пояснение деталей NASM

28.09.2017, 20:06. Показов 556. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток друзья!

Я очень и очень недавно в асме, и очень много неясностей. Помогите мне пож-та уяснить некоторые детали, правильно ли я понял следующие утверждения:

1. Что имя переменного это указатель на ячейку памяти, н-р:
Assembler
1
myname      DB      'Axel'
тут myname это указатель, а [myname] это значение, тоесть 'Axel'?

2. Что регистры общего назначения EAX, ECX, EDX это значения переменных которые там хранятся, а [EAX], [ECX], [EBX] это поинтеры?

3. А регистры EBX наоборот указывают на память, а [EBX] на значение?

Спасибо заранее!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2017, 20:06
Ответы с готовыми решениями:

нужно пояснение по части из курсовой связанной с записями и массивами, напротив вопросов дать пояснение что операторы делают или строчки программы
лучше если конечно дадите по строчное определение что делает программа тут program Cntrl; uses...

[NASM] Ошибка "nasm error more than one input file specified type"
Начал изучать ассемблер сделал все как в методичке и зашел в тупик значит скачал я от сюда инстал...

Из партии в 100 деталей, содержащей 5 % брака, берут для проверки 5 деталей
2. Из партии в 100 деталей, содержащей 5 % брака, берут для проверки 5 деталей. Партия...

Подсчет количества бракованных деталей в партии деталей и вывод их номеров
Помогите, пожалуйста, решить! Буду очень признательна! Составить схему алгоритма и программу...

4
Модератор
Эксперт по электронике
8472 / 4331 / 1642
Регистрация: 01.02.2015
Сообщений: 13,441
Записей в блоге: 8
28.09.2017, 20:18 2
Assembler
1
2
mov eax, 123     ;поместить в eax число 123
mov eax, [123]   ;поместить в eax содержимое ячейки памяти с адресом 123
И всё остальное точно так же.
1
0 / 0 / 1
Регистрация: 28.08.2016
Сообщений: 25
28.09.2017, 20:21  [ТС] 3
а что насчет регистра ЕВХ? Мне почему то кажется что с ним не все так просто судя по кодам которые я просматривал в качестве примеров.
0
Модератор
Эксперт по электронике
8472 / 4331 / 1642
Регистрация: 01.02.2015
Сообщений: 13,441
Записей в блоге: 8
28.09.2017, 20:58 4
Сомневаюсь, чтобы для одного регистра было исключение. Соберите минимальный пример и проверьте.
0
Asm/C++/Delphi/Py/PHP/VBA
6514 / 1962 / 225
Регистрация: 14.12.2014
Сообщений: 4,109
Записей в блоге: 12
29.09.2017, 07:48 5
Цитата Сообщение от Axel92 Посмотреть сообщение
тут myname это указатель, а [myname] это значение, тоесть 'Axel'?
[myname] - это просто указатель на ячейку, а не само значение из памяти. Соответственно через mov al,[myname] и mov eax,[myname] мы получим разные данные: 'A' и 'Axel' соответственно.

Цитата Сообщение от Axel92 Посмотреть сообщение
Что регистры общего назначения EAX, ECX, EDX это значения переменных которые там хранятся, а [EAX], [ECX], [EBX] это поинтеры?
eax, ecx, edx - это внутренние "переменные" процессора, т.е. что в них запишешь, то там и будет: mov eax,12345678h - теперь в eax значение 12345678h. А [eax] - это указатель на память по адресу 12345678h. Т.е. прочитать из памяти 4 байта в edx можно так: mov edx,[eax], записать: mov [eax],edx

Цитата Сообщение от Axel92 Посмотреть сообщение
А регистры EBX наоборот указывают на память, а [EBX] на значение?
Нет. Всё то же самое, что и с другими.

Цитата Сообщение от Axel92 Посмотреть сообщение
а что насчет регистра ЕВХ? Мне почему то кажется что с ним не все так просто судя по кодам которые я просматривал в качестве примеров.
ebx по соглашениям о вызовах должен сохраняться в стеке при изменении, только и всего. Как esi, edi, ebp, esp.

Добавлено через 3 минуты
Единственная "особенность" ebx по сравнению с другими приходит на ум только при использовании инструкции xlat, там хранится адрес таблицы: xlat - это, по сути, mov al,[ebx+al] (хотя так напрямую не напишешь). Ну и ещё он используется в некоторых других инструкциях типа cpuid, cmpxchg8b и т.п. Но это особенность отдельных инструкций, а не регистра
1
29.09.2017, 07:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2017, 07:48
Помогаю со студенческими работами здесь

Сколько нужно взять деталей, чтобы наивероятнейшее число годных деталей было равно 50?
Сколько нужно взять деталей, чтобы наивероятнейшее число годных деталей было равно 50, если...

В партии из 9 деталей 5 стандартных . Найти вероятность того, что среди 6 взятых наудачу деталей 4 нестандартных
В партии из 9 деталей 5 стандартных . Найти вероятность того, что среди 6 взятых наудачу деталей 4...

Смоделировать процесс обработки на станке 100 деталей. Подсчитать число заполненных тележек и число потерянных деталей
Условие задачи: С интервалом времени 5 ± 2мин. детали поштучно поступают к станку на обработку и...

Двое рабочих изготовили вместе n деталей. Первый работал d дней, второй d1 дней. Сколько деталей у каждого рабочего?
Двое рабочих изготовили вместе n деталей. Первый работал d дней, второй d1 дней. Сколько деталей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru