Вывести из массива 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
Объяснение кода листинга программы
- Объявлены переменные: x - количество строк в массиве (5), y - количество столбцов в массиве (4), z - количество столбцов, которые необходимо вывести (2), myDat - счётчик, mass - метка для массива.
- Начинается выполнение программы с метки
start
. - Переход на метку
main
. - Вывод строки
$
на экран с помощью командыint 21h
. - Выполнение цикла, который предназначен для вывода на экран первых двух столбцов массива. Цикл выполняется (y-z) раз.
- Вывод на экран символа, который соответствует первому столбцу массива.
- Выполнение цикла, который предназначен для вывода на экран всех строк массива. Цикл выполняется x раз.
- Вывод на экран символа, который соответствует второму столбцу массива.
- Вывод строки
$
на экран с помощью командыint 21h
. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д