Контрольная сумма |
Главная / ЭКВМ / Программы для ЭКВМ / Служебные программы и утилиты |
Контрольная сумма применяется для проверки правильности переноса программ, опубликованных на сайте или в печатных изданиях. Совпадение контрольной суммы, полученной после ввода программы в память ЭКВМ, с указанной автором существенно уменьшает вероятность ошибки. В ответственных случаях может приводиться контрольная сумма не только всей программы, но и каждой страницы отдельно. Приведенная ниже программа вычисляет контрольные суммы двух видов. Первый, это арифметическая сумма байт области. Ее значение может быть от 0 и не превышает 2550000. Второй, это однобайтовая сумма по модулю 2, получаемая командой XOR. Ее значение может быть от 0 до 255. Контрольная сумма
Для использования программа должна быть загружена в любую страницу вне той области, для которой подсчитывается контрольная сумма. Перед первым запуском нужно командой "Р БП адрес" перейти на начало этой программы. Перед запуском вводится: "номер начальной страницы", "В↑", "число страниц". После останова в регистр X выводится арифметическая сумма, в регистр Y - сумма по модулю 2. После считывания результатов запуск программы можно повторить для другой области памяти. Арифметическая контрольная сумма должна совпадать с суммой контрольных значений отдельных страниц. Общая сумма по модулю 2 является суммой по модулю 2 контрольных значений отдельных страниц. Структура программы "Контрольная сумма"Краткое описание структуры программы приведено ниже в таблице. Программа использует следующие регистры: Занесение значений в регистры перед запуском не требуется.
В качестве теста можно вычислить контрольные суммы самой программы. Арифметическая сумма байт для этой программы равна 18700, сумма по модулю 2 - 200. Предполагается, что остальные байты страницы равны 0FFh (т.е. 25510). Применение циклических контрольных сумм также возможно, хотя не слишком оправдано при небольшой длине проверяемого текста. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |