Поточний час:
Сьогодні 21 листопада, вівторокк 2017 рік
Стрічка RSS

Введіть ваш Е-mail:

Zura-Blog 2 роки 11 місяців 2 дня

Ваш ip адрес:54.198.210.67

Доброї ночі!
Ви обновили сторінку в 4 : 29
Статистика

Кількість публікацій на блозі: 367
Кількість коментарів на блозі: 102
Кількість категорій на блозі: 17
Кількість міток на блозі: 28

Zura – Blog
Яндекс.Метрика UA TOP Bloggers

zura - blog 204Привіт всім відвідувачам Zura – Blog, сьогоднішня публікація буде стосуватись шістнадцяткової системи счислення, яка використовується при програмуванні на асамблерах, а також і при високорівневому програмуванні.

Що являє собою дана система буде говоритись в сьогоднішній публікації, вона складається з девяти арабських чисел від 0 до 9, і шести латинських літер A, B, C, D, E, F. Ця арифметична, позиційна система зчислення з основою рівною шістнадцяти (q = 16).

В той час як в двійкових числах кожна наступна цифра (більш старший розряд) в двічі більша за попередню, а в десятковій в десять раз, то в шістнадцяткових числах кожна наступна цифра більша в 16 раз.

У десяткових числах перша справа позиція відповідає одиницям, друга десяткам, третя сотням. У шістнадцятиковій системі перша (молодша) позиція числа відповідає одиницям (люба основа в нульовій степені — це одиниця), друга — шістнадцять, третя — двіста пятдесять шість (162) і т. д. 

Більшість з вас мабуть догадалось що в шістнадцятковому числі кожної позиції може знаходитись одна з шістнадцяти цифр. Нижче таблиця відповідності між десятковими, шістнадцятковими, і двійковими представленими числами.

Десяткові      Шістнадцяткові   Двійкові
          0                      0      0000
          1                      1      0001
          2                      2      0010
          3                      3      0011
          4                      4      0100
          5                      5      0101
          6                      6      0110
          7                      7      0111
          8                      8      1000

 

          9                      9      1001
         10                      А      1010
         11                      B      1011
         12                      C      1100
         13                      D      1101
         14                      E      1110
         15                      F      1111

Так як число шістнадцять це ступінь двійки (два в четвертій), то один символ шістнадцяткової системи являє собою чотири біта. Це і визначає користність даної системи. Для переведення двійкового коду достатньо розділити його і замінити кожні чотири біта відповідаючі шістнадцятковою цифрою.

Зворотнє переведення також просте. Чисто механічно заміняємо кожну шістнадцятикову цифру чотирьма байтами і отримуємо відповідне двійкове число. Алгоритмічні мови дозволяють задавати числа в двійковій, і в десятковій, і в шістнадцятиковій системах. Для відображення системи зчислення використовують не нижні індекси, а відповідні суфікси В (двійкова) і Н (шістнадцятикова).

Якщо суфікси відсутні, значить використовується десяткова система.

Наприклад

11Н = 10001В = 17

Якщо шістнадцяткове число починається з букви, то воно може бути зрозуміло, як слово текста (наприклад ВЕН). Для визначенності таке число доповнюється незначущим нулем зліва (0ВЕН).

Ще пару прикладів про перевагу  шістнадцяткової системи

10010111В=97Н=151

Переставимо місцями полубайти двійкового числа

01111001В=79Н=121

Видно що шістнадцяткові числа більш наглядно демонструють двійкові коди і їх зміни. Тому більшість засобів відладки програм і перегляду вмісту ячейок памяті компютера являють дані в шістнадцятиковому вигляді. Такі засоби широко використовують програмісти.

В склад операційної системи MS — DOS включений DEBAG, команда яка входить також і в джентельменський набір “самі здогадайтесь кого”. Якщо компютер працює під керівництвом MS — DOS “жарт звісно”, пропоную трошки “попаритись” з DOS – командами, власне зайдіть в DOS – середовище, як зайти якщо хтось з вас не знає, іконка Windows знизу зліва, клацаємо на логотип операційної системи Windows 7 далі вибираємо папку “Стандартні”, і в папці “Стандартні” вибираємо “Командний рядок”.

Таким чином ми зайдемо в DOS – середовище, правда я зараз друкую цю публікацію в Windows XP, тому орієнтуєсь по цій операційній системі, отож клацнули мишкою на кнопку “Пуск”, далі в меню вибрали рядок “Виконати”, з клавіатури вводимо імя файла “debag”, і клацаємо <Enter> .

Ви запустити команду яка дозволяє передивлятись і редактувати вміст ячейок памяті, вивчати завантажені в память компютера програми, складати свої, в кодах і на ассемблері.

Для цього звісно що потрібно знати систему команд.

Введіть команду d<Enter>

AshSnap_zura-blog програми

D – дамп(dump) оперативної памяті. Ця команда виводить на екран монітора вміст 128 ячейок області оперативної памяті, представленої в шістнадцятиковому вигляді. В лівій колонці вказані адреса ячейок, в центральній вміст ячейок памяті в шістнадцятковому вигляді, по шістнадцять ячейок на рядку, справа символьне представлення цих ж даних.

Ми вводимо команду без додаткових параметрів, тому отримаємо роздрукований фрагмент даної області ОЗУ, розташований сразу за занятими ячейками самої програми DEBUG.EXE

Введіть команду d ffff:0000<Enter>

В цій команді вже вказана адреса (ffff:0000), з якої починається та область памяті яка нас зацікавить. Адреса формується із двох частин сегмент:зміщення це приблизно можна розуміти як будинок:квартира. Вказана адреса знаходиться в області ПЗУ компютера. На екрані буде виведений вміст із сто двадцяти восьми ячейок постійної памяті. Це шматок процедури POST.

Asnap-system zura-blog 32-debug-exe

Якщо повторити команду d<Enter>, то буде виведений наступний фрагмент памяті. Ці команди дозволяють вивчати завантажені програми, міняти вміст ячейок памяті і регістрів, складати і перевіряти роботу невеликих програм в кодах і на ассемблері. Введіть команду ?, то можна побачити список і призначення команд DEBUG.

Для завершення роботи DEBUG вводиться команда q<Enter>, для виходу з DEBUG (Quit). Ну що ж на цьому прикладі можна переконатись що двійкові дані, з якими працють ЕВМ, більшість інструментальних засобів поставляються в шістнадцятковому виді.

Використання шістнадцяткової системи счислення дозволяє більш компактно надавати як двійкову інформацію, збережену в памяті компютера, так і адреси ячейок памяті.

Шістнадцяткові числа набагато легше читати, чим двійкові. А також говорять що якщо з часом отримати невелику практику з ними, то при роботі в програмуванні буде набагато зручніше, чим з десятковими. На цьому все до зустрічі.

Leave a Reply

Your email address will not be published. Required fields are marked *