738

Инструкции обработки цепочек на языке ассемблер

Лабораторная работа

Информатика, кибернетика и программирование

Изучить команды обработки цепочек процессора i8086. Зашифровать строку по таблице. Таблица считается известной.

Русский

2013-01-06

89 KB

12 чел.

Министерство образования и науки Российской Федерации

Муромский институт (филиал)

Федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Владимирский государственный университет

имени Александра Григорьевича и Николая Григорьевича Столетовых»

(МИ(филиал)ВлГУ)

Факультет                  ФРЭКС                  

Кафедра                    ЭиВТ                   

ЛАБОРАТОРНАЯ

РАБОТА №4

по программированию на языке ассемблера

Тема: Инструкции обработки цепочек

                    

        Руководитель

                                                             Бейлекчи Д.В.                   

           (фамилия, инициалы)

                                                     

(подпись)   (дата)

       Студент          ПО - 110       

  (группа)

      Алексеев  К. В.               

           (фамилия, инициалы)

        ______________________                                   

       (подпись)   (дата)

2012

Цель  работы:  Изучить команды обработки цепочек процессора i8086. 

Задание: Зашифровать строку по таблице. Таблица считается известной.

Ход работы:

Код программы:

;описание сегмента данных

data segment

msg1 db 'Введите строку символов (a-z) и нажмите Enter:',10,13,'$'

msg2 db 'Результат:',10,13,'$'

stroka db 100 dup (?),'$'

;coding         'abcdefghijklmnopqrstuvwxyz'   соответствие кодирования

table1 db 'zyxwvutsrqponmlkjihgfedcba'

len dw ?

data ends

;описание сегмента стэка

stak segment stack

db 256 dup(?)

stak ends

;описание сегмента кода

code segment

;указание соответсвующих сегментных регистров сегментам

assume ds:data,es:data,cs:code,ss:stak

start:

;настройка регистров DS,ES на начало сегмента данных

mov ax,data

mov ds,ax

mov es,ax

mov ah,9 ;ф-я 9 вывод строки заканчивающейся $

lea dx,msg1 ;загрузка адреса переменной в dx

int 21h;вызов прерывания

lea dx,stroka  ;загрузка адреса переменной для хранения символа в dx

call input      ;вызов процедуры считывания с клавиатуры

mov len,ax ;занесение в переменную len количества введенных символов + 2

sub len,2 ;отнимаем 2 для получения количества символов без признаков перевода строки

lea si,stroka ;загрузка адреса строки в si

lea di,stroka;загрузка адреса строки в di

mov cx,len ;занесение количества введеных символов в счетчик сх

cld ;обработка строки слева на право

;цикл шифрования

cycle:

lodsb ;загрузка элемента строки в al

sub ax,61h ;отнимаем 61 - получаем смещение в таблице шифрования для данной буквы

mov bx,ax ;занесение смещения в таблице шифрования в bx

mov al,table1+bx ;занесение в al элемента с таблицы что соответствует смещению

stosb ;запись элемента из al в строку

loop cycle ;цикл пока сх не равен 0

mov ah,9 ;ф-я 9 вывод строки заканчивающейся $

lea dx,msg2 ;загрузка адреса переменной в dx

int 21h;вызов прерывания

mov ah,9 ;ф-я 9 вывод строки заканчивающейся $

lea dx,stroka ;загрузка адреса строки в dx

int 21h;вызов прерывания

mov ah,8 ;ввод без вывода на экран для задержки

int 21h;вызов прерывания

mov ax,4C00h;запись номера функции завершения работы программы

                                   ;с кодом 0

int 21h;вызов прерывания

;процедура ввода

input proc

mov ah,3Fh ;ф-я 3Fh универсальная функция считывания

mov bx,0 ;считывание с клавиатуры

mov cx,100 ;кол-во считываемых символов символов

int 21h;вызов прерывания

ret ;возврат в главную программу

input endp  ;конец процедуры

code ends

end start

Тестирование программы:

Вывод: В данной лабораторной работе я изучил инструкции обработки цепочек.


 

А также другие работы, которые могут Вас заинтересовать

68642. Знакомство с графической средой 20.5 KB
  Порядок выполнения работы: Создание полуотчета (образец в файле Образец полуотчета.doc) Пошаговое выполнение заданий к лабораторной работе и заполнение полуотчета (краткая справочная информация в файлах Справка по GNOME.doc, Справка по файловой системе.doc) Сдача лабораторной работы преподавателю.
68643. Оптический и тепловой неразрушающий контроль: Лабораторно-практические занятия 3.08 MB
  По полученным изображениям измерить высоту объекта в пикселях предложив функцию связи между углами расположения камеры лазерного осветителя и измеренной по изображению величиной. Для хорошо отражающих поверхностей профиль формируется в результате отражения промежуточного изображения линии...
68646. Численное интегрирование 135 KB
  Кратко изложите сущность метода Симпсона. Выпишите составные формулы прямоугольников трапеций Симпсона. Выпишите погрешности и их оценки составных формул прямоугольников трапеций Симпсона. Вычислить интеграл по формуле Симпсона при и оценить остаточный член.
68647. Введение в элементарную теорию погрешностей 294.5 KB
  Контрольные вопросы и задачи: Дать определение абсолютной погрешности приближенного числа. Дать определение относительной погрешности приближенного числа. Укажите связь абсолютной и относительной погрешностей. Что означает запись: а=2.52(±0.01)? Верна ли запись: а= 3.47((±0.033)?
68649. Применение производных типов данных для решения прикладных задач 92 KB
  Написать программу выполняющую следующие действия: ввод с клавиатуры данных в массив экземпляров структур состоящий из пяти записей; поиск записей в которых средний бал студента больше 40; поиск записей в которых совпадают номера групп студентов. Написать программу выполняющую следующие действия...
68650. Использование функций для работы с массивами 77 KB
  Ведь элементов в массиве могут быть сотни и представляется нереальным хотя и теоретически возможным описать при передаче в функцию каждый элемент массива. Здесь необходимо вспомнить что имя массива является указателем на нулевой элемент массива. А так как элементы массива расположены непосредственно...