Компилятор Би, будучи запущенным на БЭСМ-6, успешно обработал собственный исходный текст и выдал разумный ассемблерный код. До этого я гонял его в кросс-режиме под Линуксом. Но теперь уже и на самой БЭСМ-6 можно. С перекодировкой пришлось помучиться.
Сравниваю ассемблерный код, полученный в кросс-режиме и на БЭСМ. Вижу расхождение в одной строке.
Сравниваю ассемблерный код, полученный в кросс-режиме и на БЭСМ. Вижу расхождение в одной строке.
Это код функции negate().$ diff bbesm.madlen bbesm2.madlen
5185c5185
< ,XTS,=37777777777777
---
> ,XTS,=50000000000001
negate(n) {
return (-n & 037777777777777);
}
Почему-то на БЭСМ получилась неправильная целочисленная константа. Надо искать багу в арифметике.