Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lectures / 06-07

.pdf
Скачиваний:
45
Добавлен:
16.04.2013
Размер:
229.74 Кб
Скачать

Организация ЭВМ и систем

Тема 6-7

Введение в язык ассемблера

Трансляторы

Трансляторы

Компиляторы Интерпретаторы

Компиляторы с Ассемблеры языков высокого

уровня

Ассемблеры для МП Intel

A86

Intel

TASM

Borland

MASM

Microsoft

NASM

Netwide

http://sourceforge.net/projects/nasm/

http://www.cryogen.com/nasm/

$

[]

?

Специальные символы

смещение текущей команды (счетчик адресов)

косвенная адресация

неопределенное значение, либо символ в именах

( ) – ограничение выражения или его части

&– символ продолжения строки

Зарезервированные слова ассемблера

имена регистров

мнемокоды команд

директивы

прочие элементы языка

AX, AH, ..., BP, SP

ADD, MOV,

...,XOR

ASSUME,

SEGMENT,

..., END

BYTE, PTR, DUP,STACK,...

Операторы и директивы

Формат оператора

[метка:][префикс]команда[операнды][;комм]

Формат директивы (псевдокоманды)

[имя] директива [ операнды] [;коммент]

Примеры:

 

COUNT DB 1

; директива, COUNT — имя

M1:

MOV AX ,0 ; команда, М1 — метка

REP

CMSB

; команда с префиксом REP

Директивы типа процессора

.8086

.286P

.486P

.8087 .386 .586

.186

.387

.586P

.286 .386P

.287 .486

Структура программы

Имя 1

Сегмент стека

Конец сегмента

Имя 2

Сегмент данных

Конец сегмента

Имя 3 Стартовая метка:

Сегмент кода

Конец сегмента Конец программы

Логические

сегменты

Шаблон программы

SSEG SEGMENT STACK 'STACK'

..... .... .... ....

SSEG ENDS

DSEG SEGMENT

..... .... .... ....

DSEG ENDS

CSEG SEGMENT

ASSUME SS:SSEG,DS:DSEG,CS:CSEG START: .....

..... .... .... ....

CSEG ENDS END START

Директива SEGMENT

имя SEGMENT [выравнивание] [комбинирование] [класс]

[размер]

... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

имя ENDS

Пример:

SSEG SEGMENT PARA STACK ‘STACK’ USE32

Имя

Директива

Операнды

Соседние файлы в папке Lectures