Здравствуйте. Пишу диссасемблелер на tasm. И столкнулся со следующей тупиковый ситуацией. Попробую объяснить Например, есть команда непосредственного операнда Code (Text): mov word ptr [bx+1000h], 1234h её код в HEX следующий Подробный разбор этой команды Непонятность у меня и полный тупик вызывает следующее По D = 1 видно обмен между аргументами происходит из REG в R/M но почемуто с этой командой всё наоборот, тоесть из REG в R/M исходя из того, что например R/M = 111 = BX+offset При этом есть взять другую команду у которой D = 1 например то видно что тут всё нормально, тоесть из REG в R/M Ктонибудь может "пролить свет", в чём же тут дело?
А как тут можно узнать у каких ещё команд кроме этой нету D бита, есть-ли тут какая-то "закономерность", если можно так выразится. Один момент я уже заметил. Можно проверять не является-ли первый аргумент значением. А ещё какие случаи есть?
Спасибо за ссылки. Нашел то, что Code (Text): MOV 1100 011w : mod 000 r/m : imm теперь ситуация прояснилась.