В предыдущих главах наше внимание было сконцентрировано на командах арифметического типа, поскольку они представляют необходимую основу для изучения языка ассемблера. Но во многих важных применениях арифметика отходит на второй план по отношению к символьной обработке. При этом арифметические команды используются для организации управления циклами, преобразования адресов и выбора данных, обрабатываемых программой.
Программы символьной обработки оперируют с информацией, представленной в виде последовательности символов. При этом исходная информация может преобразовываться в числовую форму, транслироваться или модифицироваться какими-либо иными способами. Ассемблер является одним из примеров программ, осуществляющих работу с символьной информацией.
Входной информацией для ассемблера является программа, подлежащая трансляции, в виде символьных данных; на выходе получается соответствующая программа на машинном языке. В качестве других примеров программ символьной обработки можно назвать учетные программы, программы управления запасами, административного управления, трансляции с различных языков, компиляции и информационно-поисковых систем. Конечно, точно подсчитать трудно, но можно с уверенностью сказать, что по меньшей мере 75% всех вычислительных работ сводится к символьной обработке.
Эта глава могла быть с таким же успехом названа «Побайтовая обработка». Как мы увидим в дальнейшем, одной из форм представления символьных данных в машинах является код EBCDIC, в котором каждому символу алфавита ЭВМ соответствует двоичное число длиной в 1 байт. Команды DS и DC представляют возможность резервирования памяти байтами, что используется при решении задач символьной обработки. В систему команд IBM 360 включены команды пересылки и сравнения, специально предназначенные для выполнения операций над символьными данными.
Машины IBM 370 содержат расширенный набор подобных команд. Вопросы работы с этими командами подробно обсуждаются в разд. 20.1 гл. 20, к которому вы можете обратиться после ознакомления с материалами данной главы.
Формой внутреннего представления любой информации в машине является код EBCDIC, в котором каждому символу соответствует 8-разрядное двоичное число. Команда DS может быть использована для резервирования областей памяти, содержащих произвольное число байтов, команда DC — для определения символьных констант. В следующей таблице приведено описание всех команд, рассмотренных в данном разделе
MVC |
D1(L1,B1),D2(B2) |
MoVe Character |
D1 + (B1) |
MVI |
D1(B1),I2 |
MoVe Immediate |
D1 + (B1) |
IC |
R1,D2(X2,B2) |
Insert Character |
R124-31 |
STC |
R1,D2(X2,B2) |
STore Character |
(Rl)24-31 |
CLC |
D1(L1,B1),D2(B2) |
Compare Logical Character |
Сравнение (D1+(B1))L1 с (D2 + (В2))l1и установка CC |
CLI |
D1(B1),I2 |
Compare Logical Immediate |
Сравнение (D1 + (Bl))c c I2 и установка СС |
RCD (спец. макро) |
D2(X2,B2) |
Read CarD |
60-байтовый образ карты |
PLN (спец. макро) |
D2(X2,B2) |
Print LiNe |
(D2 + (Х2) + (В2))1зз
|