╔══════════════════════════════════╗
║ ║
║ ПЕРВЫЕ ШАГИ В ПРОГРАММИРОВАНИИ ║
║ ║
║ НА АССЕМБЛЕРЕ ║
║ ║
╚══════════════════════════════════╝
Для того, чтобы не отбить охоту прог-
раммировать на ассемблере нужно начинать
с того, что самому набрать программу в
машинных кодах и увидеть работу этой
программы воочию.
Поэтому, начнем с того, что научимся
записывать программы если у нас есть го-
товый шестнадцатиричный дамп программы.
Конечно это не программирование на
языке ассемблера, это уже готовый продукт
ассемблирования программы.
Для этого нужна программа записи этого
дампа в память компьютера. В каталоге
"SOFTWARE" Вы найдете подкаталог "HEX" из
которого перепишите на дискету TR-DOS
программу "HEXinpu+" по той же методике
как Вы записывали игры из каталога "ИГРО-
ТЕКА". Запустите эту программу и на воп-
рос "Input prefix - XXXX" введите четыре
нуля - нажмите ENTER - появится вопрос
"Input start address - XXXX" - введите
стартовый адрес в шестнадцатиричном виде,
например 9C40.
Рассмотрим как вводить строчку дампа:
9C40:3A 79 5C FE 23 D8 CD E3:94
│ │ │ │
адрес └─────────┬──────────┘ контр.
│ сумма
вводить с
клавиатуры
Значения из дампа нужно вводить пара-
ми, после чего нажимается ENTER, напри-
мер:
3A - ENTER - 79 - ENTER - 5C - ENTER...
После того как Вы записали все строчки
дампа нажмите клавишу "S" и поочередно
введите имя программы, начальный и конеч-
ный адрес загружаемого дампа.
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Итак, Вашему вниманию предлагается:
┌───────────────────┐
│ Процедура "ЗВЕЗДЫ"│
└───────────────────┘
В программе "Norton Commander" для
IBM-овских машин есть замечательный режим
- режим экономии ресурса монитора, кото-
рый включается автоматически, если в те-
чение некоторого времени на клавиатуре не
нажималась ни одна клавиша. При этом эк-
ран монитора гаснет, а чтобы информиро-
вать пользователя о том, что компьютер
включен, на нем формируется картинка
"звездного неба". При нажатии на любую
клавишу информация на экране восстанавли-
вается.
Приводим полный дамп кодового блока.
Он состоит из двух частей, между которыми
находится буфер. Для демонстрации можете
сохранить их как два разных файла:
"stars1" CODE 40000,245
"stars2" CODE 47257,41
Итак, дампы кодов.
Первый блок:
stars1.cod
9C40: 3A 79 5C FE 23 D8 CD E3 :94
9C48: 9C 21 00 40 11 01 40 AF :E2
9C50: 32 08 5C D3 FE 77 01 FF :CA
9C58: 1A ED B0 21 00 43 06 03 :18
9C60: C5 01 FF 01 5D 54 13 36 :BC
9C68: 18 ED B0 11 01 06 19 C1 :AB
9C70: 10 EE 06 19 DD 21 35 9D :F9
9C78: CD F7 9C 11 04 00 DD 19 :7F
9C80: 10 F6 DD 21 35 9D 06 19 :11
9C88: DD 35 02 20 0F DD 34 03 :7B
9C90: C5 01 FA 00 CD 18 9D 0C :7A
9C98: DD 71 02 C1 DD 7E 03 DD :80
9CA0: 6E 00 DD 66 01 FE 08 20 :14
9CA8: 0A 3E 0F DD A6 02 DD 77 :74
9CB0: 02 3E 47 FE 09 20 07 36 :37
9CB8: 00 CD F7 9C 18 01 77 11 :55
9CC0: 04 00 DD 19 3A 08 5C B7 :AB
9CC8: 28 15 CD EB 9C EF A2 A2 :28
9CD0: 04 31 A4 A4 04 04 38 CD :F6
9CD8: F8 03 AF 32 79 5C C9 10 :FE
9CE0: A7 18 9F 21 00 40 11 99 :E5
9CE8: 9D 18 06 21 99 9D 11 00 :A7
9CF0: 40 01 00 1B ED B0 C9 C5 :13
9CF8: 01 01 03 CD 18 9D 21 00 :3C
9D00: 58 09 DD 75 00 DD 74 01 :A2
9D08: 01 FA 00 CD 18 9D 0C DD :0B
9D10: 71 02 DD 36 03 01 C1 C9 :C1
9D18: CD 2B 2D 01 01 00 11 34 :21
9D20: 9D CD B1 2A 06 1D EF 1D :31
9D28: 04 27 38 CD A2 2D C5 CD :56
9D30: BF 16 C1 C9 A5 00 00 00 :D1
Второй блок:
stars2.cod
B898: 00 3E 02 CD 01 16 CD 6B :AC
B8A0: 0D 3E 02 CD 01 16 AF 32 :6A
B8A8: 79 5C FD CB 01 AE CD 40 :B9
B8B0: 9C 30 F3 FD CB 01 6E 28 :86
B8B8: F5 3A 08 5C FE 20 D8 D7 :D0
B8C0: 18 E4 00 00 00 00 00 00 :74
Демонстрационная Бейсик-программа (ав-
тостарт со второй строки):
1 GO TO 10
2 BORDER 7: PAPER 7: INK 0: CLEAR 39999:
RANDOMIZE USR 15619:REM:LOAD "stars1"
CODE
3 RANDOMIZE USR 15619:REM:LOAD "stars2"
CODE
10 BEEP .1,20
15 REM POKE 40004,5
20 RANDOMIZE USR 47257
После звукового сигнала запустится де-
монстрационная программа. Время ожидания
задано в ячейке 40004, Вы можете
уменьшить его, убрав REM из строки 15.
Константин Коротков г.Людиново
Калужской обл.
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
Кстати, в магазине "РАДИОДЕТАЛИ", на-
ходящемся на ул.Г.Исакова, Вы можете при-
обрести дискету "iS-DOS 3.1", в которой
уже при первоначальной установке системы
загружается программа "звездное небо", и
выполнена она намного качественнее
представленной выше программы. Я бы наз-
вал эту программу даже не "звездное не-
бо", а "летящее звездное небо" - очень
похоже на вид из иллюминатора звездолета
слева в знаменитой игре "ELITE" фирмы
"FIREBIRD".
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
*****************************************
ZX-РЕВЮ No.5 1994 стр.5-10
kiSSSoft 1995
*****************************************
Поделитесь вашим мнением о статье