- •Щемелева т.К.
- •Архитектура и программирование реального режима микропроцессоров фирмы intel
- •Учебное пособие
- •Пермь 2001
- •Содержание
- •1.2.Переводы между позиционными системами счисления
- •1.3.Система кодирования символов ascii
- •1.4. Преобразование строки ascii-кодов в двоичное и шестнадцатеричное число
- •1.5. Применение систем счисления в эвм
- •1.6. Контрольные вопросы и задания
- •Тема 2. Представление данных на языке ассемблера и их хранение в памяти пк
- •2.1. Биты, байты и слова
- •2.3. Размещение различных типов данных в памяти пк
- •2.4. Отрицательные числа
- •2.5. Контрольные вопросы и задания
- •Тема 3. Элементы архитектуры персонального компьютера: сегментная память и регистровая структура микропроцессора
- •3.1. Понятие сегмента
- •3.2. Способ адресации ячеек сегментированной памяти
- •3.4. Программистская модель мп i8086. Назначение регистров.
- •Регистры общего назначения
- •Регистры сегментов и указатель команд
- •3.5. Контрольные вопросы и задания
- •Тема 4. Создание программы в ехе-формате
- •4.1. Программы на языке транслятораMasm.
- •4.1.1. Определение сегментов и данных.
- •4.1.2. Структура программы.
- •4.2. Программы на языке транслятораTasm.
- •4.2.1. Особенности транслятора.
- •4.2.2. Определение сегментов и данных .
- •4.2.3. Директива model.
- •4.2.4. Директивы упрощенного описания сегментов.
- •4.2.5. Структура программы.
- •4.2.6. Директивы startupcode и exitcode.
- •4.3. Контрольные вопросы и задания
- •Тема 5. Способы адресации данных в командах языка ассемблер
- •5.1. Регистровая адресация
- •5.2. Непосредственная адресация.
- •5.3. Прямая адресация.
- •5.4. Косвенная регистровая.
- •5.5. Адресация по базе.
- •5.6. Индексная адресация.
- •5.7. Адресация по базе с индексированием.
- •5.8. Контрольные задания.
- •Тема 6. Основные команды языка Ассемблер
- •6.1. Команды пересылки.
- •1) Пересылка данных
- •2) Пересылка адресов
- •4) Пересылка в стек и из стека
- •6.2. Арифметические операции.
- •2) Арифметические операции над двоичными кодами.
- •3) Команда сравнения:
- •6.3. Команды корректировки.
- •6.4. Команды логических операций.
- •1) Поразрядные логические операции:
- •2) Команды сдвига
- •6.5. Команды передачи управления.
- •6.6. Команды организации цикла.
- •6.7. Команды вызова процедур и возврата из них.
- •6.8. Команды прерываний и возврата из них.
- •6.8.1. Функции ввода/выводаDos.
- •6.8.2. ФункцииBios управления экраном.
- •Тема 7. Стек
- •7.1.Стек и сегмент стека
- •7.2.Стековые команды
- •7.3. Доступ к элементам стека
- •Тема 8. Практическая работа на пк.
- •Тема 9. Создание линейных программ
- •9.1 Создание линейной программы.
- •9.1.1. Составление текста программы.
- •9.1.2 Трансляция.
- •9.1.3. Создание исполняемого файла
- •9.1.4.Отладка программы в turbo debugger’е
- •9.2. Контрольные вопросы и задания
- •Тема 10. Организация ветвлений.
- •10.1.Флаги и их назначение.
- •10.2 Команда безусловного перехода jmp
- •10.3 Команды условных переходов
- •10.4. Создание разветвленной программы.
- •10.4.1. Составление текста программы.
- •10.4.2.Трансляция.
- •10.4.3. Создание исполняемого файла.
- •10.5. Контрольные вопросы и задания
- •Тема 11. Организация циклов
- •11.1. Команды управления циклом
- •11.2.Создание циклической программы.
- •11.2.1.Составление текста программы.
- •11.2.2.Трансляция.
- •11.2.3.Создание исполняемого файла
- •11.2.4.Отладка программы в turbo debugger’е
- •11.3. Контрольные вопросы и задания
- •Тема 12. Циклическая разветвленная программа
- •12.1.Создание программы.
- •12.1.1.Составление программы
- •12.1.2.Трансляция.
- •12.1.3.Создание исполняемого файла.
- •12.1.4. Отладка программы в turbo debugger’е
- •12.2.Контрольные вопросы
- •12.3. Контрольные задания
- •Тема 13. Связь ассемблера с языкомPascal.
- •13.1 Общие положения
- •13.2 Организация связи
- •13.3 Передача аргументов (и возврат результата в случае функции)
- •13.4 ДирективаArg
- •13.5 Использование операндов директивыmodel
- •13.6 Передача данных остальных типовPascal
- •13.7 Возврат значения в программу наPascal
- •13.8 КомандыEnter иLeave
- •13.9 Итоги
- •Листинг 1.2. Ассемблерное представление.
- •Тема 16. Рекомдации начинающему программисту
- •Тема 17. Контрольная работа
- •Список литературы
- •Приложение 1 Инструкция по работе с программой Turbo Debugger.
- •Приложение 2 Практическая работа на пк
- •Приложение 3 ключи командной строкиtasmиtlink
1.3.Система кодирования символов ascii
Это стандартная для персональных компьютеров система кодирования символов, вводимых с клавиатуры, выводимых на экран, а также некоторых управляющих символов. Каждому символу соответствует свой двоичный 8-битовый код или 16-ричный двухцифровой код. 8-битовый расширенный ASCII-код, используемый в IBM PC обеспечивает представление 256 символов, включая символы для национальных алфавитов. Списки и значения всех кодов ASCII можно посмотреть практически в любой книге по программированию на языке АССЕМБЛЕР.
В табл.1.1 представлена таблица кодирования ASCII. По ней h-коды каждого символа, включенного в таблицу, составляются из номера столбца и номера строки.
Как видно из табл.1.1, десятичные цифры от 0 до 9 находятся в столбце таблицы с номером 3h, а номера строк таблицы совпадают с h-кодом самой цифры.
Например, число 55 в b-коде в формате байта равно 00110111b, а в символьном коде ASCII оно будет записано как 00110101b 00110101b ASCII:
00110101 00110101
5 5
Если использовать не b-коды, а h- коды, то число 55 будет равно 37h, но в символьных кодах ASCII оно будет записано как 35h 35h ASCII:
35h 35h
5 5
Таблица 1.1. Русифицированная таблица кодов ASCII.
h-коды |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F * |
0 |
|
► |
|
0 |
@ |
P |
` |
p |
А |
P |
a |
░ |
└ |
╨ |
p |
≡(Ё) |
1 |
☺ |
◄ |
! |
1 |
A |
Q |
a |
q |
Б |
С |
б |
▒ |
┴ |
╤ |
с |
(ё) |
2 |
☻ |
↕ |
“ |
2 |
B |
R |
b |
r |
В |
Т |
в |
▓ |
┬ |
╥ |
т |
≥(Є) |
3 |
♥ |
‼ |
# |
3 |
C |
S |
c |
s |
Г |
У |
г |
│ |
├ |
╙ |
у |
≤(є) |
4 |
♦ |
¶ |
$ |
4 |
D |
T |
d |
t |
Д |
Ф |
д |
┤ |
─ |
╘ |
ф |
⌠(Ï) |
5 |
♣ |
§ |
% |
5 |
E |
U |
e |
u |
Е |
Х |
е |
╡ |
┼ |
╒ |
х |
⌡(ï) |
6 |
♠ |
▬ |
& |
6 |
F |
V |
f |
v |
Ж |
Ц |
ж |
╢ |
╞ |
╓ |
ц |
→(Ў) |
7 |
● |
↨ |
' |
7 |
G |
W |
g |
w |
З |
Ч |
з |
╖ |
╟ |
╫ |
ч |
←(ў) |
8 |
◘ |
↑ |
( |
8 |
H |
X |
h |
x |
И |
Ш |
и |
╕ |
╚ |
╪ |
ш |
↑(º) |
9 |
◦ |
↓ |
) |
9 |
I |
Y |
i |
y |
Й |
Щ |
й |
╣ |
╔ |
┘ |
щ |
↓(▪) |
A |
◙ |
→ |
* |
: |
J |
Z |
j |
z |
К |
Ъ |
к |
║ |
╩ |
┌ |
ъ |
· |
B |
♂ |
← |
+ |
; |
K |
[ |
k |
{ |
Л |
Ы |
л |
╗ |
╦ |
█ |
ы |
√ |
C |
♀ |
∟ |
, |
< |
L |
\ |
l |
| |
М |
Ь |
м |
╝ |
╠ |
▄ |
ь |
ⁿ(№) |
D |
♪ |
↔ |
- |
═ |
M |
] |
m |
} |
Н |
Э |
н |
╜ |
═ |
▌ |
э |
²(☼) |
E |
♫ |
▲ |
. |
> |
N |
^ |
n |
~ |
О |
Ю |
о |
╛ |
╬ |
▐ |
ю |
■ |
F |
☼ |
▼ |
/ |
? |
O |
_ |
o |
⌂ |
П |
Я |
п |
┐ |
╧ |
▀ |
я |
|
* - символы последнего столбца могут варьироваться в зависимости от русификатора (в скобках показан вариант, используемый в Windows).