 |
Ассемблер в примерах - Директива .8086
- Вопрос:
- В начале некоторых программ стоит .8086, а для чего? ведь по умолчанию процессор и так работает как .8086.
- Ответ:
- Посмотрите линейку Процессоров Intel.
Они все совместимы снизу вверх, т.е. более позние версии поддерживают более ранние и программное обеспичение написанное для 16-битных могло работать на 32-х битных, это о Вашей фразе ведь по умолчанию процессор и так работает как .8086 он запускается в этом режиме, а потом переводится в защищенный, но как говорится в Одессе, это две большие разницы.
Такая директива появилась в компиляторах, после введения новых линеек процессоров 186,286,386 и т.д. . Компиляторы написанные под новые наборы команд и поддерживающие новые процессоры могли компилировать программы под х86-е, но чтобы программисту не следить за тем какие команды принадлежат нужному процессору ввели такую директиву, которая функцию слежения возлагала на сам компилятор.
Попробуйте написать программу в режиме .086 и использовать команду 186-го процессора pushf или pusha к примеру.
Но если вместо этих команд записать их опкоды, то компилятор в этом режиме их пропустит, т.к. считает их за данные, а не команду.
mov ax,bx
db 60;опкод команды pusha
mov bx,ax
|  |