Вот интересное место:
Текущий перевод в Паскаль:Код:L36040: CMP 000032(R5), #000012 ; < 10. ? L36046: BLT L36054 L36050: CLR R0 L36052: BR L36060 L36054: MOV #000001, R0 L36060: COMB R0 L36062: MOVB 000047(R5), R1 ; Фонарь горит? L36066: BICB R0, R1 L36070: CMP 000032(R5), #000001 L36076: BGT L36104 L36100: CLR R0 L36102: BR L36110 L36104: MOV #000001, R0 L36110: COMB R0 L36112: BICB R0, R1 L36114: BNE L36122 L36116: JMP L36144
Проблема в том чтобы сгенерировать точно такой же код, как в оригинале, но Паскаль даёт несколько другой код:Код:if (VAR32 < 10) and VAR47 and (VAR32 > 1) then
Пробовал разные комбинации, пока не нашёл.Код:; if (VAR32 < 10) and VAR47 and (VAR32 > 1) then CMP 26(5),#10 BLT L792 CLR %0 BR L793 L792: MOV #1,%0 L793: MOVB 39(5),%1 COM %1 BICB %1,%0 CMP 26(5),#1 BGT L794 CLR %1 BR L795 L794: MOV #1,%1 L795: COMB %1 BICB %1,%0 BNE L796 JMP L797 L796:




Ответить с цитированием