Среда, 19.12.2018, 00:53
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1184
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

первая программа написанная на языке Assembler

Итак, переходим к нашей первой программе:


 (01) CSEG segment
(02) org 100h
(03)
(04) Begin:
(05)
(06)    mov ah,9
(07)    mov dx,offset Message
(08)    int 21h
(09)
(10)    int 20h
(11)
(12) Message db 'Hello, world!$'

(13) CSEG ends
(14) end Begin

Еще раз подчеркну: номера строк в скобках ставить НЕ нужно! Прежде, чем пытаться ассемблировать, прочтите данную главу до конца!

Для того, чтобы объяснить все операторы данного примера, нам потребуется несколько глав. Поэтому описание некоторых команд мы просто опустим на данном этапе. Просто считайте, что так должно быть. В самое ближайшее время мы рассмотрим эти операторы подробно. Итак, строки с номерами (01), (02) и (13) Вы просто игнорируете.
Строки (03), (05), (09) и (11) остаются пустыми. Это делается для наглядности. Ассемблер их будет просто опускать.

Теперь перейдем к рассмотрению остальных операторов. Со строки
(04) Begin:
начинается код программы. Это метка, указывающая Ассемблеру на начало кода. В строке
(14) end Begin
стоят операторы end Begin (Begin - от англ. - начало; end -конец). Это конец программы. Вообще вместо слова Begin можно было бы использовать что-нибудь другое. Например, Start:. В таком случае, нам пришлось бы и завершать программу (14) End Start.

Строки (06) - (08)

  (06)    mov ah,9
(07)    mov dx,offset Message

(08)    int 21h

выводят на экран сообщение «Hello, world!». Здесь придется вкратце рассказать о регистрах процессора (более подробно эту тему мы рассмотрим в последующих главах).

Регистр процессора - это специально отведенная память для хранения какого-нибудь числа.

Например:
Если мы хотим сложить два числа, то в математике запишем так:

A=5
B=8
C=A+B

A, B и C - это своего рода регистры (если говорить о компьютере), в которых могут хранится некоторые данные. А=5 можно прочитать как: «Присваиваем А число 5».

Для присвоения регистру какого-нибудь значения, в Ассемблере существует оператор mov (от англ. move - в данном случае - загрузить). Строку (06) следует читать так: «Загружаем в регистр AH число 9» (проще говоря, присваиваем AH число 9). Ниже рассмотрим зачем это надо.

В строке (07) загружаем в регистр DX адрес сообщения для вывода (в данном примере это будет строка «Hello, world!$»). Далее, в строке (08), вызываем прерывание MS-DOS, которое и выведет нашу строку на экран.

Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---