Логика вычислений и организация памяти |
Главная / ЭКВМ / Техническая информация / РЭ |
3.3. Логика вычислений и организация памяти3.3.1. Логика вычисленийЭВМ оперирует с числами, представленными в десятичной позиционной системе счисления в естественной форме или в форме с плавающей запятой. Для обработки чисел в ЭВМ принята обратная бесскобочная логика вычислений, предложенная польским математиком Лукасевичем. Ее характерными особенностями являются:
Стеком называется группа регистров памяти магазинного типа. Последнее записанное в стек число считывается из него первым. Передвижение чисел в регистрах стека осуществляется автоматически. Пример: Выражение a ↑ b ↑c ↑ d + × ÷, где символ ↑ обозначает ввод числа в стек, эквивалентно алгебраическому выражению a/(b+(c*d)). 3.3.2. СтекСтек ЭВМ состоит из специальных регистров памяти: X, Y, Z, T. Регистры стека X и Y являются операционными. Регистры Z и T используются для промежуточного хранения результатов вычислений. Регистр предыдущего результата X1 является вспомогательным и предназначен для хранения значения регистра X, существовавшего до выполнения операции. Далее регистр X1 будет рассматриваться как один из регистров стека. Стек ЭВМ автоматически смещается при вводе чисел и при выполнении операций. В автоматическом режиме калькулятора содержимое всех регистров стека, кроме X1, выводится на индикатор. При вводе числа или при чтении его из регистра памяти вводимое значение записывается в регистр X. При выполнении одноместной операции ЭВМ выполняет действие с числом, находящимся в регистре X. При этом содержимое регистров Y, Z и T не изменяется. Число, находившееся до выполнения операции в регистре X, передается в регистр предыдущего результата X1. Результат одноместной операции передается в регистр X. Таблица 1
При выполнении двухместной операции ЭВМ выполняет действие с числами, находящимися в регистрах X и Y. При этом в регистр Y переносится содержимое регистра Z, в регистр Z - содержимое регистра T. Значение регистра T не изменяется. Число, находившееся до выполнения операции в регистре X, передается в регистр предыдущего результата X1. Результат двухместной операции передается в регистр X. Таблица 2
3.3.3. Регистры памяти и типы адресацииРегистры памяти позволяют ЭВМ организовывать работу с информацией. Каждый регистр имеет собственный номер (рис. 5), который позволяет идентифицировать размещенные в памяти данные (регистры данных) или обращаться к функциям ЭВМ (регистры функций). В каждом регистре в определенный момент времени может храниться только одно значение. Регистры памяти с номерами от 0 до 999 используются для хранения десятичных данных, представленных в форме с естественной или плавающей запятой. Данные из регистров с адресами от 0 до 999 могут быть сохранены на электронном диске, считаны с него или просмотрены как файл с десятичными данными. Содержимое регистров памяти может быть просмотрено в виде таблицы или очищено. Регистры памяти с номерами от 1000 до 8167 используются для хранения байтовых данных. При записи в эти регистры чисел с естественной или плавающей запятой выполняется выделение целой части числа и его приведение к диапазону от 0 до 255. При считывании байтовые значения преобразуются в целые числа в указанном диапазоне. Данные из регистров с адресами от 1000 до 5095 могут быть сохранены на электронном диске, считаны с него или просмотрены как файл с двоичными данными. Содержимое регистров памяти может быть просмотрено в виде таблицы или очищено. Данные из регистров с адресами от 5096 до 8167 могут быть просмотрены в виде текста, а также сохранены на диске, считаны с него и просмотрены как текстовый файл. Регистры памяти с номерами от 9000 до 9999 применяются для доступа к функциям ЭВМ.
Рис. 5. Регистры памяти ЭВМ. Регистровая адресация может быть выполнена к регистрам с номерами от 0 до 14. При этом способе адресации номер используемого регистра является составной частью кода команды. При использовании в таких командах регистры с номерами от 10 до 14 имеют наименования A, B, C, D и E соответственно. Прямая адресация может быть выполнена ко всем регистрам памяти. При этом способе адресации номер используемого регистра записывается непосредственно после кода команды. Для прямого обращения к регистрам могут использоваться команды с диапазоном задания номера от 0 до 99 или от 0 до 9999, которые имеют различную длину. Косвенная адресация также может быть выполнена ко всем регистрам памяти. Номер регистра, к которому производится косвенное обращение, записывается в адресные регистры с номерами от 0 до 99. Cодержимое адресных регистров при выполнении команд с косвенной адресацией изменяется. Если записанное в регистр число меньше нуля, в регистр записывается число нуль. Дробная часть числа, записанного в регистр, отбрасывается. При косвенном обращении с регистровой адресацией через регистры с номерами от 0 до 6 перед обращением происходит дополнительное изменение содержимого этих регистров. При использовании регистров от 0 до 3 происходит косвенная адресация с предварительным автодекрементированием, то есть вычитание числа 1 из содержимого адресного регистра перед выполнением обращения к памяти. При использовании регистров от 4 до 6 - косвенная адресация с предварительным автоинкрементированием, то есть прибавление числа 1 к содержимому адресного регистра перед выполнением обращения к памяти. Обращение происходит после изменения содержимого регистра адресации в соответствии с полученным значением. При косвенном обращении с прямой адресацией, в том числе при использовании регистров с номерами от 0 до 6, автоинкрементирования и автодекрементирования содержимого адресных регистров не происходит. В дальнейшем описанное выше изменение содержимого регистра адресации при косвенном обращении называется модификацией. Данные, введенные пользователем в регистры памяти с клавиатуры ЭВМ, сохраняются в энергонезависимой памяти и восстанавливаются после выключения и последующего включения питания. Также возможно сохранение содержимого регистров данных в энергонезависимой памяти средствами программы пользователя. Далее при записи команд используются обозначения: M - регистр памяти от 0 до E (от 0 до 14) в командах с непосредственной адресацией, MM - регистр памяти от 0 до 99 и MMMM - регистр памяти от 0 до 9999 в командах с прямой адресацией. 3.3.4. Память программ пользователя и типы адресацииВ ЭВМ принята десятичная система адресации памяти. Память программ состоит из 10000 ячеек, в каждую из которых записан один байт. Программа состоит из отдельных команд. Каждая команда имеет длину от одного до трех байт. Местонахождение команды в памяти программ определяется адресом, который может принимать значения от 0 до 9999. Для управления выполнением программы в ЭВМ имеется счетчик адреса. В нем хранится адрес текущей исполняемой или записываемой команды. Часть команд переходов, циклов и подпрограмм использует страничную адресацию памяти программ. При использовании механизма страничной адресации память разбита на 100 страниц по 100 байт на каждой странице. Запись программ на электронный диск и считывание с него также выполняется постранично. Программа может занимать любые адреса в памяти и запущена с произвольного адреса. Команды программы выполняются последовательно в порядке возрастания адресов. Команды переходов, циклов и подпрограмм изменяют значение счетчика адреса, что приводит к изменению последовательности выполняемых команд. Память программ ЭВМ циклически замкнута. После выполнения команды по адресу 9999 происходит автоматический переход к адресу 0000. Переход к адресам памяти вне указанного диапазона вызывает останов программы и выдачу сообщения об ошибке. Адресация в командах переходов, включая команды циклов и подпрограмм, может быть прямая и косвенная. В командах прямой адресации используются короткие или расширенные адреса, занимающие соответственно один или два байта в программе. При использовании прямой короткой адресации происходит переход внутри страницы, на адрес от 0 до 99, указанный в команде. Текущий номер страницы при этом не изменяется. Примечание: Текущий номер страницы определяется расположением в памяти программ байта с адресом перехода. Если команда расположена на границе двух страниц, переход будет выполнен на адрес, расположенный в пределах страницы с большим номером. Использование прямой короткой адресации позволяет создавать перемещаемые программы и подпрограммы, которые могут быть исполнены после загрузки в любую страницу памяти. Примечание. Таким образом обеспечивается совместимость ЭВМ с существующим программным обеспечением, разработанным для программируемых калькуляторов Б3-34, МК-52, МК-61 и других аналогичных. В памяти ЭВМ может одновременно храниться до 100 программ данного типа и любая из них может быть запущена на выполнение. При использовании команд прямой расширенной адресации возможен переход на произвольный адрес в диапазоне от 0 до 9999. При этом происходит изменение текущего номера страницы. Например, при использовании в командах перехода адресов от 0000 до 0099 происходит переход к адресам на нулевой странице. Команды, использующие косвенную адресацию, обеспечивают переход на произвольный адрес в диапазоне от 0 до 9999. Для хранения адреса используются регистры с номерами от 0 до 99. При косвенном обращении содержимое этих регистров модифицируется так же, как и при косвенной адресации регистров памяти. В памяти программ могут храниться неизменяемые данные пользователя, такие как текстовые строки, графические изображения, команды для устройств, или любые другие, которые могут быть представлены в виде последовательности байтов. Байтовые значения считываются из памяти программ в стек при помощи специальной команды ("К ИПРГ") или с использованием регистров функций. Запись или изменение значений в памяти программ средствами программы пользователя не выполняются. Далее при записи адресов в командах используются обозначения: NN - короткий адрес от 0 до 99 в пределах страницы, NNNN - расширенный адрес от 0 до 9999. 3.3.5. Адресация с использованием шестнадцатиричных значенийВ памяти программ хранятся байты, соответственно коды команд и адреса представлены в виде шестнадцатиричных чисел. Значения десятичных адресов и номеров регистров в командах с прямой адресацией хранятся в программе в одном или двух байтах в упакованном BCD формате. При этом в записи десятичных значений адресов и номеров регистров используются только те шестнадцатиричные числа, цифры в которых принимают значения от 0 до 9. Если в команде перехода или при обращении к регистру в поле команды с прямой адресацией тем или иным способом записано шестнадцатиричное значение с цифрами от A до F, то адрес перехода или номер регистра вычисляются особым образом. Значение шестнадцатиричной цифры умножается на вес десятичного разряда, после чего полученные для каждой цифры значения складываются, образуя десятичный эквивалент записанного в команде значения. Например, шестнадцатиричное значение 0ABh эквивалентентно десятичному 111, поскольку 0Ah*10 + 0Bh = 10*10+11=100+11=111. Здесь и далее символ 'h' после числа указывает на шестнадцатиричное представление. Если полученное значение эквивалентно допустимому десятичному адресу или номеру регистра, то действия команд с использованием шестнадцатиричного и эквивалентного десятичного значения не отличаются. При выходе значения адреса за границу 9999 при выполнении команды перехода формируется сообщение об ошибке. При обращении к номеру регистра свыше 9999 никаких действий не выполняется. Применение команд с прямой короткой адресацией со значениями адреса от 9Ah до 0FFh позволяет выполнять переход на адреса, расположенные на следующей странице. Применение команд с косвенной адресацией с аналогичными значениями номера регистра позволяет использовать в качестве адресных регистры с номерами от 100 до 165. Ввод шестнадцатиричных адресов и номеров регистров с клавиатуры при наборе команды в режиме программирования запрещен. Для занесения в память шестнадцатиричных значений следует перейти в режим ввода байтов. Примечание. Не следует использовать в программах данную особенность без необходимости. |
||||||||||||||||||||||||||||||||||||
|
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |