Занятие N 1
(лабораторная работа 1)

 

--------------------------

Тема: Исследование основных моделей памяти ассемблерных программ для 16-разрядного МП

Цели работы: 1.Научиться создавать ассемблерные программы с моделями памяти TINY,SMALL,LARGE и модификаторами NEARSTACK,FORSTACK

2.Проверить практически на ПЭВМ распределение памяти с помощью отладчика AFDPRO.EXE

3.Выяснить роль директивы .STARTUP

 

Основные вопросы для отработки на занятии

-------------------------------------------

1. Для индивидуального задания составить программу и проверить ее с помощью отладчика при различных значениях исходных данных для случаев:

а). X > Y
б). X = Y
в). X < Y ,

чтобы убедиться в правильности реализации логического условия


2. Включить в начало программы команды записи в стек содержимого сегментных регистров CS,DS,SS (выбраны произвольно)

push cs
push ds
push ss

а в конце программы команды извлечения из стека в регистры DI,SI,BP (выбраны произвольно для примера)

pop di
pop si
pop bp

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

3. Найти распределение памяти(для последнего варианта программы, т.е. с командами обращения к стеку) для случаев


а). .model small
б). .model forstack small
в). .model large
г). .model tiny

c выделенным сегментом стека директивой .stack

Для каждого варианта определить с помощью отладчика

- начальные адреса сегментов
- адреса всех переменных
- адрес вершины стека
- взаимное расположение сегментов в памяти

4. Повторить пункт 3 с исключенной директивой .stack

5. Заменить в программе с вариантом модели памяти

а). .model small

директиву .STARTUP командами

MOV AX,@DATA
MOV DS,AX

определить распределение памяти и сравнить с ранее полученным.

6. Проанализировать фрагмент программы,которые соответствуют ди-

рективе .STARTUP

MOV DX,@DATA
MOV DS,DX
MOV BX,SS
SUB BX,DX
SHL BX,1
SHL BX,1
SHL BX,1
SHL BX,1
CLI
MOV SS,DX
ADD SP,BX
STI

и выяснить их роль.

 

7. Программа с моделью памяти TINY выглядит так:

;..Косвенно-регистровая адресация....

.model tiny
.code ; В программе только один сегмент
org 0100h ;
sum macro a,b,c ; Макроопределение
push ax
mov al,a
add al,b
mov c,al
pop ax
endm ; Конец макроопределения
n equ 5 ;
x0 equ 1 ;
q equ 3 ; Данные
s db ? ;
x db (n+1)dup(0);
.startup ; Точка входа в программу
mov cx,n
mov s,x0
mov si,offset x
sum x0,0,[si]
m1: sum [si],q,[si+1]
sum s,[si+1],s
inc si
loop m1
.exit ; Точка выхода из программы в DOS
end

 

Особенности:

a).Сегмент в программе только один - кодовый
б).Обязательна директива
org 100h

 

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


 

 

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


Word 97 *.doc

 




     главная | новости | институт | курсовые | комплексные | рефераты | преподы | фотоальбом | приколы | АТС | гостевая
 
    ©НОСКІЗ-ДУІТ 2002-2003
Hosted by uCoz