Массив: Сформировать квадратную матрицу порядка n по заданному образцу - Assembler
Формулировка задачи:
Здравствуйте!
Очень нужно, надо срочно сдавать, а за такой короткий срок даже разобраться не успеваю...
Возможно, кому-то уже приходилось справиться с подобным.
1. Сформировать квадратную матрицу порядка n по заданному образцу:
1 2 3 ... n
n n-1 n-2 ...1
1 2 3 ... n
n n-1 n-2 ...1
......
n n-1 n-2 ...1
2. Дана квадратная целочисленная матрица порядка n. Сформировать
результирующий одномерный массив, элементами которого являются строчные суммы
тех строк, которые начинаются с k идущих подряд положительных чисел.
Второе задание связано с матрицей с первого.
И, желательно, пожалуйста, под TASM, Far или emu
Буду очень благодарна
Решение задачи: «Массив: Сформировать квадратную матрицу порядка n по заданному образцу»
textual
Листинг программы
.model small .stack 256 .data array dw 6*6 dup (0) .code start: mov ax, @data mov ds, ax mov es, ax mov cx, 3 mov bx, 0 mov di, 0 _loop1: push cx mov cx, 6 push cx _loop2: inc di mov array[bx], di inc bx inc bx loop _loop2 pop cx _loop3: mov array[bx], di inc bx inc bx dec di loop _loop3 pop cx loop _loop1 call OutArray xor ax, ax int 16h mov ax, 4c00h int 21h OutArray proc mov cx, 6 mov bx, 0 @@1: push cx mov cx, 6 mov dl, ' ' @@2: mov ax, array[bx] call OutInt inc bx inc bx mov ah, 2 int 21h loop @@2 mov dl, 13 mov ah, 2 int 21h mov dl, 10 int 21h pop cx loop @@1 ret OutArray endp OutInt proc push ax push dx push bx push cx push ds push di push cs pop ds test ax, ax jns oi1 mov di, 1 neg ax oi1: xor cx, cx mov bx, 10 oi2: xor dx, dx div bx add dx, '0' push dx inc cx test ax, ax jne oi2 mov ah, 2 cmp di, 1 jne oi3 mov dl, '-' int 21h oi3: pop dx int 21h loop oi3 pop di pop ds pop cx pop bx pop dx pop ax ret OutInt endp end start