|
Ассемблер.
Альтернативный компилятор ассемблера для х86. Ассемблер написан сам на себе
имеет очень простой синтаксис. Позволяет создавать .com файл для ДОС.
Поддерживает 32 разрядные режимы адресации и данных. Доступен вместе с исходным
кодом.
Описание ассемблера.
Дальше рассмотрим пример
Hello
World.
* Кстати
комментарии вставляются между парными звездочками
Пример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=
wosomething
for example rd ptr1234
Есть три ключевых слова определяющих размер.
-
by - BYTE (8)
- wo - WORD (16)
- dw - DWORD (32)
ассемблер проигнорирует все что встретит между этими буквами
и первой цифрой.
Нужен массив из двойных слов - пожалуйста:
=array=
dw0;12345678;01234;dw12;...
Желаете иметь таблицу адресов чего-нибудь -
no problem:
=mytable= (adr1);(adr2);(adr3);dword(adr4)...
C адресами возможны следующие манипуляции:
CX,(A2-A1) * В CX получается длина строки(см пример)*
jmps (adr)+2;
mov [bx+si+(a2-a1)+1234],(adr3-adr4)-5
В 386 процессоре появились команды длинного
условного перехода. Отличаются они от коротких так:
JZ (adr) - короткий
JZ_N (adr) -
длинный.
Префиксы "66" и "67" вставляются автоматически.
Префиксы сегментов надо использовать в следующем виде:
ES:
LODSB
или
ES:;LODSB
SS:;MOVAX,[ECX}
т.е. фактически префикс сегмента
воспринимается как однобайтная команда.
С префиксом REPZ и REPNZ все еще проще:
REPZ;MOVSB
или
REPNZ
STOSD
Вот и все.
IRET
Скачать ассемблер.
|
|
Ассемблер. Оригинальный компилятор ассемблера х86.
Симулятор 80196.
Программный симулятор микроконтроллера Intel 80196KR. Имеет встроенный компилятор ассемблера, текстовый редактор, справочную систему. Может создавать HEX файлы.
Генератор кроссвордов. Описание алгоритм
компьютерного составления кроссвордов.
DISKEDIT
Программа позволяет просматривать и редактировать сектора дисков. Работает через прерывание INT13.
Нейронные сети. Пример программы и исходный код С++.
WPF, XPS, NET. Как установить шрифт из
памяти
Deflate. Подробное описание алгоритма декодирование
формата Дефлет. Прмер декодирования с пояснениями.
Программирование драйверов для Windows.
Общие вопросы программирования драйверов. Какими средствами пользоваться, где скачать DDK.
Программирование RS232 в Windows.
СComBase класс для программирования COM порта.
Программирование потоков в Windows.
Класс CBaseThread позволяет организовать несколько рабочих потоков.
Динамический Recordset
CDynamicRecordSet - класс модернизирует CRecordSet для более удобной работы с БД из MFC приложений.
Как сохранить, восстановить, отредактировать MBR (Master Boot
Record), boot sector, нулевой, загрузочный сектор диска при помощи утилиты debug.exe
Дачный водопровод
|