Почти вся информация вне ЭВМ представляется в символьной форме. В этой форме информация перфорируется на картах, в этой форме она выдается устройством печати. Внутренней формой представления символьных данных является код EBCDIC, который был нами рассмотрен в разделе "Символьная обработка". Числовые данные в машине имеют двоичную форму, удобную для выполнения арифметических операций.
Сейчас необходимо ответить на следующий вопрос: каким образом производится перевод числовой информации, представленной в коде EBCDIC, в двоичную форму и наоборот? Ранее мы возлагали выполнение подобных преобразований на макрокоманды RWD и WWD. В данном разделе будет рассмотрен способ, который позволит нам обойтись без этих специальных средств.
В процессе работы мы познакомимся еще с двумя формами представления числовой информации. Зонный формат представляет собой нечто среднее между кодом EBCDIC и упакованным форматом. Следующий раздел будет частично посвящен вопросу выполнения арифметических операций над данными, представленными в упакованном формате.
Существуют следующие общепринятые форматы представления числовых данных:
Для обеспечения возможности дальнейшей обработки числовых входных данных необходимо осуществить их перевод из кодов EBCDIC в двоичную форму. Для обеспечения возможности вывода числовых данных на печать их необходимо перевести из двоичного (или упакованного) формата в коды EBCDIC.
В таблице ниже приведены команды, использующиеся при такого рода преобразованиях.
PACK D1(L1.B1), |
PACK |
Преобразовать (D2 + (B2)L1 D2(L2,B2) в упакованный формат в виде (D1+(B1))LI |
UNRK D1(L1.B1), D2(L2,B2) |
UNPacK |
Преобразовать (D2+(B2))L3 в зонный формат в виде (D1 + B1))L1 |
CVB R1,D2(X2, B2) |
ConVert to Binary |
R1?двоичный эквивалент (D2 + (X2) + (B2))D |
CVD R1,D2(X2, B2) |
ConVert to Decimal |
Упакованный десятичный эквивалент (R1)? D2+(Х2)+(В2) |
EX R1,D2(X2, B2) |
EXecute |
Выполнить команду по адресу D2 + (X2) + (B2) |