Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Ввод, ассемблирование, компоновка, выполнение и анализ листинга исходной программы




5.1. Создать с помощью редактора следующую программу с именем exasm2.asm:

 

.286

TITLE EXASM2 (EXE) Операции пересылки и сложения

;-------------------------------------------------------

STACKSG SEGMENT PARA STACK 'Stack'

DW 32 DUP(?)

STACKSG ENDS

;-------------------------------------------------------

DATASG SEGMENT PARA 'Data'

FLDA DW 250

FLDB DW 125

FLDC DW?

DATASG ENDS

;--------------------------------------------------------

CODESG SEGMENT PARA 'Code'

BEGIN PROC FAR

ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:NOTH

PUSH DS;Записать DS в стек

SUB AX,AX;Записать в стек

PUSH AX;нулевой адрес

MOV AX,DATASG;Поместить адрес DATASG

MOV DS,AX;в регистр DS

MOV AX,FLDA;Переслать 0250 в АХ

ADD AX,FLDB;Прибавить 0125 к АХ

MOV FLDC,AX;Записать сумму в FLDC

RET;Вернуться в DOS

BEGIN ENDP

CODESG ENDS

END BEGIN

 

Записать эту программу на диск.

5.2. Выполнить ассемблирование и компоновку программы.

5.3. С помощью текстового редактора LEXICON просмотрите листинг программы и запишите его в отчет.

Обратите внимание на машинный код слева:

 

B8 ----R

 

Четыре дефиса говорят о том, что ассемблер не может определить адрес DATASG; он определяется лишь когда объектная программа будет скомпонована и загружена для выполнения. Поскольку загрузчик может расположить программу в любом месте памяти, ассемблер оставляет данный адрес открытым и показывает это символом R; компоновщик должен будет подставить в это место действительный адрес.

5.4. С помощью отладчика DEBUG просмотрите сегмент кодов, сегмент данных, регистры и проделайте пошаговое выполнение программы. Снова просмотрите сегмент данных и сравните с данными листинга программы. Объясните почему отладчик показывает разные сегменты данных до выполнения программы и после ее выполнения.

5.5. С помощью текстового редактора LEXICON просмотрите листинги обоих программ exasm1.lst и exasm2.lst. Для этого установите курсор в панели NORTON на файл exasm1.lst и нажмите клавиши Alt F4. Затем перейдите в другое окно редактора LEXICON нажав клавиши Alt 2. Далее клавишей F10 выйдите в меню редактора LEXICON, выберите пункт меню "Текст", затем пункт меню "Загрузить". В

строке меню появится приглашение для ввода имени файла *.*, нажмите Enter. На экране появится список файлов из панели NORTON. Установите курсор на файле exasm2.lst и нажмите Enter. В окне редактора LEXICON появится листинг второй программы. Переход из окна в окно редактора LEXICON выполнять нажатием либо Alt 1 либо Alt2.

5.6. Сравнивая листинги двух программ определите, чем отличаются их сегменты стека. Выводы запишите в отчет.

5.7. Определите в какой программе имеется сегмент данных и что он содержит. Выводы запишите в отчет.

5.8. Определите, чем отличаются сегменты кодов двух программ. Выводы запишите в отчет.

5.9. Последовательность команд PUSH, SUB и PUSH инициализируют стек в обоих программах. Объясните как это происходит. Выводы запишите в отчет.

5.10. Две команды во второй программе обеспечивают адресацию сегмента данных:

 

В8 ----R MOV AX,DATASG





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 659 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2227 - | 2156 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.