Николай Коровин (19.07.2006 21:03, просмотров: 1) ответил VAI на еслиб была шутка, было бы не так горько.. Ведь парень делал так на самом деле.
Возможные варианты глюков: 1) кривой ассемблер, который может неверно сопоставить адреса переходов текстовым именам меток (ну в листе там сдвиг на одну позицию хз куда хз из-за чего). Без всяких нопов.
2) одну из экзотических команд перехода проц мнит совсем не той длины, которой она есть. Например, переход из семи байт -- КОП, номер регистра младшей половины адреса, номер регистра старшей половины адреса, четыре байта смещения, прибавляемые к адресу, упорно считает шестибайтной командой, неверно инкрементирует счетчик команд и в результате всегда прилетает на один байт выше метки. Причем другая команда, у которой смещение однобайтное, работает правильно, а генерится одна или другая в зависимости от конкретных чисел, структуры программы и фазы Луны. Поди-ка отлови-ка!
А косяк такой вполне возможен на особо совковом контроллере или каком-нибудь криво прошитом уроде с микропрограммным управлением.
3) сами придумайте, мне лень.
Мне случалось рулить вдвоем с еще одним человеком рулем мотоцикла, который едет задом наперед. ИМХО не хуже этого ассемблерщика. Рассказать, что нас на это сподвигло?