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
сообщение 24.10.2008 14:31
Сообщение #2


Гость






Какой у тебя ассемблер, уточни...

Вот так должно отработать под TASM-ом (ты сказал, что у тебя матрица организована "по столбцам"):

; ...

.data
mx db 1, 2, 3, 4, 5 ; 1-ый стоблец
db 21, 22, 23, 24, 25 ; 2-ой столбец
db 31, 32, 33, 34, 35
db 41, 42, 43, 44, 45
db 51, 52, 53, 54, 55

rows dw 5 ; число столбцов
cols dw 5 ; число элементов в каждом столбце

to_delete equ 4 ; номер столбца для удаления

.code

; ну, тут разные процедуры, в частности - PrintMatrix для проверки

start:
mov ax, @data
mov ds, ax ; не забываем установить сегментные регистры !!!

push ds
pop es ; установка ES понадобится при использовании REP MOVSB

lea di, mx
call PrintMatrix ; печатаем начальную матрицу


mov ax, rows
sub ax, to_delete
mul cols
mov cx, ax ; счетчик повторений для REP MOVSB

cld ; проход слева направо
mov ax, to_delete
dec ax
mul cols

lea di, mx ; начало матрицы
add di, ax ; "приемник" для REP MOVSB

mov si, di
add si, cols ; "источник"для REP MOVSB

rep movsb ; ds:[si] -> es:[di]
dec rows ; уменьшаем число столбцов

lea di, mx
call PrintMatrix ; печатаем полученную матрицу

; все, можно выходить
mov ax, 4C00h
int 21h

end start

 К началу страницы 
+ Ответить 

Сообщений в этой теме
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


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

 



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