Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler_konspekt_1.doc
Скачиваний:
16
Добавлен:
10.11.2019
Размер:
274.94 Кб
Скачать
  1. Двоично-десятичные числа (bcd)

Существуют классы задач, для которых характерен ввод и выводом больших массивов числовых данных с последующим применением небольшого числа арифметических операций. Для этого случая используется двоично-десятичное представление чисел (BCD – Binary Coded Decimal), которое образуется следующим образом:

  • каждая десятичная цифра представляется двоичной тетрадой, т.е. используются цифры от 0 до 9, а цифры от A до F - не используются.

Имеется 2 разновидности BCD-формата:

а) неупакованный формат – в каждом байте в младшей тетраде размещается код десятичной цифры, а значение старшей тетрады байта игнорируется. Этот формат используется при вводе и выводе чисел, и содержимое старшей тетрады определяется в соответствии с ASCI I.

Например, для положительного числа получим код

9806  хххх1001хххх1000хххх0000хххх0110 (4 Б);

б) упакованный формат – в каждом байте хранятся две цифры.

Например, для того же числа получим код

9806  1001100000000110 (2 Б).

Отрицательные числа в BCD представляются в дополнительном коде. Алгоритм формирования дополнительного кода описан выше, но для BCD формата имеет вид:

- все цифры, кроме младшей заменяются инверсией, т.е. (9 – {цифра});

- последняя (младшая) цифра заменяется дополнением, т.е. (10 – {цифра});

- правые нулевые разряды не изменяются, и младшим разрядом считается самый правый ненулевой разряд.

Знак хранится и обрабатывается в отдельном байте, который заполнен нулями, кроме старшего бита, который для отрицательного числа устанавливается в 1.

Например, для числа 561 в упакованном формате получим

561  00000101 01100001 (2 Б)

для отрицательного числа

[-567]доп =

10000000

1001 0100

0011 1001

знак

9 4

3 9

В памяти числа хранятся в польской инверсной записи.

  1. Символьные данные

Символьные данные хранятся в памяти ПЭВМ в двоично-кодированном виде, причем каждый символ кодируется одним байтом, что позволяет закодировать 256 различных символов.

Используется система кодирования ASCI I (American Standard Code for Information Interchange) – американский стандартный код для информационного обмена.

Основные особенности кодировки ASCI I:

  • код пробела меньше кода любого графически представляемого символа и не является нулевым байтом;

  • коды цифр упорядочены по возрастанию и идут без пропусков

код(i) = код(‘0’)+i,

где i - цифра от 1-9,

код(‘0’) <> нулю (т.е. не нулевой байт);

  • коды заглавных латинских букв упорядочены по алфавиту без пропусков;

  • то же верно для малых латинских букв;

Для кодирования кириллицы используются несколько альтернативных кодировок.

Например, в кодировке CP1251, широко используемой в системах Microsoft Windows коды букв кириллицы (заглавных и строчных) также упорядочены по алфавиту.

Строки символов, т.е. их последовательности размещаются в оперативной памяти в естественном порядке, начиная с определенного адреса.

Например: строка ‘Ав_с»’ будет представлена в памяти по адресу x последовательностью байтов

x

x+1

x+2

x+3

код(‘A’)

код(‘в’)

код(‘_’)

код(‘с’)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]