ВУЗы и колледжи

Кто знает язык программирования Асемблер?!

Люди помогите пл3 срочно нада здать в универе две лабы, а расшарится я не могу. Плз кто может помочь напишите мне две программы!1.Задан масив.Нужно переставить его елементы в обратном порядке.2.Реализовать функцию сравнения строк.
Нет времени компилировать, могу только подсказать
Для первой используй стек, а вторую переделай под функцию - это не сложно

MASM
MODELsmall
STACK256
.data
;строки для сравнения
string1db'Поиск символа в этой строке. ',0ah,0dh,'$'
string2db'Поиск символа не в этой строке. ',0ah,0dh,'$'
mes_eqdb'Строки совпадают. ',0ah,0dh,'$'
fnddb'Несовпавший элемент в регистре al',0ah,0dh,'$'
.code
;привязка ds и es к сегменту данных
assume ds:@data,es:@data
main:
movax,@data;загрузка сегментных регистров
movds,ax
moves,ax;настройка es на ds
movah,09h
leadx,string1
int21h;вывод string1
leadx,string2
int21h;вывод string2
cld;сброс флага df
leadi,string1;загрузка в es:di смещения
;строки string1
leasi,string2;загрузка в ds:si смещения
;строки string2
movcx,29;для префикса repe - длина строки
;поиск в строке (пока нужный символ и символ в строке не равны)
;выход - при первом несовпавшем
repecmpsstring1,string2
jcxzeql;если равны - переход на eql
jmpno_eq;если не равны - переход на no_eq
eql:;выводим сообщение о совпадении строк
movah,09h
leadx,mes_eq
int21h;вывод сообщения mes_eq
jmpexit;на выход
no_eq:;обработка несовпадения элементов
movah,09h
leadx,fnd
int21h;вывод сообщения fnd
;теперь, чтобы извлечь несовпавший элемент из строки
;в регистр-аккумулятор,
;уменьшаем значение регистра si и тем самым перемещаемся
;к действительной позиции элемента в строке
decsi;команда lods использует ds:si-адресацию
;теперь ds:si указывает на позицию в string2
lodsstring2;загрузим элемент из строки в AL
;нетрудно догадаться, что в нашем примере это символ - "н"
exit:;выход
movax,4c00h
int21h
endmain
Иван Мануйлов
Иван Мануйлов
205
Лучший ответ

Похожие вопросы