Leha, ты ещё здесь сидишь?
Среда Февраль 11 2004 17:58, Leha Bishletov wrote to George Shepelev:
GS>> MOV bx,[data] GS>> безусловно будет проверено соответствие типов. LB> Соответствие byte/word/dword?
Да, разумеется.
LB> Даже знаковый беззнаковый не различаются ...
Почитай ещё раз внимательно, какие типы данных существуют в ассемблере x86.
GS>> В-третьих GS>> MOV [ax],bx ; (нехорошая команда, ну да ладно) GS>> это трюк, здесь ассемблер позволяет программисту делать всё что GS>> угодно, предполагается что голова на плечах программиста имеется. LB> Из того, что ты написал Alexey Boyko можно сделать вывод, что LB> программирую на АСМ следует избегать косвенной регистровой адресации
Это слишком сильное утверждение :-) Hе следует _неоправданно_ применять такую адресацию.
LB> или "чудеса могут возникать неописуемые!".
Если программист "чайник" - да, разумеется ;)
LB> А на С работа с указателями котролируется.
Вот и хорошо.
GS>> Пример со структурами тоже показывать придётся? LB> Hе надо. Там у АСМ еще хуже будет,
Hормально будет.
LB> особенно если взять mpasm, а не tasm.
Я говорил _конкретно_ о TASM в режиме Ideal. Там структуры аккуратно делаются.
LB> Принципиальная проблема с контролем типов в АСМ заключается в том, LB> что после попадания в регистр вся информация о типе данных LB> исчезает, остается только размер.
Так процессор устроен. К примеру команда ADD на большинстве процессоров с "дополнительной арифметикой" понятия не имеет, работает она со знаковыми данными, или беззнаковыми. Эти нюансы остаются за программистом.
LB> В итоге есть гораздо больше шансов совершить ошибку, которую не LB> заметит компилятор.
Такие ошибки с лёгкостью выявляются при отладке...
Георгий