ММ
Мадина Мырзахметова

Ассемблер проверьте программу и посоветуйте как сделать лучше



.Задан байтовый массив из N элементов и упорядочен по возрастанию значений своих элементов. Написать процедуру вставки заданного значения X в этот массив, не нарушающей его упорядоченности.
model small
data_sg segment
xdb3
adb1,2,3,4,5,6,7,8,9
n=$-a
.stack 100h
data_sg ends
code_sg segment
assume cs:code_sg, ds:data_sg
qqqqproc
xorsi,si
m3:
moval,a[si]
cmpx,al
jgm1
movdi,n
decdi
movcx,si
inccx
m2:
movbl,a[di-1]
mova[di],bl
decdi
cmpdi,cx
jgem2
moval,x
mova[si],al
jmpexit
m1:
incsi
cmpsi,n
jlm3
exit:
ret
qqqqendp
start:
movax,data_sg
movds,ax
callqqqq
movax,4c00h
int21h
ret
code_sg ends
end start

Юльчик
Юльчик

Что-то много непонятного.
1) вставляя число в массив необходимо заранее увеличить его размер и знать его длинну:
massiv db 1,2,3,4,5,6,7,8,9,10, 15 dup (0)
тут массив из 10 элементов, а еще для 15 место зарезервированно.
2)последовательность команд
xor si,si
mov al,a[si]
по идее загрузит первый байт из сегмента данных. вопрос - зачем?
3)Приминение команд строковых примитивов значтиельно увеличивает скорость выполнения подобных программ

ММ
Музычка Музычка

Ого го шеньки)

Похожие вопросы
Проверьте программу ( Паскаль)
помогите написать программу в с++ или на ассемблере
Помогите на ассемблера надо сделать задачу.
Помогите откомментировать программу на ассемблере....
помогите написать программы в ассемблере
программа на ассемблере для мк-51
Нужно составить программу на ассемблере
Программа для записи определенного участка программы. Ассемблер.
Проверьте пожалуйста программу:
Ассемблер, понятие результата программы