spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
В компиляторе Паскаль-монитор была предусмотрена возможность вставлять в программу произвольные машинные команды с помощью встроенной функции BESM(код). Экстракод там какой вызвать, например.

Реализовано это в компиляторе путем тупого копирования указанного кода в создаваемый объектный модуль ("стандартный массив" МС Дубна), но тут есть одна проблема: в формате объектного модуля некоторые диапазоны значений адресной части были зарезервированы под ссылки на таблицу символов, признаки перемещаемости и т. п.

Из-за этого, например, попытка написать команду перехода на абсолютный адрес 76000 - BESM(003076000B) - приводит к краху. В результате получается переход по смещению 36000 относительно начала модуля.

Или даже просто вместо экстракода паузы BESM(0507700B) порождает Э50 с нулевой (в реальности - произвольной) адресной частью.

Такие дела.

Date: 2024-03-23 08:13 pm (UTC)
vak: (Default)
From: [personal profile] vak
Юнит-тестирование тогда ещё не придумали.

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 13th, 2026 06:32 pm
Powered by Dreamwidth Studios