РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты в разделе Номер выпуска: | 1655 | Дата выхода: | 24.09.2017, 11:45 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 44 / 16 | Вопросов / ответов: | 1 / 1 | Консультация # 191366: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Имеется задача. Даны 3 квадратные матрицы различных размерностей. Для каждой из них заменить нулями все ее четные элементы, расположенные на главной диагонали или выше нее. Подсчитать количество таких замен. Имеется код TASM(очень корявый, возможно неработающий), но... Консультация # 191366: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Имеется задача. Даны 3 квадратные матрицы различных размерностей. Для каждой из них заменить нулями все ее четные элементы, расположенные на главной диагонали или выше нее. Подсчитать количество таких замен. Имеется код TASM(очень корявый, возможно неработающий), но программа нужна на NASM
Дата отправки: 19.09.2017, 11:37 Вопрос задал: ksenya241 (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Зенченко Константин Николаевич (Модератор): Здравствуйте, ksenya241!
Писал в FASM, компилировал NASM:
org 100h mov cx,3 mov di,ddArray mov si,dwSize @@01: call inputMatrix add si,2 loop @@01 mov cx,3 mov di,ddArray mov si,dwSize @@02: call jobMatrix add si,2 loop @@02 mov cx,3 mov di,ddArray mov si,dwSize @@03: call outputMatrix add si,2 loop @@03 xor ax,ax int 16h ret inputMatrix: inc byte[dbMatrixSize] inc byte[dbMatrixNumber] push cx IM0: mov ah,9 mov dx,dbEnterSize int 21h call inputNumber or ax,ax jz IM0 mov [si],ax mov cx,[si] IM1: push cx call convertNumber mov [dwRowIn],ax mov cx,[si] IM2: call convertNumber mov [dwColIn],ax mov ah,9 mov dx,dbEnterNumber int 21h call inputNumber stosd loop IM2 pop cx loop IM1 pop cx ret jobMatrix: push cx mov cx,[si] JM1: mov bx,cx mov cx,[si] JM2: cmp bx,cx jb JM3 mov eax,[di] test eax,1 jnz JM3 xor eax,eax mov [di],eax JM3: add di,4 loop JM2 mov cx,bx loop JM1 pop cx ret outputMatrix: push cx inc byte[dbMatrixName] xor cx,cx call convertNumber mov [dwRowOut],ax mov [dwColOut],ax mov ah,9 mov dx,dbOutputMatrix int 21h mov cx,[si] OM1: push cx mov al,10 int 29h mov al,13 int 29h mov cx,[si] OM2: mov eax,[di] call outputNumber add di,4 loop OM2 pop cx loop OM1 pop cx ret inputNumber: push di xor edi,edi mov ebx,10 IN1: xor ax,ax int 16h cmp al,13 jz IN2 cmp al,'0' jb IN1 cmp al,'9' ja IN2 int 29h and eax,0Fh xchg edi,eax xor edx,edx mul ebx add edi,eax jmp IN1 IN2: mov eax,edi pop di ret outputNumber: push cx mov ebx,10 xor cx,cx ON1: xor edx,edx div ebx push dx inc cx or eax,eax jnz ON1 mov al,' '-30h ON2: push ax inc cx cmp cx,6 jb ON2 ON3: pop ax add al,30h int 29h loop ON3 pop cx ret convertNumber: mov ax,[si] sub ax,cx aam add ax,3031h xchg al,ah ret dbEnterSize db 10,13,'Enter matrix ' dbMatrixSize db '@ size:$' dbOutputMatrix db 10,10,13,'Output matrix ' dbMatrixName db '@[' dwRowOut dw 0 db ',' dwColOut dw 0 db ']:$' dbEnterNumber db 10,13,'Enter value ' dbMatrixNumber db '@[' dwRowIn dw 0 db ',' dwColIn dw 0 db ']:$' dwSize dw 0,0,0;3 dup(?) ddArray dd 0 Единственное, на что ругался NASM, это не инициализированные переменные, пришлось "?" заменить на "0".
Удачи!  | Консультировал: Зенченко Константин Николаевич (Модератор) Дата отправки: 19.09.2017, 16:16
Прикреплённый файл: посмотреть » [52.7 кб]5 Быстро и четко, что нужно объяснят. Огромное спасибо ----- Дата оценки: 20.09.2017, 18:31 | Рейтинг ответа: +1 |
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий