Программа TASM
150 UAHВвести элементы (слова) матрицы размерностью 4х3. Вывести матрицу на экран.
Создать одномерный массив mas1 следующим образом: первый элемент – это целая часть среднего арифметического элементов строки номер 0 матрицы, второй – сумма элементов строки номер 1 матрицы, третий - целая часть среднего арифметического элементов строки номер 2 матрицы и т.д.
Если в массиве mas1 есть равные элементы, вывести mas1 на экран, иначе вывести соответствующее сообщение, сопроводив его пятью звуковыми сигналами.
-
59 Здравствуйте,могу сделать данную программу в С++ или TASM.
Сделать код с подробным описанием.
Понял полностью смысл программы,поэтому никаких проблем с написанием кода не должно быть!
-
На оригинале делать?
-
выполнить требуется на TASM
-
выполнение на языке ассемблера TASM
-

.model small .stack 100h .data rows dw 4 cols dw 3 array dw 4*3 dup (0) ;rows * cols mas1 dw 4 dup (0) index dw 0 crlf db 13,10,'$' buf db 5 dup ('$');,0,3 dup ('$'),'$' msgPress db 13,10,'Press any key...$' msgMatrix db 'Your matrix: $' msgMas db 'Massiv: $' msgEl db 13,10,'Input elements: ',13,10,'$' msgMax db 13,10,'MAX = $' msgCountMax db 13,10,'Count of MAX = $' .code ;макрос вывода на экран текстового сообщения ;str - стока для вывода write macro str push ax push dx lea dx,str ;адрес строки для вывода mov ah,09h ;09h функция int 21h pop dx pop ax endm ;макрос вывода числа на экран ;вход: AX - число для вывода на экран putdigit macro local lput1 local lput2 local exx push ax push cx push -1 ;сохраним признак конца числа mov cx,10 ;делить будем на 10 lput1: xor dx,dx ;чистим регистр dx mov ah,0 div cl ;Делим mov dl,ah push dx ;Сохраним цифру cmp al,0 ;Остался 0? jne lput1 ;нет -> продолжим mov ah,2h lput2: pop dx ;Восстановим цифру cmp dx,-1 ;Дошли до конца -> выход je exx add dl,'0' ;Преобразуем число в цифру int 21h ;Выведем цифру на экран jmp lput2 ;И продолжим exx: mov dl,' ' int 21h pop cx pop ax endm ;макрос ввода числа с клавиатуры ;выход: AX - введенное число indigit macro local lin push bx push cx push dx mov ah,0Ah ;буферизированный ввод lea dx,buf int 21h xor ax,ax xor cx,cx ;разбор количества цифр введенного числа mov cl,[buf+1] ;количество реально введенных символов xor di,di lin: mov dl,10 mul dl mov bl,[buf+di+2] sub bl,30h ;ASCII -> число add al,bl inc di loop lin pop dx pop cx pop bx endm start: mov ax,@data mov ds,ax ;ввод матрицы write msgEl lea bx,array mov cx,rows in1: ;цикл по строкам push cx mov cx,cols mov si,0 in2: ;цикл по колонкам indigit ;макрос ввода числа mov [bx][si],al inc si write crlf loop in2 add bx,cols pop cx loop in1 ;вывод матрицы на экран write msgMatrix lea bx,array mov cx,rows out1: ;цикл по строкам push cx mov cx,cols mov si,0 write crlf out2: ;цикл по колонкам xor ax,ax mov al,[bx][si] ;Выводимое число в регисте AL putdigit ;макрос вывода inc si loop out2 add bx,cols pop cx loop out1 ;поиск максимального элемента в матрице lea bx,array xor ax,ax mov al,[bx][0] mov cx,2 r1: ;цикл по строкам push cx mov cx,cols mov si,0 r2: ;цикл по колонкам cmp al,[bx][si] ja lmax mov al,[bx][si] lmax: add si,1 loop r2 push bx push si lea bx,mas1 mov si,index mov [bx][si],al inc si inc si mov index,si xor al,al pop si pop bx add bx,cols add bx,cols pop cx loop r1 ;---- ;mov si,1 ;mov index,si ;xor si,si ;---- ;поиск минимального элемента в матрице lea bx,array add bx,cols xor ax,ax mov si,1 mov index,si mov al,[bx][0] mov cx,2 r3: ;цикл по строкам push cx mov cx,cols mov si,0 r4: ;цикл по колонкам cmp al,[bx][si] jb lmin mov al,[bx][si] lmin: add si,1 loop r4 push bx push si lea bx,mas1 mov si,index mov [bx][si],al inc si ;cmp si,4 ;je cont inc si ;cont: mov index,si xor al,al pop si pop bx add bx,cols add bx,cols pop cx loop r3 ;Вывод массива mas1 write crlf write msgMas lea bx,mas1 mov cx,index mov si,0 write crlf outmas: xor ax,ax mov al,[bx][si] ;Выводимое число в регисте AL putdigit ;макрос вывода inc si loop outmas add bx,cols pop cx ;press any key write msgPress mov ah,0 int 16h ;exit mov ax,4c00h int 21h end start -
Актуальные фриланс-проекты в категории Десктопные приложения
Разработка кастомного ПО (Android-приложения + CMS) для киосков самообслуживания SUNMI K2 (Фастфуд)
1000 UAH
Ищем опытную команду или Middle/Senior Android-разработчика (возможно, с Full-stack навыками) для создания собственного программного обеспечения для киосков самообслуживания сети заведений быстрого питания. Сейчас наши терминалы работают на базе готового облачного интегратора,… CMS, Десктопные приложения ∙ 17 часов 39 минут назад ∙ 14 ставок |
Нужно сделать миграцию текущей рабочей программы с foxpro на C#Всем привет! у нас есть программа на foxpro (в ней есть несколько модулей, программа для учета), есть исходники программы, при острой необходимости можно проконсультироваться с людьми по поддержке текущей программы что нужно сделать: 1. аналитику, что и как работает, составить… C#, Десктопные приложения ∙ 6 дней 1 час назад ∙ 18 ставок |
ПО Мастер-программа «KONSTRUCTOR»
185 977 UAH
Мы ищем очень опытного C++ разработчика для модернизации существующего ПО (мастер-программы). Программа отвечает за создание производного ПО представляющего аудио-визуальные сеансы психологической коррекции. Текущая версия написана на чистом WinAPI (Visual Studio 2019/2022).… C и C++, Десктопные приложения ∙ 8 дней 14 часов назад ∙ 19 ставок |
Настройка ODOO Enterprise для строительстваНеобхідно побудувати картки та налаштувати зручний імпорт, інтеграцію з ЕДО і загалом Workflow ODOO Компанія займається системною інтеграцією: маємо поставки обладнання В2В або з прямою маржинальністю, або з рібейтами в подальшому. Крім того, ведемо будівельні роботи на об'єктах… Автоматизация управления предприятием, Десктопные приложения ∙ 8 дней 23 часа назад ∙ 7 ставок |
Добавить возможность работы с Новой почтой и Делиери в BAS Малый бизнес 1.6.21.1
5000 UAH
Реализовать по возможности через расширение. Потребна загрузка справочников и создание ТТН. Заполнение данных на отгрузку в Заказе покупателя. Далее на основе заказа создается ТТН. Будет несколько кабинетов. Возможность привязать кабинет к менеджеру или пользователю. Сумма… Десктопные приложения, Управление клиентами и CRM ∙ 12 дней 19 часов назад ∙ 19 ставок |