Дипломированных специалистов «Информатика и вычислительная техника»



Download 12,06 Mb.
Pdf ko'rish
bet67/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   63   64   65   66   67   68   69   70   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Листинг 5.3. Пример использования директив резервирования
и инициализации данных
model small
message db "Запустите эту программу в
db
3a7fh
dd 0f54d567ah
mas db 10 dup
pole_l db 5 dup (?)
adr dw
dd
fin db "Конец сегмента данных программы
s t a r t :
mov
mov
message
int 21h
mov
int
end start
ВНИМАНИЕ Если при дальнейшем изложении вам что-то будет непонятно, можно по-
рекомендовать на время прерваться и вновь вернуться к этому материалу
после изучения главы 6.
Итак, наша цель — посмотреть, как выглядит в памяти компьютера сегмент дан-
ных программы, представленной в листинге 5.3. Это даст нам возможность обсудить
практическую реализацию обозначенного нами принципа размещения данных.
Запустите отладчик
входящий в комплект поставки транслятора TASM.
2. Введите код, представленный в листинге 5.3, и сохраните его в виде файла с наз-
ванием
Все манипуляции с файлом будем производить в каталоге
work,
должны содержаться все необходимые для компиляции, компоновки
и отладки файлы пакета TASM.
3. Запустите процесс трансляции файла следующей командой:
/zi
, , ,


Простые типы данных ассемблера
4. После устранения синтаксических ошибок запустите процесс компоновки объ-
ектного файла:
/v
5. Теперь можно производить отладку:
td prg_5_2.exe
Если все было сделано правильно, то в отладчике откроется окно
с ис-
ходным текстом программы. Для того чтобы с помощью отладчика просмотреть
область памяти, содержащую наш сегмент данных, необходимо открыть окно Dump.
Это делается с помощью команды View Dump главного меню.
Но одного открытия окна недостаточно, нужно еще настроить его на адрес на-
чала сегмента данных. Этот адрес должен содержаться в сегментном регистре DS,
но перед началом выполнения программы адрес в DS не соответствует началу сег-
мента данных. Нужно перед первым обращением к любому символическому име-
ни произвести загрузку действительного физического адреса сегмента данных.
Обычно это действие не откладывают и производят первыми двумя командами
в сегменте кода. Действительный физический адрес сегмента данных извлекают
как значение предопределенной переменной @data. В нашей программе эти дей-
ствия выполняют команды
Для
чтобы посмотреть содержимое нашего сегмента данных, нужно оста-
новить выполнение программы после этих двух команд. Это можно сделать, если
перевести отладчик в пошаговый режим с помощью клавиши F7 или F8. Нажмите
два раза клавишу F8. Теперь можно открыть окно Dump.
В окне Dump вызовите контекстное меню, щелкнув правой кнопкой мыши, и вы-
берите команду Goto. Появится диалоговое окно, в котором нужно ввести началь-
ный адрес
начиная с которого информация будет выводиться в окне
Синтаксис задания этого адреса должен соответствовать синтаксису задания ад-
ресного операнда в программе на ассемблере. Если нужно увидеть содержимое
памяти для сегмента
начиная с начала, введите
(рис. 5.20). Для
удобства, если сегмент довольно велик, это окно можно развернуть на весь экран.
Для этого нужно щелкнуть на значке в виде стрелки
в правом верхнем углу
окна Dump.
На рисунке представлено содержание сегмента данных программы из листин-
га 5.3 в двух представлениях: шестнадцатеричном и символьном. Видно,
со сме-
щением 0000 расположены символы, входящие в строку message. Она занимает
34 байта. После нее следует байт, имеющий в сегменте данных символическое имя
perem_l, содержимое этого байта —
Теперь обратите внимание на то, как раз-
мещены в памяти байты, входящие в слово, обозначенное символическим именем
perem_2. Сначала следует байт со значением 7fh, а затем — со значением 3ah. Как
видим, в памяти действительно сначала расположен младший байт значения, а за-
тем старший. Теперь проанализируйте порядок размещения байтов для поля, обо-
значенного символическим именем perem_3. Оставшаяся часть сегмента данных
не представляет трудности для самостоятельного анализа. Есть смысл остановиться
лишь на двух специфических особенностях использования директив резервиро-


 Глава 5. Синтаксис ассемблера
message db
эту программу
в отладчике
Т
pecem 1 db Offh
dd Of54d567ah
mas db 10 dup
')
pole 1 db 5 dup (?)
adc dw pecem 3
adc full dd pecem 3
fin db
stact:
• mov
• mov
mov
ds:0000
ds
ds
ds
ds
ds
ds
ds
ds
ds
ds
int
2
• mov
int
2
end stact
0008
0010
0018
0020
0028
0030
0038
0040
0048
0050
AS
AE
А2
А8
20
00

A3
АО
АО
2U
A3
20
4D
20
00
АЕ
АС
AD
AF
ED
EO
AE
F5
20
AD
AD
ЭХ*
E3
АО
E2
24
20
20
00
AD
EB
El
E3
AC
AB
FF
20
20
E6
E2
E5
E2 A8
20 AF
AC E3
АО А4
ЗА
20 20
00 00
00 42
20 El
АО 20
20 AF
аде
E2
20
E7
7A
20
00
A4
EO
Запустит
e эту пр
в отладч
D:z
' '
се
д
пр
-Step
844

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   63   64   65   66   67   68   69   70   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish