Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: фасм, масив и я.  (Прочитано 13545 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« : 31-03-2008 08:46 » 

доброе утро уважаемые завсегдатые форума и гости, я недавно начал изучать асемблер, но масивы не полюбил еще с паскаля, нам задали задание в академии, но вот решить его я не могу... наглеть и просить сделать его вместо меня я не буду, просто объясните мне пожалуйста как создать массив 5 на 5 и обратится к его элементу... с уважение новичек форума Л.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 31-03-2008 08:54 » 

а какой нужен массив - динамический или статический ?

А для доступа к элементу массива нужно знать адрес начала массива и номер элемента в массиве

адрес_элемента == начало_массива + номер_элемента_zb * размер_элемента
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 31-03-2008 09:06 » 

создать массив = выделить под массив определенный объем памяти
Алексей1153++,  с точки зрения создания массива, пофигу - динамический или статический, и там и там резервируется  память под массив

Массив - непрерывная область памяти предназначеная для хранения данных.
необходимо знать начальный адрес массива

адрес_элемента == начало_массива + номер_элемента * размер_элемента

об этом и Алексей1153++ сказал
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 31-03-2008 09:12 » 

ну нет, одно дело резервируется на этапе написания программы, другое - во время выполнения. Когда и почистить надо не забыть. Думаю, человеку всё же статику нужно

dark_rain , и не забудь обратить внимание на постфикс "_zb" , этим самым отмечено, что номер элемента массива в этой формуле - начинающийся с нуля
« Последнее редактирование: 31-03-2008 09:14 от Алексей1153++ » Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 31-03-2008 09:20 » 

почему у народа такое непонимание массивов?
Что в них сложного?
Ведь с массивами сталкиваются каждый день - жилой массив, лесной массив
Чем эти массивы отличаются от программных?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 31-03-2008 09:26 » 

Слав, если вопрос ко мне - у меня нет непонимания массивов, а если к новичку - то тут можно понять , сам помню, лет 10 назад первый раз познакомился с первым массивом - было почему то сложно. Сейчас не могу понять, почему Улыбаюсь Так что не надо удивляться, проще объяснить и всё
Записан

dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #6 : 31-03-2008 09:43 » 

ребят, спасибо большое что взялись за рассмотрение моего вопроса, но все и дело в том что я понимаю что такое массив... но фасм учу неделю только... и не могу понять посредством каких команд мне его создать... можно вас попросить код?
Записан
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #7 : 31-03-2008 09:45 » 

у мя там задание короч создать массив 5 на 5 а потом позагонять его элементы в рон, складывать их вычитать и так далее... то складывать, вычитать все предельно просто, а вот создать его и обратится к элементу я не понимаю как( увы
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 31-03-2008 09:55 » 

dark_rain, для объявлений массива (а это очень просто) тебе , значит, ещё надо понять, что такое массив.

Представь одну переменную, размером в 1 байт. Это будет массив, размером в 1 элемент, каждый элемент - размером в 1 байт.
Так вот, как и количество элементов, так и размер одного элемента у массивов могут быть всякие разные, главное, чтобы все элементы были одного размера (и тип переменных был один) , а также располагаться в памяти элементы должны друг за другом.

Можно разместить в памяти, скажем, 5 переменных:

Код:
myarray:
db 11, 22, 33, 44, 55  ; элементы массива
;      0   1    2    3    4 ; индексы массива)

Мы знаем, что адрес 0-го элемента == myarray . Это начало массива или адрес массива.

адрес 3-го элемента:
Код:
myarray[3]  == 
   myarray + 3 * размер_типа_элемента_в_массиве ==
      myarray+ 3*1
Это всё Улыбаюсь

двумерный массив
00,01,02,03,04,
10,11,12,13,14,
20,21,22,23,24,
30,31,32,33,34,
40,41,42,43,44
расположится в памяти как одномерный:
Код:
db 00,01,02,03,04,  10,11,12,13,14, 20,21,22,23,24, 30,31,32,33,34, 40,41,42,43,44
Записан

dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #9 : 31-03-2008 10:00 » 

еще как бы я понимаю что начало массива и прочее мне нужно посмотреть в olly дебагере, размер элемента мне дан... в задании было сказано что массив из элементов в два баита, то есть dw, да и на самом то деле этот вопрос не столь важен... размер можно сказать любой.
Записан
dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #10 : 31-03-2008 10:06 » 

Леха!! ура! не зря ты теска мой! спасибо огромное! это то что нужно! конечно форум не на эту тему но смотри, если че та нужно в области звука, звукотехники и связанного с этим ты гри, я помогу чем смогу, чуть чуть понимаю в этом)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 31-03-2008 10:08 » 

Код:
dim_x  equ  5
dim_y  equ  5

array
  dw dim_x*dim_y dup 0
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 31-03-2008 10:10 » 

если че та нужно в области звука, звукотехники и связанного с этим ты гри, я помогу чем смогу, чуть чуть понимаю в этом)

а ты на форуме оставайся - тут и такие вопросы, бывает, нужно обсудить ))
Записан

dark_rain
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #13 : 31-03-2008 11:56 » 

дык куда ж я денусь) останусь конечно) тут люди дружные, приятно очень)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines