Я пишу этот код в эмуляторе 8086 и эмулирую, но не выдает никаких ошибок, почему?
org 100h
mov 1ah,dh
ret
редактировать: это результат эмуляции
Я пишу этот код в эмуляторе 8086 и эмулирую, но не выдает никаких ошибок, почему?
org 100h
mov 1ah,dh
ret
редактировать: это результат эмуляции
mov
, возможно, их дерево решений просто не приняло это учтено, и он оказался в ветке r/m, reg только потому, что выпал из всех других веток. Чистая догадка конечно. Что-то подобное тоже было, когда я тоже писал ассемблер, так что это не совсем случайная идея. 05.11.2014 ds:1Ah
, поэтому EMU8086 — не единственный ассемблер, использующий подобный синтаксис. Но, в отличие от EMU8086, MASM требует ds:
в режиме адресации только для смещения, а ds:
в этом случае не является переопределением сегмента. Если я правильно помню, A86 также использует ds:1Ah
. 05.11.2014 emu8086
изменил mov 1ah,dh
на mov [1ah],dh
. В квадратных скобках это означает: сохранить DH
в память по адресу DS:001A
(не 0001A). Я хотел бы сказать, что это поведение является ошибкой.