|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.02.2016, 13:28 | #1 |
Пользователь
Регистрация: 02.02.2016
Сообщений: 10
|
Возможно ли элементы массива поместить в регистр?
Здравствуйте уважаемые участники. Недавно начал изучать язык ассемблера и столкнулся с задачей. При попытке поместить элемент(элементы) массива в регистр в нем(регистре EAX) наблюдается значение 00403000 откуда и почему оно появилось, а не 0000009A?
Исходный код программы: Код:
Последний раз редактировалось greenblue; 02.02.2016 в 16:10. |
02.02.2016, 16:01 | #2 |
Пользователь
Регистрация: 02.02.2016
Сообщений: 10
|
Дополню вопрос
"Можно ли отобразить все элементы массива (4шт) во все байты (4шт) регистра EAX?" т.е. Значение первого байта массива в младший байт регистра, Значение второго байта массива в более старший байт регистра и тд? Таким образом заполнить 4 байта EAX значениями четырех байтов массива, или это невозможно? (что бы содержание регистра EAX было 9A9A9A9A) Последний раз редактировалось greenblue; 02.02.2016 в 16:12. Причина: Уточнение(дополнение) |
02.02.2016, 16:13 | #3 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
02.02.2016, 16:17 | #4 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Значение 00403000h похоже на адрес, ибо 00400000h -- типичная IMAGE_BASE exe-файла. Имя переменной в ассемблере по умолчанию трактуется как адрес, а чтобы получить значение, нужно задать размерность (и использовать модификатор ptr в некоторых ассемблерах), или использовать квадратные скобки:
Код:
|
02.02.2016, 16:29 | #5 | |
Пользователь
Регистрация: 02.02.2016
Сообщений: 10
|
Цитата:
Спасибо, про квадратные скобки знаю- что это адрес, дело в том, что если проверяю адрес [a1] (в своем исходном коде), то по этому адресу находится первый элемент массива. Так как идентификатор массива относиться только к первому его элементу. Но при проверке содержимого переменной [a2] в строке Код:
При коде Код:
Можно заполнить младшую часть регистра EAX, как запись в AH и AL Код:
А как заполнить все байты регистра EAX всеми элементами массива, что бы было EAX = 9A9A9A9A, или так невозможно? Последний раз редактировалось greenblue; 03.02.2016 в 08:26. Причина: дополнение |
|
02.02.2016, 16:52 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Ну вам же показали: задать размерность dword или dword ptr
|
02.02.2016, 18:55 | #7 |
Пользователь
Регистрация: 02.02.2016
Сообщений: 10
|
Извиняюсь за невнимательность
Получилось через Код:
Vapaamies спасибо, что подсказали p51x спасибо за объяснение и указание Последний раз редактировалось greenblue; 02.02.2016 в 18:59. Причина: дополнено |
14.02.2016, 11:58 | #8 |
Пользователь
Регистрация: 02.02.2016
Сообщений: 10
|
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти минимальный и максимальный элементы массива Х и поменять их в массиве местами. Элементы массива вычисляются по формуле Xi=(( | Милашечка | Помощь студентам | 0 | 26.05.2013 13:01 |
Для матрицы и массива (заданы номера столбцов) найти минимальные элементы, поместить в массив, найти сред. ариф.(Delphi) | nucweapon | Помощь студентам | 5 | 26.10.2011 09:37 |
Поместить элементы Одного массива, в начало другого в обратном порядке. | Adrenalin4 | Общие вопросы C/C++ | 2 | 15.11.2010 21:51 |
Построить массив, в который поместить все элементы второго массива, оканчивающиеся на цифру 5 | Паскалька^^ | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 07.01.2009 02:54 |