[tasm] Как сделать проход по всем элементам ниже побочной диагонали матрицы - Assembler
Формулировка задачи:
Добрый день(вечер). Использую тасм. Возникла небольшая проблема при написании кода. В общем ломаю голову и не могу понять как сделать проход по всем элементам ниже побочной диагонали. Кто может исправить код? Сейчас я сделал только проход по побочной диагонали. Заранее спасибо.
Решение задачи: «[tasm] Как сделать проход по всем элементам ниже побочной диагонали матрицы»
textual
Листинг программы
.model small .data n equ 3 a dw 9 dup(?) .code extrn read:near extrn write:near begin: mov ax, @data mov ds, ax mov cx, 9 mov si, 0 m1: call read mov a[si], ax add si, 2 loop m1 mov di, 4;ukazivaet na stolbec v stroke, s kotoroi nach proverku, ;pri eto reg si prohodit po vsem stolbcam tekushei stroki mov bx, 6;nach s pervoi stroki m2: mov si, di m4: test a[bx][si], 1 ; jnz m3; proverka na chetnost mov ax, a[bx][si]; vivod call write ;mov ax,bx ;call write m3: sub si, 2 cmp si, 2 jb m4; add bx, 2*(n+1) sub di, 2 cmp di, 2*n jb m2 exit: mov ah, 4ch int 21h end begin
Объяснение кода листинга программы
.model small .data n equ 3 a dw 9 dup(?) .code extrn read:near extrn write:near begin: mov ax, @data mov ds, ax mov cx, 9 mov si, 0 m1: call read mov a[si], ax add si, 2 loop m1 mov di, 4;ukazivaet na stolbec v stroke, s kotoroi nach proverku, ;pri eto reg si prohodit po vsem stolbcam tekushei stroki mov bx, 6;nach s pervoi stroki m2: mov si, di m4: test a[bx][si], 1 ; jnz m3; proverka na chetnost mov ax, a[bx][si]; vivod call write m3: sub si, 2 cmp si, 2 jb m4 add bx, 2(n+1) sub di, 2 cmp di, 2n jb m2 exit: mov ah, 4ch int 21h end begin