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

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

Уфимский Государственный Авиационный Технический Университет

Кафедра ТК

Отчет по лабораторным работам

по предмету «Организация ЭВМ»

На тему «Режимы адресации»

Выполнила: студент

Проверил: Даринцев О.В.

Уфа, 2005

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

Режимы адресации

а) Задать одномерный массив, состоящий из 8 элементов. Заполнить массив константами. Переместить заданный массив в другую область памяти, поменяв местами элементы с четными и нечетными номерами (поставив каждый элемент с четным номером на место нечетного элемента и каждый элемент с нечетным номером – на место четного). Элементы массива – однобайтовые. Программу написать, используя прямую и косвенную адресацию.

stack segment para stack 'stack'

db 64 dup('STACK')

stack ends

dseg segment para public 'data'

source db 11h,22h,33h,44h,55h,77h,88h,99h

empty db 92h dup(0FFh)

dest db 8 dup(0DDh)

dseg ends

cseg segment para public 'code'

assume cs:cseg,ds:dseg,ss:stack

main proc far

mov ax,dseg

mov ds,ax

mov si,0

mov di,si

add di,1

mov bx, offset dest

mov ah,source[si]

mov [bx+di],ah

mov ah,source[di]

mov [bx+si],ah

add si,2

mov di,si

add di,1

mov bx, offset dest

mov ah,source[si]

mov [bx+di],ah

mov ah,source[di]

mov [bx+si],ah

add si,2

mov di,si

add di,1

mov bx, offset dest

mov ah,source[si]

mov [bx+di],ah

mov ah,source[di]

mov [bx+si],ah

add si,2

mov di,si

add di,1

mov bx, offset dest

mov ah,source[si]

mov [bx+di],ah

mov ah,source[di]

mov [bx+si],ah

mov ah,4ch

int 21h

main endp

cseg ends

end main

а) Задать одномерный массив, состоящий из 8 элементов. Заполнить массив константами. Переместить заданный массив в другую область памяти, поменяв местами элементы с четными и нечетными номерами (поставив каждый элемент с четным номером на место нечетного элемента и каждый элемент с нечетным номером – на место четного). Элементы массива – двубайтные. Программу написать, используя прямую и косвенную адресацию.

stack segment para stack 'stack'

db 64 dup('STACK')

stack ends

dseg segment para public 'data'

source dw 1111h,2222h,3333h,4444h,5555h,6666h,7777h,8888h

empty dw 45h dup(0FFFFh)

dest dw 8 dup(0DDDDh)

dseg ends

cseg segment para public 'code'

assume cs:cseg,ds:dseg,ss:stack

main proc far

mov ax,dseg

mov ds,ax

mov si,0

mov cx,4

for:

mov di,si

add di,2

mov bx, offset dest

mov ax,source[si]

mov [bx+di],ax

mov ax,source[di]

mov [bx+si],ax

add si,4

loop for

mov ah,4ch

int 21h

main endp

cseg ends

end main

3

Соседние файлы в папке Лабораторные работы №1-4