[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

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы