- •Что надо знать, перед изучением ассемблера.
- •Какие системы счисления использует ассемблер
- •Понятие системы счисления
- •Двоичная
- •Восьмеричная
- •Шестнадцатеричная
- •Как и где программа хранит код и данные
- •Виды памяти
- •Способы адресации
- •Сегменты
- •Страницы
- •Регистры
- •Регистры общего назначения (РОН)
- •Регистры данных
- •Регистры указатели
- •Сегментные регистры
- •Служебные регистры
- •Как программа исполняется ЦПУ
- •Структура программы на Ассемблере MASM32
- •Комментарии
- •Сегменты
- •Переменные
- •Метки
- •Инструкции ассемблера
- •Основные инструкции ассемблера х86:
- •Используемая литература
ПРАКТИКУМ ПО АССЕМБЛЕРУ |
|
СОДЕРЖАНИЕ |
|
Что надо знать, перед изучением ассемблера......................................................................................................................... |
1 |
Какие системы счисления использует ассемблер................................................................................................................ |
1 |
Как и где программа хранит код и данные........................................................................................................................... |
3 |
Как программа исполняется ЦПУ........................................................................................................................................... |
5 |
Структура программы на Ассемблере MASM32....................................................................................................................... |
5 |
Комментарии........................................................................................................................................................................... |
5 |
Сегменты.................................................................................................................................................................................. |
5 |
Переменные ............................................................................................................................................................................ |
5 |
Метки ....................................................................................................................................................................................... |
6 |
Инструкции ассемблера ......................................................................................................................................................... |
6 |
Используемая литература .......................................................................................................................................................... |
9 |
ЧТО НАДО ЗНАТЬ, ПЕРЕД ИЗУЧЕНИЕМ АССЕМБЛЕРА. |
|
КАКИЕ СИСТЕМЫ СЧИСЛЕНИЯ ИСПОЛЬЗУЕТ АССЕМБЛЕР |
|
Понятие системы счисления
Система счисления – это способ записи чисел с помощью заданного набора специальных знаков и соответствующие ему правила выполнения действий над числами. Все системы счисления делятся на две большие группы: позиционные и непозиционные. Все системы счисления, используемые в Ассемблере, являются позиционными, поэтому далее будем считать, что всегда рассматриваем только их.
Позиционные – это такие системы счисления, в которых величина, которую обозначает цифра в записи числа, зависит от положения цифры в этом числе. Наиболее известны позиционные системы счисления с основаниями: 2, 3, 8, 10, 16. Для числа , записанного в позиционной системе счисления с основанием , как « −1 … 3 2 1 0», значение в другой системе счисления выражается следующей формулой:
−1
= ∑ |
|
∙ |
( ) |
|
|
|
|
=0 |
|
|
|
Формула (0) позволяет представить число из одной системы счисления в виде суммы чисел, записанных в другой системе счисления.
Двоичная
Как можно заметить из названия, в основании двоичной системы счисления лежит число «2». Это означает, что каждый разряд в такой системе может быть представлен одним из двух символов. Как правило используется {0, 1}. Для двоичной системы счисления формула (0) примет следующий вид:
−1
|
|
= ∑ |
∙ 2 = |
|
|
|
|
|
|
|
|
|
|
=0 |
|
|
|
= |
,2 + |
∙ 2−1 + + |
∙ 22 + |
∙ 21 + ∙ 20 |
= |
|
|
2 |
1 |
0 |
|
= 0 + 1 ∙ 2 + 2 ∙ 4 + 3 ∙ 8 +
Двоичная система счисления используется в подавляющем большинстве электронных вычислительных устройств как раз по той причине, что разряд, имеющий всего два состояния, проще всего выразить электрическим сигналом:
0.– нет сигнала.
1.– есть сигнал.
Восьмеричная
Основание восьмеричной системы счисления так же очевидно из её названия – это число «8». Качестве множества цифр, которыми может быть записан один разряд, как правило, используется {0, 1, 2, 3, 4, 5, 6, 7}. Соответственно, формула (0) для восьмеричной системы счисления будет иметь следующий вид:
−1
= ∑ ∙ 8 =
=0
=, 8 + ∙ 8 −1 + + 2 ∙ 82 + 1 ∙ 81 + 0 ∙ 80 =
=0 + 1 ∙ 8 + 2 ∙ 64 + 3 ∙ 512 +
Восьмеричная система счисления интересна нам по той причине, что трёхразрядное двоичное число имеет то же множество значений, что и один разряд восьмеричного:
Основание |
|
|
|
|
|
|
|
|
|
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Это позволяет нам записывать громоздкие двоичные числа более компактно:
001010 = 12 = 10
010111 = 27 = 23
110100 = 64 = 52
Шестнадцатеричная
Основанием шестнадцатеричной системы счисления является число «16». Это означает, что каждый разряд в такой системе может быть представлен одним из 16 символов. Как правило используется {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. Формула (0) для шестнадцатеричной системы счисления будет иметь следующий вид:
−1
= ∑ ∙ 16 =
=0
=,16 + ∙ 16 −1 + + 2 ∙ 162 + 1 ∙ 161 + 0 ∙ 160 =
=0 + 1 ∙ 16 + 2 ∙ 256 + 3 ∙ 4096 +