Online Compiler Nasm

extern io_get_dec, io_newline, io_print_dec section .bss m resd 1 n resd 1 mx resd 1 i resd 1 j resd 1 massive resd 100 section .text global main main: call io_get_dec mov dword[n], eax call io_get_dec mov dword[m], eax mov dword[i], 0 .for_i: mov dword[j], 0 mov eax, dword[i] mov ebx, dword[n] cmp eax, ebx je .gl .for_j: mov eax, dword[j] mov ebx , dword[m] cmp eax, ebx je .end_j call io_get_dec mov ebx, dword[i] imul ebx, [m] add ebx, dword[j] mov dword[massive + 4 * ebx], eax inc dword[j] jmp .for_j .end_j: inc dword[i] jmp .for_i .gl: mov dword[i], 0 .st_m: mov dword[j], 0 mov eax, dword[i] mov ebx, dword[m] cmp eax, ebx je .end_n mov ebx, dword[i] imul ebx, dword[m] mov eax, dword[massive + 4*ebx] mov dword[mx], eax .st_n: mov eax, dword[j] mov ebx, dword[n] cmp eax, ebx je .end_m mov ebx, dword[j] imul ebx, dword[m] add ebx, dword[i] mov eax, dword[mx] cmp dword[massive + 4*ebx], eax jle .skip mov eax, dword[massive + 4*ebx] mov dword[mx], eax .skip: inc dword[j] jmp .st_n .end_m: inc dword[i] mov eax, dword[mx] call io_print_dec call io_newline jmp .st_m .end_n: xor eax, eax ret
1) Этот код считывает двумерную матрицу размером n×m, затем для каждого столбца находит максимальный элемент и выводит его.

2) Подсказки:
- Обрати внимание, что в коде используется хранение матрицы в одномерном массиве по строкам (row-major order), но при поиске максимумов происходит обращение по столбцам.
- Проверь правильность расчёта индексов при доступе к элементам массива в секциях `.for_j` и `.st_n` — убедись, что умножение и сложение выполняются с нужными значениями.