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



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

Пример простой программы
В данном разделе рассмотрим пример простой, но полноценной программы на ас-
семблере. В главе 2 при обсуждении архитектуры было перечислено большое ко-
личество регистров. Как правило, большинство из них задействовано практически
в любой программе. Было бы интересно во время работы программы посмотреть
(получить) их содержимое. Это нетрудно, если использовать специальную про-
грамму — отладчик. Но как сделать это динамически и автономно (без помощи
других программ)? Или, к примеру, как решить обратную задачу — ввести некото-
рое значение с клавиатуры в регистр? Эта и подобная ей задачи являются задача-
ми преобразования данных. Они довольно часто возникают на практике. Причина
здесь в том, что компьютер воспринимает данные только тех типов, которые под-
держиваются его системой команд. Поэтому на практике часто возникает необхо-
димость преобразования данных из одного представления в другое. В этой главе
в качестве примера рассмотрим частный случай решения одной из таких задач —
задачи преобразования
числа из двух цифр, вводимого с кла-
виатуры (то есть в символьном виде), в двоичное число. После выполнения этой
операции полученное число можно использовать как операнд в двоичных ариф-
метических операциях.
Для начала нужно продумать алгоритм и изучить предметную область. Ввод
информации с клавиатуры и вывод ее на экран осуществляются в символьном виде.
Кодирование этой информации производится согласно таблице ASCII. В таблице
ASCII каждый символ кодируется одним байтом. Если работа происходит с чис-
лами, то при попытке их обработать сразу возникает проблема: команд для ариф-
метической обработки чисел в символьном виде нет. Что делать? Выход очевиден:
нужно преобразовать символьную информацию в формат, поддерживаемый ма-
шинными командами. После такого преобразования нужно выполнить необходи-
мые вычисления и преобразовать результат обратно в символьный вид. Затем сле-
дует отобразить информацию на мониторе.
Рассматриваемая в этом разделе программа является одним из вариантов ре-
шения задачи. В основу ее алгоритма положена особенность, связанная с ACSII-
кодами символов соответствующих
цифр. Шестнадцатерич-
цифры формируются из символов
9, А, В, С, D, E, F,
с, d, e, f, например:
12Af, 34ad. В таблице ASCII можно найти значения ASCII-кодов, соответствую-
щие этим символам. На первый взгляд, непонятна популярность способа представ-
ления информации в виде шестнадцатеричных чисел. Из предыдущих
извест-
но, что аппаратура компьютера построена на логических микросхемах и работает
только с двоичной информацией. Если нам требуется проанализировать, например,
состояние некоторой области памяти, то разобраться в нагромождении нулей и еди-
ниц будет очень непросто. Для примера рассмотрим двоичную последовательность
010100010101011110101101110101010101000101001010.


 Глава 6. Первая программа
Это представление не очень наглядно. В главе 2 отмечалось, что оперативная
память состоит из ячеек — байтов — по 8 битов. Приведенная выше цепочка битов
при разбиении ее на байты будет выглядеть так:
01010001 01010111 10101101 11010101 01010001 01001010.
С наглядностью стало лучше, но если исследуемая область памяти окажется
больше, то разобраться будет все равно сложно. Проведем еще одну операцию: каж-
дый байт разобьем на две части по 4 бита —
0101 0001 0101 0111 1010 1101 1101 0101 0101 0001 0100 1010.
И вот тут проявляется замечательное свойство
чисел —
каждой тетраде можно поставить в соответствие одну
цифру
(табл. 6.1).
Таблица
Кодировка шестнадцатеричных цифр
Шестнадцатеричная
цифра
0
1
2
3
4
5
6
7
8
9
А, а
с
31h
(ООН 0001)
32h
33h
34h
35h
37h (ООН 0111)
38h
1001)
41h (0100 0001), 61h
0001)
42h (0100 0010), 62h (0110 0010)
43h (0100
63h
44h (0100 0100), 64h (0110 0100)
45h (0100
65h (0100 0101)
46h (0100 0110), 66h (0110 0110)
Двоичная
тетрада
0000
0001
0010
ООП
0100
0101
оно
0111
1000
1001
1010
1011
1100
1101
1110
1111
Если заменить в последней полученной строке тетрады соответствующими
цифрами, то получим последовательность 51 57 ad d5 51 8а.
Каждый байт теперь наглядно представлен двумя шестнадцатеричными циф-
рами, что оказывается очень удобным, в частности, при работе с отладчиком.
Вернемся к нашей задаче. Если посмотреть внимательно на представление
шестнадцатеричных цифр и их кодировку в
(табл.
то можно уви-
деть полезные закономерности. К примеру, ASCII-код нуля (код символа 0) в ше-
стнадцатеричном виде равен 30h. В двоичном представлении 30h записывается как


Пример простой программы
0000, а соответствующее двоичное число должно быть двоичным представле-
нием нуля 0000 0000. Отсюда следуют некоторые выводы.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   66   67   68   69   70   71   72   73   ...   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