Cтраница 4
Символы языка АССЕМБЛЕР делятся на три группы: метка, мнемокод и идентификатор - символические обозначения адреса команды, кода операции и адресов операндов в виде набора символических команд-операторов, каждая из которых занимает одну строку. Строка состоит из метки ( поля метки), мнемокода ( поля операции) и поля операндов, разделенных пробелами. В строку могут включаться и пояснения ( после комментариев) для программиста. [46]
Символы языка АССЕМБЛЕР делятся на три группы: метка, мнемокод и идентификатор - символические обозначения адреса команды, кода операции и адресов операндов в виде набора символических команд-операторов, каждая из которых занимает одну строку. Строка состоит из метки ( поля метки), мнемокода ( поля операции) и поля операндов, разделенных пробелами. В строку могут включаться и поясаения ( после комментариев) для программиста. [47]
Десятичные операнды и результаты представляются в шест-надцатеричном коде по две цифры в каждом байте. Операнды имеют переменную длину, код знака размещается в четырех правых разрядах младшего байта. Поля операндов могут быть помещены в памяти, начиная с границы любого байта, и могут иметь длину до 31 - й цифры и знак. Упаковка цифр в байте ( рис. 1.6) и расположение в памяти полей переменной длины приводят к эффективному использованию памяти, уменьшению времени выполнения арифметических операций и к ускорению процесса обмена информацией между памятью и внешними устройствами. [48]
При выполнении любой команды десятичной арифметики проверяется, действительно ли поля операндов содержат упакованные десятичные числа. Все полубайты поля операнда, кроме знакового, должны содержать шестнадцатеричные цифры от 0 до 9, а знаковый полубайт должен иметь значение от А до F. Если поля операндов содержат недопустимый код цифры или знака, выполнение команды прерывается, и программа, содержащая такую команду, не может продолжаться. [49]
В этом формате оба операнда находятся в памяти в упакованном формате, за исключением команд PACK и UNPK, в которых один из операндов находится в зонном формате. Символические адреса обоих операндов относятся к самым левым байтам переменных полей, в которых они находятся. Длины полей операндов d и / 2 в команде могут быть разными, но их значения должны находиться в пределах от 1 до 16 байтов. [50]
![]() |
Схема преобразования форматов данных в десятичной арифметике. [51] |
В этом формате оба операнда находятся в памяти в упакованном формате, за исключением команд PACK и UNPK, в которых один из операндов находится в зонном формате. Символические адреса обоих операндов относятся к самым левым байтам переменных полей, в которых они находятся. Длины полей операндов / I и 12 в команде могут быть разными, но их значения должны находиться в пределах от 1 до 16 байтов. [52]
Символы / / помещаются в первой и второй колонках перфокарты. Между ними и кодом оператора ( в нашем случае - кодом JOB или EXEC) оставляется один или несколько пробелов. Пробелом или несколькими пробелами отделяется также код оператора от поля операндов, а операнды, если они требуются, отделяются друг от друга запятыми. Появление в поле операндов пробела рассматривается как признак конца этого поля, и дальнейший текст игнорируется. [53]