Ассемблер - первые шаги в программировании на ассемблере

NEWSpectrum #1
   ╔══════════════════════════════════╗
   ║                                  ║
   ║  ПЕРВЫЕ ШАГИ В ПРОГРАММИРОВАНИИ  ║
   ║                                  ║
   ║          НА АССЕМБЛЕРЕ           ║
   ║                                  ║
   ╚══════════════════════════════════╝

   Для  того, чтобы не отбить охоту прог-
раммировать  на ассемблере нужно начинать
с  того,  что  самому набрать программу в
машинных  кодах  и  увидеть  работу  этой
программы воочию.
   Поэтому,  начнем  с того, что научимся
записывать  программы если у нас есть го-
товый шестнадцатиричный дамп программы.

   Конечно  это  не  программирование  на
языке ассемблера, это уже готовый продукт
ассемблирования программы.

   Для этого нужна программа записи этого
дампа  в  память  компьютера.  В каталоге
"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
*****************************************



Поделитесь вашим мнением о статье