Вывести из массива 4х5 только два первых столбика - Assembler

Узнай цену своей работы

Формулировка задачи:

Нужно написать com-программу, которая позволит вывести из массива 4х5 только два первых столбика.
.model tiny
.code
        org     100h
start:
        jmp     main
       mas dw 100 DUP (0)  
 x dw 5 
 y dw 4

        CrLf    db      0Dh, 0Ah, '$'
main:  
 
        mov     bl,     1
        mov     si,     [x]
        @@ForI:
                mov     di,     [y]
                mov     ah,     02h
                @@ForJ:
                        mov     dl,     bl
                        add     dl,     '2'
                        int     21h
                        mov     dl,     ' '
                        int     21h
                        xor     bl,     2
                        dec     di
                jnz     @@ForJ
               
                mov     ah,     09h
                lea     dx,     [CrLf]
                int     21h
                dec     si
                         jnz @@ForI

        int 20h
        end     start
 
ret

Решение задачи: «Вывести из массива 4х5 только два первых столбика»

textual
Листинг программы
.model tiny
.code
        org     100h
start:
        jmp     main
x   equ 5;строчки
y   equ 4;столбики
z   equ 2;сколько нужно
myDat   =   0
mass    label   byte
    rept    x
        rept    y
    db  myDat
myDat   =   (myDat+1) mod 10
        endm
    endm
CrLf    db      0Dh, 0Ah, '$'
main:   mov bx,0
    call    OutMas
    mov ah,9
    lea dx,CRLF
    int 21h
    int 21h
    mov bx,y-z
;
OutMas: mov cx,x
    lea si,mass
FORX:   push    cx
    mov cx,y
    mov ah,2
FORY:   lodsb
    cmp cx,bx
    jbe FORZ
    mov dl,al
    or  dl,'0'
    int 21h
    mov dl,' '
    int 21h
FORZ:   loop    FORY
    mov ah,9
    lea dx,CRLF
    int 21h
    pop cx
    loop    FORX
    ret
    end start

Объяснение кода листинга программы

  1. Объявлены переменные: x - количество строк в массиве (5), y - количество столбцов в массиве (4), z - количество столбцов, которые необходимо вывести (2), myDat - счётчик, mass - метка для массива.
  2. Начинается выполнение программы с метки start.
  3. Переход на метку main.
  4. Вывод строки $ на экран с помощью команды int 21h.
  5. Выполнение цикла, который предназначен для вывода на экран первых двух столбцов массива. Цикл выполняется (y-z) раз.
  6. Вывод на экран символа, который соответствует первому столбцу массива.
  7. Выполнение цикла, который предназначен для вывода на экран всех строк массива. Цикл выполняется x раз.
  8. Вывод на экран символа, который соответствует второму столбцу массива.
  9. Вывод строки $ на экран с помощью команды int 21h.
  10. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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