Программа 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, Десктопні додатки ∙ 16 годин 34 хвилини тому ∙ 14 ставок |
Потрібно зробити міграцію поточної робочої програми з foxpro на C#Всім привіт! У нас є програма на foxpro (в ній є кілька модулів, програма для обліку), є вихідники програми, при гострій необхідності можна проконсультуватися з людьми по підтримці поточної програми Що потрібно зробити: 1. Аналіз, що і як працює, скласти список всього зайвого,… C#, Десктопні додатки ∙ 6 днів тому ∙ 18 ставок |
ПО Мастер-програма «KONSTRUCTOR»
185 977 UAH
Ми шукаємо дуже досвідченого C++ розробника для модернізації існуючого ПЗ (майстер-програми). Програма відповідає за створення виробного ПЗ, що представляє аудіо-візуальні сеанси психологічної корекції. Поточна версія написана на чистому WinAPI (Visual Studio 2019/2022).… C та C++, Десктопні додатки ∙ 8 днів 13 годин тому ∙ 19 ставок |
Налаштування ODOO Enterprise для будівництваНеобхідно побудувати картки та налаштувати зручний імпорт, інтеграцію з ЕДО і загалом Workflow ODOO Компанія займається системною інтеграцією: маємо поставки обладнання В2В або з прямою маржинальністю, або з рібейтами в подальшому. Крім того, ведемо будівельні роботи на об'єктах… Автоматизація управління підприємством, Десктопні додатки ∙ 8 днів 22 години тому ∙ 7 ставок |
Додати можливість роботи з Новою поштою та Делівері у BAS Малий бызнес 1.6.21.1
5000 UAH
Реализувати по можливості через розширення. Потрібена завантаження довідників та створення ТТН. Заповнення даних на відвантаження у Замовленні покупателя. Далі на основі замовлення створюється ТТН. Буде кілька кабінетів. Можливість прив'язати кабінет до менеджера чи користувача.… Десктопні додатки, Управління клієнтами та CRM ∙ 12 днів 18 годин тому ∙ 19 ставок |