IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Помогите решить задачу с матрицей (ассемблер)
1147
сообщение 8.09.2008 16:39
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Объясните пожалуйста как можно выполнить следующее задание: Дана матрица 6х5. Вычеркнуть столбец с заданным номером.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 2.11.2008 20:29
Сообщение #2


Гость






Цитата
как-то там слишком много всего написано. Мне в институте преподаватель сказал что это делается гораздо проще. С помощью двух циклов-внутренний по строкам, внешний по столбцам
С твоим преподавателем в принципе все понятно... "Легче", конечно, сделать 2 цикла, вместо того одного, который сейчас у меня... А на MASM32 он что, распечатать матрицу (именно для этого используются у меня еще 2 цикла) может одним вызовом? Флаг ему в руки, пусть вызывает... Больше не получишь полных решений, буду приводить только тот кусок, который реализует задание... Вот:

Цитата

	mov eax, rows
sub eax, to_delete
mul cols
mov ecx, eax

cld
mov eax, (to_delete-1)*sizeof(dword)
mul cols

mov edi, offset mx
add edi, eax

mov esi, edi
mov eax, sizeof(dword)
mul cols
add esi, eax
rep movsd ; Один единственный цикл, больше никаких циклов нигде нет...

Все остальное к заданию напрямую не относится... Жду более "легкого" решения...

Цитата
Дан одномерный массив: 1,3,2,4,7,3. нужно удалить цифру 2 (тоесть сдвинуть 4,7,3 влево). какие адреса нужно указывать в ES и EDI?
Какое ЭТО имеет отношение к теме? Это не удаление столбца в матрице, записанной ПО СТОЛБЦАМ. Это удаление столбца в матрице, записанной ПО СТРОКАМ. Разницу замечаешь? Надо было говорить сразу, что тебе нужно... Тем более, тебя еще и переспросили...
В ESI - адрес "четверки", в EDI - адрес "двойки". Типы данных ты не привел, поэтому смещения от начала массива высчитывай сам... Удачи...

Сообщение отредактировано: volvo - 2.11.2008 20:36
 К началу страницы 
+ Ответить 
1147
сообщение 2.11.2008 21:35
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Жду более "легкого" решения...

как сделаю, обязательно выложу
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
1147   Помогите решить задачу с матрицей (ассемблер)   8.09.2008 16:39
мисс_граффити   На каком этапе выполнения возникают сложности? Пок...   8.09.2008 16:52
1147   Я вообще не представляю как в компиляторе можно пр...   8.09.2008 17:09
мисс_граффити   (просьба не придираться - объясняю все упрощенно, ...   8.09.2008 21:19
1147   большое спасибо мисс граффити!   9.09.2008 9:31
1147   Задача такая: Дана матрица 6х5. Вычеркнуть столбец...   19.10.2008 14:25
Lapp   Вычеркнуть столбец с заданным номеромКак организов...   19.10.2008 18:55
1147   по столбцам   20.10.2008 0:44
Lapp   по столбцамНу, тогда все просто. Кусок памяти,нач...   20.10.2008 2:50
1147   мне непонятно только как и где задать номера столб...   20.10.2008 11:49
Lapp   как и где задать номера столбцов матрицы Их не над...   21.10.2008 0:09
1147   вот у меня кое-что получилось, но неправильно... в...   21.10.2008 21:46
volvo   Какой у тебя ассемблер, уточни... Вот так должно ...   24.10.2008 14:31
1147   у меня Radasm   25.10.2008 19:15
volvo   RadASM - это среда разработки... Она работает со м...   25.10.2008 20:57
1147   тогда Masm Добавлено через 14 мин. masm32 точне...   25.10.2008 22:12
volvo   Ну, а MASM - это вообще отдельный разговор. Тут вс...   26.10.2008 12:04
1147   спасибо, попытаюсь разобраться...   27.10.2008 11:08
Lapp   1147, почему надо было создавать две одинаковые те...   30.10.2008 3:51
1147   допустим я вычислил номер элемента который нужно с...   2.11.2008 18:12
volvo   В esi - адрес ячейки, откуда перемещать, в edi - а...   2.11.2008 18:34
1147   смотрел разумеется. Но как-то там слишком много вс...   2.11.2008 19:05
volvo   С твоим преподавателем в принципе все понятно... ...   2.11.2008 20:29
1147   Жду более "легкого" решения... как сдел...   2.11.2008 21:35
Гость   Более легкое решение: ;Дана матрица 6х5. Вычеркн...   18.11.2008 12:41
1147   блин это не гость. Это я выложил более легкое реше...   18.11.2008 12:43
volvo   Угу... Настолько легкое, что компилировать его MAS...   18.11.2008 15:46
1147   ее основная функциональность-удалять заданный стол...   19.11.2008 17:27
1147   кроме того программа написана в masm32, с использо...   19.11.2008 17:55
Гость   Нужно с клавиатуры ввести предложение а после заме...   1.05.2013 15:29
Гость   [quote name='Гость' date='1.05.2013 15...   1.05.2013 15:31


 Ответить  Открыть новую тему 
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.12.2024 7:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"