Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как это вообще??? 
V
    Опции темы
Artem28
  Дата 8.5.2012, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.5.2012

Репутация: нет
Всего: нет



Построить вектор В, элементы которого равны элементам побочной диагонали А(m,m).
PM MAIL   Вверх
iff
Дата 9.5.2012, 14:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



Побочная диагональ содержит элементы с индексами 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 каждого элемента, а также его смещение (в скобках). Восклицательным знаком помечены элементы побочной диагонали.
Код

0,0(0)   0,1(1)   0,2(2)   0,3(3)!

1,0(4)   1,1(5)   1,2(6)!  1,3(7)

2,0(8)   2,1(9)!  2,2(10)  2,3(11)

3,0(12)! 3,1(13)  3,2(14)  3,3(15)

Можно заметить, что элементы побочной диагонали имеют смещения 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).

Код примерно такой:
Код

.data
; ...
m equ 4
a dw  13,  67,  78,  0
  dw  15,  40,  100, -1
  dw  -60, 123, 50,  11
  dw  7,   8,   3,   1500
b dw m dup(?)

.code
; ...
mov si, offset a
mov di, offset b
mov cx, m
rep1:
add si, (m-1)*2
mov ax, [si]
mov [di], ax
inc di
inc di
loop rep1
; ...



Это сообщение отредактировал(а) iff - 17.5.2012, 15:47


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Artem28
Дата 15.5.2012, 19:04 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.5.2012

Репутация: нет
Всего: нет



А можно полносю программу с выводом вектора на экран, а то я вообще не шарю ASM((
PM MAIL   Вверх
maksnik200
Дата 30.6.2013, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.6.2013

Репутация: нет
Всего: нет



Я тоже хотел бы узнатьuser posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1039 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.