Создание многосегментных программ - Assembler

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

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

Ребят помогите пожалуйста, думаю уже которую неделю, нужно разработать одно- и многосегментную программы. Суть заключается в следующем: Написать программу на ассемблере, осуществляющую ввод последовательности символов с клавиатуры, обработку кодов символов в соответствии с заданием и вывод на экран результирующей последовательности Программа должна включать в себя: • ввод последовательности символов с клавиатуры (в результате ввода формируется статический массив кодов символов, максимальное число вводимых символов задается студентом самостоятельно); • обработку кодов символов в соответствии с заданием (вариант задания, B. Перестановка a(n),a(n-1),a(n-2),...,a(n/2),a(1),a(2),...,a(n/2-1).); • вывод на экран результирующей последовательности Программа должна быть реализована в 2-х вариантах: а) односегментная (.com); б) многосегментная (.exe). вот сама программа, помогите доделать пожалуйста
mov    cx, 8   //длина строки
mov    si,0200   //адрес начального массива
mov    di,0208  //адрес конечного массива
push    si      //читаем байт из исходного массива
add    si,cx        //добавляем в si длину строки
dec     si          //указатель на конец si
shr    cx,1       //сдвигаем на 1
push    cx        //делим по полам cx
mov    al,[si]        //сравниваем si 
mov    [di],al       //сравниваем di
dec     si         //указатель на конец начального массива   
inc     di     //записываем в конечный массив
loop    0110              //переходим на строку 0110
pop    cx              //достаем cx
pop     si       //достаем si
mov    al,[si]        //сравниваем si 
mov    [di],al       //сравниваем di
inc     si         //указатель на начало массива 
inc     di     //записываем в конечный массив
loop    011A              //переходим на строку 011A

Решение задачи: «Создание многосегментных программ»

textual
Листинг программы
model small
.code
. . .;код
start:;точка входа
. . .;ещё код
.data
. . .;данные
.stack 256
end start

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

  1. Указывает модель сегментации: model small
  2. Начинается код программы: .code
  3. Определяется точка входа в программу: start:
  4. Определяются сегменты данных и кода: .data и .code соответственно
  5. Указывается размер стека: .stack 256
  6. Конец программы: end start

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

5   голосов , оценка 3.4 из 5