Вход в систему

Лекции по курсу "Проектирование ассемблеров, компоновщиков, макропроцессоров"

14. Пример работы двухпросмотрового ассемблера

 

Рассмотрим работу двухпросмотрового ассемблера на примере следующей программы.


Исходный текст Адрес ОП Машинный код
1 dseg segment 0000  
2 N dw 5 0000 0005
3 array dw 3,5,7,9,11 0002 0003 0005 0007 0009 000B
4 dseg ends 000C  
5 cseg segment 0000  
6 assume cs:cseg, ds:dseg    
7 mov ax,dseg 0000 B8 0000s
8 mov ds,ax 0003 8E D8
9 mov cx,N 0005 8B 0E 0000r
10 mov bx,0 0009 BB 0000
11 mov di,bx 000C 8B FB
12 mov si,bx 000E 8B F3
13 again: cmp arr[bx],0 0010 83 BF 0002r 00
14 jbe less 0015 76 03
15 inc di 0017 47
16 jmp next 0018 EB 03
17 less: jl next 001A 7C 01
18 inc si 001C 46
19 next: add bx,2 001D 83 C3 02
20 cseg ends 0020  
21 end    


На этапе трансляции создаются следующие БД.

Таблица имен:

Symbol name Type Value
Segm Offset
again near cseg 0010
array word dseg 0002
less near cseg 001A
N word dseg 0000
next near cseg 001D



Таблица сегментов:

Group&Segments Bit Size Align Combine class
dseg 16 000C Para none
cseg 16 0020 Para none

 

Обобщим использование информации на этапе компиляции в следующей схеме.

Алгоритм трансляции можно представить в виде блок-схемы, приведенной ниже.

Введение
Причины использования языка ассемблер
Причины неиспользования языка ассемблер
Синтаксис ассемблера
Системное программное обеспечение и структура ЭВМ
Программная модель процессора Intel 8086
Организация работы памяти
Операнды
Адресация операндов
Формат машинных команд
Команды переходов
Типы ассемблеров. Функции ассемблера
Ассемблер по схеме 1А / ОП
Ассемблер по схеме 1А / МД
Двухпросмотровый ассемблер
Многопросмотровый ассемблер
Загрузчик
Структура объектных файлов. Основные понятия
Идентификация модуля и атрибуты
Концепция привязки
Объектный файл. Последовательность записей
Объектный файл. Формат записей
Формат записей THEADR и LHEADR
Формат записи LNAMES
Формат записи SEGDEF
Формат записи GRPDEF
Формат записи PUBDEF
Формат записи COMDEF
Формат записи LOCSYM
Формат записи EXTDEF
Формат записи LINNUM
Формат записи LEDATA
Формат записи LIDATA
Формат записи FIXUPP
Формат записи MODEND
Формат записи комментариев


исполнялось 0,104987 c, запросов к базе 6