| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Как это вообще??? |
| Автор: Artem28 8.5.2012, 21:11 |
| Построить вектор В, элементы которого равны элементам побочной диагонали А(m,m). |
| Автор: iff 9.5.2012, 14:37 | ||||
| Побочная диагональ содержит элементы с индексами i, j, у которых j=(m-1)-i. Соответственно, B[i] = A[i, (m-1)-i], i - целое от 0 до m-1. Однако, т.к. программа будет реализована на ассемблере, то вам придётся по индексам i, j вычислять смещение (относительный адрес) элемента. Смещение элемента можно вычислить как i*m+j. Ниже приведена матрица 4x4 (m=4), где указаны индексы i и j каждого элемента, а также его смещение (в скобках). Восклицательным знаком помечены элементы побочной диагонали.
Можно заметить, что элементы побочной диагонали имеют смещения 3, 6, 9, 12, т.е. (i+1)*(m-1). Действительно, i*m+j=i*m+(m-1)-i=i*(m-1)+(m-1)=(i+1)*(m-1). Код примерно такой:
|
| Автор: Artem28 15.5.2012, 19:04 |
| А можно полносю программу с выводом вектора на экран, а то я вообще не шарю ASM(( |
| Автор: maksnik200 30.6.2013, 11:01 |
Я тоже хотел бы узнать![]() |