Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 27.11.2021
Сообщений: 8

Как происходит объявление, обработка и адресация двумерных массивов на ассемблере для архитектур PIC и ARM?

27.11.2021, 20:44. Показов 1765. Ответов 8

Студворк — интернет-сервис помощи студентам
Как происходит объявление, обработка и адресация двумерных массивов на ассемблере для архитектур PIC и ARM? Нужны просто примеры кода как для Intel
Помогите пожалуйста, если кто знает, нигде не могу найти ответ
Миниатюры
Как происходит объявление, обработка и адресация двумерных массивов на ассемблере для архитектур PIC и ARM?  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2021, 20:44
Ответы с готовыми решениями:

Возможно ли создать одну ОС как для ARM так и для х86 архитектур в теории?
Всем привет! У меня такой вопрос, возможно ли создать одну ОС как для арм так и для х86 архитектур в теории? Если да, то насколько это...

Вложенный цикл for и адресация двумерных массивов
Возникла проблема со вложенным циклом For. Мне нужно реализовать ввод/вывод матрицы, для этого нужно сначала разобраться с адресацией...

Обработка двумерных числовых массивов(1) и обработка текстовой информации(2)
помогите пожалуйста, без этого зачёт не поставять. мне нужно (1) "Найти минимум среди сумм модулей элементов диагоналей квадратной...

8
4045 / 2656 / 583
Регистрация: 11.09.2009
Сообщений: 9,492
28.11.2021, 02:10
Лучший ответ Сообщение было отмечено Vadim_783 как решение

Решение

Цитата Сообщение от Vadim_783 Посмотреть сообщение
на ассемблере
Физически - память одномерная. У каждой ячейки есть адрес. В памяти можно "объявить" массив - выделить (зарезервировать) для него место, т.е. определить, где он будет расположен, какую область памяти займёт, какой у него начальный адрес. Для адресации внутри массива используются индексы ячейки массива.
Для физического доступа к ячейке массива, используется регистр-указатель физического адреса ячейки памяти, в который загружается физический адрес памяти, рассчитанный на основе индексов массива. Ячейка массива по размеру совершенно необязательно должна совпадать с размером ячейки физической памяти. Например, элементом массива может быть картинка размером 8х16 байт. Тогда добавится ещё и адресация внутри картинки. Как вы формируете массив и его индексацию - это дело вашей фантазии.
Например, для статического двумерного массива байтов, вам нужно два индекса: номер в строке и номер в колонке. Чтобы получить физический адрес ячейки в памяти, нужно к адресу начала массива прибавить индекс строки, умноженный на количество колонок в строке, и прибавить индекс колонки.
Ну а какая архитектура - это вообще не имеет никакого значения. Команды могут использоваться разные, но физический принцип один.
1
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
29.11.2021, 14:46
Цитата Сообщение от i8085 Посмотреть сообщение
Физически - память одномерная
да щаз ).

PS: придрался, по сути, к слову "физический" (у Вас в сообщении 7 раз используется). Потому что программист по идее не должен знать как организована память. Для него просто единственным аргументом ячеек выступает ее адрес (в большинстве случаев он байтный), поэтому, память в побайтной адресуемой последовательности можно считать "одномерной". Но это частные случай употребления. Допустим, при побитном значении - биты могут иметь "двумерную схему" (что уже ближе к реальной архитектуре памяти)
0
4045 / 2656 / 583
Регистрация: 11.09.2009
Сообщений: 9,492
29.11.2021, 18:50
Цитата Сообщение от Voland_ Посмотреть сообщение
программист по идее не должен знать как организована память.
Речь идёт об Ассемблере.
"Не должен знать" - это скорее про кодеров и ардуинщиков. Программист, тем более на Ассеблере, должен хорошо знать железо.
А с памятью... Можно конечно заморочить голову ещё и страничной, и виртуализацией... Вот только к размерности массивов это каким боком?
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
30.11.2021, 08:52
Цитата Сообщение от i8085 Посмотреть сообщение
Вот только к размерности массивов это каким боком?
В таком, что нет никакого "физического массива", ни на ассемблерном, ни на Сишном уровне ). В общем случае вы манипулируете с указателем и чтением по адресам, и только. Поэтому, "физически" одномерно лишь адресное пространство, но не память и тем более, не массив.
0
4045 / 2656 / 583
Регистрация: 11.09.2009
Сообщений: 9,492
30.11.2021, 11:26
Цитата Сообщение от Voland_ Посмотреть сообщение
и тем более, не массив.
А я что-то другое написал?
Цитата Сообщение от i8085 Посмотреть сообщение
к размерности массивов это каким боком?
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
30.11.2021, 16:15
Цитата Сообщение от i8085 Посмотреть сообщение
А я что-то другое написал?
да,
Цитата Сообщение от Voland_ Посмотреть сообщение
придрался, по сути, к слову "физический" (у Вас в сообщении 7 раз используется).
что не понятно?
0
4045 / 2656 / 583
Регистрация: 11.09.2009
Сообщений: 9,492
30.11.2021, 16:50
Voland_, я давно привык, что очень часто не удаётся достичь полного взаимопонимания. И меня это нисколько не беспокоит.
Если вы считаете нужным что-то дополнить или поправить в ответе для Vadim_783, - пожалуйста, продолжайте.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
01.12.2021, 09:24
Цитата Сообщение от i8085 Посмотреть сообщение
пожалуйста, продолжайте.
...единственное, что я бы мог добавить по теме это то, что надо читать требования конкретной платформы к доступу к физической памяти, обычно состоящие в нужном выравнивании записи/чтения ячеек по адресу. Обычно компилятор (Си) об этом "знает" и учитывает, а в АСМе можно натолкнуться на HardFault или просто неравильные данные при чтении, что хуже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2021, 09:24
Помогаю со студенческими работами здесь

Работа для программиста микроконтроллеров (AVR,PIC,ARM...) Питер
Предлагается работа вне штата . На каждый заказ заключается трудовое соглашение. В обязанности входит: - разработка ПО (возможно и...

Обработка массивов двумерных
Всем привет, прошу помочь с написанием программы. В матрице имеется столбец, сумма элементов которого равна нулю. Необходимо...

Обработка двумерных массивов
Дана матрица вещественных чисел. Получить вектор из нулей и единиц по правилу: элемент равен 1, если соответствующая строка образует...

Обработка двумерных массивов
Необходимо выполнить заданную обработку числового двумерного массива, имеющего произвольное количество строк(N) и столбцов(M). В каждом из...

Обработка двумерных массивов
Определить наибольшее значение заработной платы работника 1 месяц-8000 2 месяц-12000 3 месяц-13000


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru