В ПК неткоманд, реализующих арифметические операции над вещественными числами.
Это связано с тем, что аппаратная реализация этих операций - вещь дорогая, а при созданииПК во главу угла всегда ставили дешевизну, поэтому, чтобы сократить стоимость ПК, в его систему команд и не включают команды вещественной арифметики.
Как же тогда работать на ПК с вещественными числами?
Возможны два решения данной проблемы.
Во-первых, на основе имеющихся командможно написать процедуры, реализующие арифметические операции над вещественными числами, и в те места программы, где требуется выполнить операции над вещественными числами, нужно вставить обращения к этим процедурам.
Во-вторых, к ПК можно присоединить специальное устройство - арифметический сопроцессор, который умеет выполнять арифметические операции над вещественными числами.
Центральный процессор взаимодействует с этим сопроцессором по следующему сценарию:
- когда надо выполнить вещественную операцию, центральный процессор посылает сигнал сопроцессору и передает ему соответствующие операнды(в ПК есть специальная команда для этого);
- сопроцессор выполняет указанную операцию, записывает результат в определенное место и возвращает управление центральному процессору, который после этого продолжает свою работу.
Рассказ про арифметические сопроцессоры - это большая самостоятельная тема, которой мы не будем касаться .
Поэтому в дальнейшем мы не будем рассматривать вещественные числа и связанные с ними команды ПК и средства языка ассемблера
(например, директивы DQиDT).
Как и любая другая информация, символьные данные должны храниться в памяти ЭВМ в двоичномвиде. Для этого каждому символу ставится в соответствие некоторое неотрицательное число, называемое кодомсимвола, и это число записывается в память ЭВМ в двоичном виде.
Конкретное соответствие между символами и их кодами называется системой кодировки.
В ЭВМ, как правило, используются 8-разрядные кодысимволов. Это позволяет закодировать 256различных символов, чего вполне достаточно для представления многих символов, используемых на практике.
Поэтому для кода символа достаточно выделить в памяти один байт.
Так и делают: каждый символ представляется своим кодом, который записывают в один байт памяти.
В ПК обычно используется система кодировки ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информации ).
Конечно, в ней не предусмотрены коды для букв русского алфавита, поэтому в нашей стране используются вариантыэтой системы кодировки, в которые включают буквы русского алфавита.
Чаще всего, пожалуй, используется вариант, известный под названием "Альтернативная кодировка ГОСТ".
Мы не будем приводить эти системы кодировки, а отметим лишь следующие их особенности, коме важно знать при работе с символьными данными.
- Код пробела меньше кода любой буквы и цифры и вообще меньше кода любого графически представимого символа.
- Коды цифр упорядочены по возрастанию и идут безпропусков.
Поэтому из неравенств
код ('0') <= код(с) <= код('9')
следует, что с - цифра, и поэтому справедливо равенство
код(i)=код('0')+i, где i -число от0 до 9.
Отметим также, что код('0') <> 0.
- Коды больших латинских букв упорядочены согласно алфавиту и также идут без пропусков.
Поэтому из неравенств
код('А') <= код(с) <= код('z')
следует, что с - большая латинская цифра, и поэтому код i-й по порядку (при нумерации с 0) буквы латинского алфавита равен сумме код('А')+1.
Все то же самое вернои для малыхлатинских букв. В альтернативной кодировке ГОСТ коды русских букв (больших и малых) упорядочены согласно алфавиту, но если коды больших букв идут без пропусков, то между кодами малыхбукв 'п'и 'р' вклиниваются коды иныхсимволов.
Что касается машинного представления строк, т. е. последовательностей символов, то под каждую строкуотводят нужное число соседних байтов памяти, в которые записывают коды символов, образующих строку.
Адрес первого из этих байтов считается адресом строки.
Отметим, что эта последовательность кодов записывается в ПК в нормальном, неперевернутом виде.