ADD CX, ES:[SI]; явно обозначен тип сегмента.
Директива RECORD.
В языке ассемблера можно осуществить символическое определение отдельных битов и битовых цепочек внутри байта или слова. Такое определение называется записью (RECORD). Каждая наименованная битовая цепочка в записи (в частном случае один бит), называется полем. Директива RECORD, определяющая запись, имеет формат
Имя RECORD <Имя поля:длина>,{<Имя поля : длина>}
Максимальное число бит в данной директиве равно 16, а минимальное - 1.
Оператор WIDTH ( ширина), примененный к записи, сообщает ее ширину в битах, т.е. сумму длин всех составляющих ее полей.
Размер записи равен числу байт, необходимых для ее размещения: 1 (если ширина записи равна 1..8 бит) или 2 (если ширина записи равна 9..16 бит).
Директива RECORD позволяет давать имена битовым полям в байтах или словах. TURBO ASSEMBLER сам подсчитывает положение поля. Например
RECORD SBYTE SIGN: 1 , VAL: 7
Нельзя создавать записи, больше чем слово. Переменные типа RECORD создаются следующим образом: