Вредоносное ПО (malware) - это назойливые или опасные программы,...
![Лучшие утилиты для удаления вирусов и вредоносных программ](https://i2.wp.com/webhelper.info/images/danger.jpg)
Альтернативный компилятор ассемблера для х86. Ассемблер написан сам на себе имеет очень простой синтаксис. Позволяет создавать.com файл для ДОС. Поддерживает 32 разрядные режимы адресации и данных. Доступен вместе с исходным кодом.
Запуск на компиляцию:asm filename.ext. Результат - сообщение об ошибке в строке с № или filename.com / filename.obj
MOV AH,09
movah,9
aH,9
Метки чувствительны к регистру.
* Кстати
комментарии вставляются между парными звездочками
Пример1 "Hello World" выводит на экран надпись.*
JMPS(S)
=A1= "Hello World !"
=A2= 0A
=S= AX,B800;ES,AX;AX,3;INT10
CX,(A2-A1);SI,(A1);DI,500
AH,[(A2)]
=L= LODSB;STOSW;LOOP(L)
RET
JMP - кодирует длинный переход в пределах сегмента.
JMPS - короткий +/- 127 байт.
Со второй строкой все понятно. Третья строка:
По адресу (А2) в памяти ЭВМ размещается байт равный 0А.
Т.е.
Хотите зарезервировать в памяти байт - пищите так:
=vmode= 00 или =adr= 12
Надо выделить два байта пишите:
=X= 0000 или wo0
или
=Y=
wo
something
for example rd ptr
1234
Есть три ключевых слова определяющих размер.
ассемблер проигнорирует все что встретит между этими буквами и
первой цифрой.
Нужен массив из двойных слов -
пожалуйста:
=array= dw0;12345678;01234;dw12;...
Желаете иметь таблицу адресов
чего-нибудь - no problem:
=mytable= (adr1);(adr2);(adr3);dword(adr4)...
C адресами возможны следующие
манипуляции:
CX,(A2-A1) * В CX получается длина
строки(см пример)*
jmps (adr)+2;
mov ,(adr3-adr4)-5
В 386 процессоре появились команды
длинного условного перехода. Отличаются они от коротких так:
JZ (adr) - короткий
JZ
_N
(adr)
- длинный.
Префиксы "66" и "67" вставляются автоматически.
Префиксы сегментов надо использовать в следующем виде:
ES:
LODSB
или
ES:;LODSB
SS:;MOVAX,}