Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ассемблер.doc
Скачиваний:
24
Добавлен:
25.08.2019
Размер:
526.34 Кб
Скачать

2.8. Нумерация бит

Иногда нам будет требоваться идентифицировать отдельные биты в байте или слове. Для этого мы называем номер бита. Индекс или номер каждого бита - это степень двойки, соответствующая позиции этого бита. Самый младший бит - нулевой, поскольку он представляет два в нулевой степени. Самый старший бит в байте - седьмой - 2**7. Самый старший бит в слове - 15-й. Фиг. 2.12 показывает 16-битовое слово с пронумерованными битами.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Фиг. 2.12 Нумерация бит

Такой способ нумерации бит принят во всей документации IBM PC.

2.9. Набор символов

Как мы заметили выше, мы можем рассматривать каждый байт информации не как двоичное число, а как символьное значение. Каждое из двоичных чисел от 0 до 255 может представлять определенный символ. Фиг. 2.13 показывает множество символов IBM PC. Колонки здесь соответствуют старшим 4 битам символьного кода, а ряды - младшим 4 битам этого кода. Так, позиция таблицы 41Н соответствует символу "A", а код 5ЕН представляет символ "^".

...

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

20

 

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

30

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

40

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

50

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

60

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

70

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

 

Фиг. 2.13 Набор символов IBM

Набор символов IBM PC является расширением набора символов ASCII (Американский стандартный код для обмена информацией). В наборе ASCII значения символов от 20Н до 7ЕН представляют обычные символы латинского алфавита, числовые символы и знаки препинания. Коды от 0Н до 1FH обычно служат управляюшими символами. На Фиг. 2.14 показаны управляющие символы ASCII из этого диапазона. Эти символы имеют значение при передаче на принтеры IBM или другие ASCII-принтеры. Однако на Фиг. 2.13 видно, что эти управляющие символы могут также появляться на экране в виде графических символов. В IBM PC управляющая часть таблицы ASCII используется для графических изображений, с целью более полно реализовать возможности видеоадапторов. Поскольку видеоадапторы могут изобразить любой из 256 кодов, то нет оснований строго регламентировать применение какого-либо из кодов. Разработчики рассматривали все 32 символа из управляющей части таблицы как предназначенные главным образом для графического изображения и обычно не печатаемые принтером. Короче говоря, первые 32 значения являются управляющими кодами при передаче их на принтер, но изображаются как графические символы при выводе их на дисплей.

Символьные значения от 80Н до 0FFH являются расширением набора символов ASCII для IBM PC. Эти символы подобраны разработчиками IBM так, чтобы расширить изобразительные возможности компьютера. Наборы иностранных, графических и научных символов позволяют использовать IBM PC в самых разнообразных приложениях.

Код

Символ

Значение

00

NUL

Пусто

07

BEL

Сигнал

09

HT

Горизонтальная табуляция

0A

LF

Перевод строки

0B

VT

Вертикальная табуляция

0C

FF

Прогон страницы

0D

CR

Возврат каретки

0E

SO

Шаг назад

0F

SI

Шаг вперед

11

DC1

Управление 1

12

DC2

Управление 2

13

DC3

Управление 3

14

DC4

Управление 4

18

CAN

Отмена

1B

ESC

Выход

Фиг. 2.14 Управляющие коды IBM

В некоторых случаях вы захотите вводить символьные коды в память для их дальнейшего использования программой. Примером может служить сообщение, которое в определенный момент выполнения программы должно быть выдано оператору. Вместо потска кодов символов в таблице, мы можем сразу ввести строку символов в текст программы. Ассемблер позволяет это сделать с помощю оператора DB.

Microsoft (R) Macro Assembler Version 5.00 10/31/88 22:30:38

Фиг. 2.15 Определение байтов для текста ASCII            Page 1-1

1   PAGE ,132

2   TITLE Фиг. 2.15 Определение байтов для текста ASCII

3

4 0000 9D E2 AE 20 E1 AE AE  DB 'Это сообщение',10,13

5 A1 E9 A5 AD A8 A5 0A

6 0D

7

8    END

Фиг. 2.15 Определение байтов для текста ASCII

В поле операндов мы вместо ввода чисел (кодов) помещаем заключенную в кавычки строку символов. Ассемблер подберет соответствующие значения кодов и поместит их в память - каждый символ в отдельный байт. Так ассемблер может работать только с символами в диапазоне от 20Н до 0FFH. в диапазоне от 0Н до 1FH символы должны вводиться в программу в виде чисел, а не ограниченной кавычками строки. Это связано с тем, что в тексте исходного файла некоторые управляющие символы используются для обозначения начала и конца строки.

Пример на Фиг. 2.15 показывает создание 15 байт данных в программе. Первые 13 байтов соответствуют 13-ти символам текстовой строки заключенной в кавычки. Первый байт имеет значение 9DH, второй 0E2H и т.д. Последние два байта в 17-ти байтном сообщении - это коды возврата каретки и переводаа строки. Если мы отправим это 17-байтное собщение на принтер, он напечатает заключенный в кавычки текст. Управляющие символы предписывают принтеру перейти после этого на следующую строку документа.

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