Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Матрица


Автор: kleks 8.11.2006, 23:59
Вот тока начал изучать Assembler: вроде бы разобрался в регистрах, стеке, циклах....и т.д. но всё это применить у меня так и не получается. 
Предположим...имеется квадратная матрица произвольного порядка, как в данной матрице удалить все те строки, эл-т которой на главной диагонали отрицателен???
Очень бы хотелось разобраться...на данном примере!!!
Заранее благодарен...  

Автор: anwe 9.11.2006, 00:33
Ну тут можно сказать, что в асме нет понятия n-мерного массива. Все элементы просто идут один за другим и только ты знаешь, где начинаются строки или столбцы.
Пример. Пусть есть матрица А:
1 2 3
4 5 6
7 8 9
В памяти это объявляется так:
Код

a   db   1,2,3,4,5,6,7,8,9

Чтобы было тебе удобнее ее рассматривать при написании программки можно написать так:
Код

а   db   1,2,3
    db   4,5,6
    db   7,8,9

По сути это тоже самое.
А дальше работай. Если действительно хочешь разобраться пытайся делать сам. Вся суть здесь находится в этой строке:
Код

cmp  byte ptr а[bx],0

Организовуешь цикл, где к bx добавляется размерность матрицы и все.
Дерзай! smile 

Автор: kleks 9.11.2006, 00:47
Хорошо...тогда у меня есть след. вопрос: а вообще каким образом можно удалить строку в матрице???

Автор: anwe 9.11.2006, 01:42
Затереть данные, то есть сдвинуть данные, стоящие справа от нужной строки на ее место.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)