Цитата(codeok @ 14.4.2011, 02:34 ) | | Использую emu8086 |
процессор 8086 не может исполнять команду push 0A000h, т.е. помещать в стек константу. Но компилятор TASM (не знаю как другие) не выдаст ошибку он откомпилирует эту инструкцию как:
| Код | push ax push bp mov bp,sp mov word ptr [bp+02h],0A000h pop bp
|
Т.е. при компиляции для процессора 8086 код
будет откомпилирован как:
| Код | push ax push bp mov bp,sp mov word ptr [bp+02h],0A000h pop bp pop es
|
По этому я бы по рекомендовал заменить
| Код | push 0A000h pop es mov [es:0h],al
|
на
| Код | mov dx,0A000h mov es,dx mov [es:0h],al
|
Второй вариант в плане объема весит меньше и выполняется быстрее - меньше обращений к памяти (к стеку). |