C
C
cd335DF2020-04-30 06:15:07
assembler
cd335DF, 2020-04-30 06:15:07

How to output an array of data?

There is a code that so far only adds up

.model small
.stack 100h
.386 ;Разрешение трансляции команд процессора 386
.data
mas db 20 dup (0) ;исходный массив
.code
 
start:
mov ax, @data
mov ds, ax
mov ax, 0 ;обнуление ax
mov cx, 20 ;значение счетчика цикла
mov al, 3 ; счётчик для значений массива
mov si, 0 ;индекс начального элемента в cx
 
go: ;цикл инициализации
mov mas[si], al ;запись в массив
add al, 3 ;увеличение значения следуещего элемента массива на 3
inc si ;переход к следующему элементу
loop go ;повторить цикл
mov si, 0 ;переход к 1-му элементу
mov cx, 2
 
show1: ;цикл вывода элементов массива на экран
push cx
mov cx, 10
 
show2:
mov al, mas[si] ;значение элемента массива помещается в AL
mov ah, 0 ;AH = 0
 
call print ; вызов функции вывода числа в AX на экран
inc si ;переход к следующему элементу
loop show2
pop cx
mov dl, 0DDh ;переход на следующую строку
call pr
mov dl, 0DAh
call pr
loop show1
mov ax,4C00h ;завершение программы
int 21h
print proc ;процедура для вывода элеманта массива на экран
pusha
;вывод пробелов перед каждым числом
pusha
mov bx, 0
 
label0:
inc bx
mov dx, 0
mov cx, 10
div cx
cmp ax, 1
jnc label0
neg bx
add bx, 6
mov cx, bx
 
lab:
mov dl, 0D0h
call pr
loop lab
popa
;вывод символа на экран
mov cx, 0
 
label1:
mov dx, 0
mov bx, 10 ;Заносим основание системы счисления, равное 10, в регистр BX
div bx ;деление AX на BX
mov bx, 0
push dx
inc cx
cmp ax, 0 ;сравнение AX с нулём
jnz label1 ;если условие выполняется, то переход на метку label1
 
label2:
pop dx
call pr ;вывод на экран символа
inc bx
loop label2 ;повторение с метки label2, пока значение CX не станет равно нулю
popa
ret
print endp
pr proc ;процедура, выводящая символ на экран
mov ah, 02h
add dl, 30h
int 21h
ret
pr endp
end start


How to display an array in the form

3 6 9 12 15 18 21 24 27 30
9 36 81 144 225 324 441 576 729 900

Answer the question

In order to leave comments, you need to log in

1 answer(s)
J
jcmvbkbc, 2020-04-30
@jcmvbkbc

How to output an array of data?

Convert each number to a string representation and print the strings to the screen.
There is a code that so far only adds up

And if you look closely, it not only adds up, but also translates something and prints something.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question