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
сообщение 26.10.2008 12:04
Сообщение #2


Гость






Ну, а MASM - это вообще отдельный разговор. Тут все еще проще:

.486
.model flat, stdcall
option casemap :none

include F:\masm32\include\windows.inc ; always first
include F:\masm32\macros\macros.asm ; MASM support macros

; -----------------------------------------------------------------
; include files that have MASM format prototypes for function calls
; -----------------------------------------------------------------
include F:\masm32\include\masm32.inc
include F:\masm32\include\gdi32.inc
include F:\masm32\include\user32.inc
include F:\masm32\include\kernel32.inc

; ------------------------------------------------
; Library files that have definitions for function
; exports and tested reliable prebuilt code.
; ------------------------------------------------
includelib F:\masm32\lib\masm32.lib
includelib F:\masm32\lib\gdi32.lib
includelib F:\masm32\lib\user32.lib
includelib F:\masm32\lib\kernel32.lib

.data
mx dword 1, 2, 3, 4, 5
dword 21, 22, 23, 24, 25
dword 31, 32, 33, 34, 35
dword 41, 42, 43, 44, 45
dword 51, 52, 53, 54, 55

rows dword 5
cols dword 5
to_delete equ 4

.code

start:
call main
exit

main proc

call PrintTable
print chr$(13, 10)

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

dec rows
call PrintTable

Ret
main EndP

PrintTable proc

mov esi, offset mx

mov ebx, cols
mov edx, rows

mov edx, rows
.while edx > 0
push edx
print chr$(13, 10)
pop edx

mov ecx, ebx
.while ecx > 0
mov eax, [esi]
push ebx
push ecx
push edx
print str$(eax)
print chr$(' ')
pop edx
pop ecx
pop ebx
add esi, sizeof(dword)
dec ecx
.endw
dec edx
.endw

Ret
PrintTable EndP
end start

 К началу страницы 
+ Ответить 
1147
сообщение 27.10.2008 11:08
Сообщение #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 6:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"