Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
01.05.2014
Размер:
37.38 Кб
Скачать

Санкт-Петербургский Государственный Электротехнический Университет

Кафедра вычислительной техники

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

3-ий семестр, программирование на языке ассемблера

«Операции пересылки и способы адресации»

Студент гр. 181x:

Санкт-Петербург

2002

Задание.

составить и отладить в отладчике программу, пересылающую 4 байта или 4 слова из одной области памяти в другую, используя заданный тип адресации. Пересылка осуществляется либо в прямом, либо в обратном порядке.

Вариант

Объект пересылки

Способ адресации

Объект пересылки

2

байты

косвенная

прямой

Ход выполнения работы.

Написание программы.

Текст программы:

;laba2

cod segment

assume cs:cod,ds:dat1,es:dat2

begin: mov ax,dat1

mov ds,ax

mov ax,dat2

mov es,ax

cld ;сбрасываем флаг DF - направление

;слева на право

mov bx, offset bytes1 ;помещаем адрес первого байта в BX

lea si,[bx] ;адрес области "откуда"

lea di,es:bites2 ;адрес области "куда"

mov cx,4 ;сколько раз

rep movsb ;перемещаем байт

mov ax, 4c00h

int 21h

cod ends

dat1 segment ;основной сегмент данных

bytes1 db '1234' ;четыре исходных байта

dat1 ends

dat2 segment ;дополнительный сегмент данных

bites2 db 4 dup('0') ;место под четыре байта, заполненное

;ASCII кодами нуля

dat2 ends

stk segment

db 256 dup(?) ;место под стек - 256 байт

stk ends

end begin

Отладка.

Исполняемый файл программы был загружен в отладчик. Программа была выполнена пошагово. В процессе её выполнения мы наблюдали за состоянием дополнительного сегмента данных. За каждый шаг выполнения строки rep movsb в регистр помещались байты из заданной нами строки в сегменте данных. Сначала переместился байт 31h, затем 32h и т.д. до байта 34h. После этого управление было передано следующей команде и, в итоге, программа завершила свою работу.

Соседние файлы в папке Лабораторная работа №24
  • #
    01.05.201437.38 Кб92.doc
  • #
    01.05.20141.14 Кб4LAB2.ASM