Мегаобучалка Главная | О нас | Обратная связь


Wlink file main.obj form dos



2016-09-16 453 Обсуждений (0)
Wlink file main.obj form dos 0.00 из 5.00 0 оценок




Для компиляции и компоновки можно также воспользоваться следующим пакетным файлом DOS/Windows (compile.bat):

@echo off

Cls

c:\watcom\binw\wasm main.asm

If errorlevel 1 goto ERROR

c:\watcom\binw\wlink file main.obj form dos

If errorlevel 1 goto ERROR

Exit

:ERROR

echo ERROR!

Кроме того, необходимо убедиться, что в файле c:\autoexec.bat присутствуют следующие команды:

SET PATH=C:\WATCOM\BINNT;C:\WATCOM\BINW;%PATH%

SET WATCOM=C:\WATCOM

SET EDPATH=C:\WATCOM\EDDAT

SET INCLUDE=C:\WATCOM\H;C:\WATCOM\H\NT

SET FINCLUDE=C:\WATCOM\SRC\FORTRAN

Если это не так, то эти команды следует включить в вышеприведенный файл compile.bat. (Это необходимо для нормальной работы OpenWatcom.)

Отладка

Отладчик запускается командой

Wd main.exe

Можно также воспользоваться таким командным файлом (debug.bat):

@echo off

Cls

if not exist main.exe echo main.exe не существует!

If not exist main.exe goto EXIT

c:\watcom\binw\wd main.exe

:EXIT

The Open Watcom Debugger является полноэкранным визуальным отладчиком, позволяющим одновременно наблюдать исходный текст программы, ее машинный код, содержимое регистров, ячеек памяти и стека.

Пошаговое выполнение программы осуществляется с помощью клавиш F8 (с заходом в процедуры) и F10 (без захода в процедуры).

Ниже кратко описаны три постоянно развивающихся и совершенствующихся

многоплатформенных компилятора использующих оригинальный синтаксис языка ассемблера.

Компилятор Netwide Assembler

Компактный и многоплатформный (DOS, Windows, Unix) компилятор базирующийся на синтаксисе Intel. Часто используется в Unix на x86-32 вместо "родного" GNU Assembler.

Домашняя страничка в Internet - http://nasm.sourceforge.net/.

В его состав входят:

• nasm - компилятор, способный генерировать исполняемые модули в формате COM (старый формат DOS) и объектные модули для компоновщика GNU ld.

• ndisasm - дизассемблер.

Кроме того, существует простая среда разработки для NASM - NASM-IDE

(http://www.inglenook.co.uk/rob)

Компилятор Flat Assembler

Простой и многоплатформный (DOS, Windows и Unix) компилятор с оригинальным синтаксисом базирующимся на синтаксисе Intel. Домашняя страничка - http://www.flatassembler.net/.

2.5 Компилятор GNU Assembler и синтаксис AT&T

Основной компилятор ассемблера для Unix-подобных операционных систем GNU, Linux, FreeBSD, NetBSD и OpenBSD. Разработан в рамках проекта GNU (http://www.gnu.org/).

Пакет Microsoft Macro Assembler

Пакет Microsoft Macro Assembler (MASM) удобное средство для создания программ на языке ассемблера для реального и защищённого режимов процессоров семейства x86.

Основные инструментальные средства, входящие в состав пакета

• pwb - интегрированная среда, включающая в себя редактор текстов программ и позволяющая компилировать модули и запускать программы не выходя из неё;

• cv - интегрированная среда предназначенная для отладки и дизассемблирования программ;

• masm - компилятор с языка Ассемблера;

• link - компоновщик объектных модулей в исполняемую программу;

• ml - компилятор и компоновщик в одном лице.

Замечание. Компилятор masm рекомендуется запускать с ключом /Zi, а компоновщик - с ключом /Co; при этом в объектные модули будет записана отладочная информация. Аналогичные опции рекомендуется установить и в среде pwb.

См. также приложение Создание первого проекта в Microsoft Macro Assembler.

Пакет Turbo Assembler

Пакет Turbo Assembler (TASM) фирмы Borland не имеет единой интегрированной среды, но по популярности не уступает пакету MASM.

Основные инструментальные средства, входящие в состав пакета

• tasm - компилятор с языка Ассемблера;

• tlink - компоновщик объектных модулей в исполняемую программу;

• td - интегрированная среда предназначенная для отладки и дизассемблирования программ.

См. также приложение Использование пакета Turbo Assembler.

Задание

1.Ознакомиться с пакетом OpenWatcom и с пакетом Turbo Assembler (TASM), воспользовавшись следущей программой:

Assume CS:CodeSg, DS:DataSg, SS:StackSg

CodeSg segment 'CODE'

Begin: mov AX, DataSg

mov DS, AX;

Mov AH, 09h

Mov DX, offset message

int 21h;

Mov AX, 4C00h

int 21h;

CodeSg ends;------------------------------------

DataSg segment 'DATA';

message db 'Hello World!', '$';

DataSg ends;------------------------------------

StackSg segment stack 'STACK'

Db 256 dup(0)

StackSg ends;------------------------------------

end begin__

2. Произвести компиляцию и компановку данной программы, с использованием обоих пакетов

3. Произвести отладку программы.

 

Лабораторная работа №2

Структура программы на языке ассемблера. Регистры.

Режимы адресации.

Цель работы

Основные характеристики, области применения ЭВМ различных классов. Изучение устройства компьютера: 2-чная и 16-ричная арифметика.

Регистры процессора.

Базовые знания, необходимые для выполнения данной работы

• Двоичная система счисления.

• Шестнадцатиричный код.

• Понятие регистра, его виды и предназначение.

• Типичная структура и схема микропроцессора.

Теоретические основы

Регистры

Процессоры, программно совместимые с Intel 8086-80286, имеют 14 регистров, используемых для управления выполняющейся программой, для адресации памяти и для обеспечения арифметических вычислений. Каждый регистр имеет длину 16 бит (одно слово) и адресуется по имени. Биты регистра принято нумеровать слева направо:

 

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

 

Процессоры семейства x86-32 (32-х разрядные программно совместимые с процессором Intel i386) расширяют большинство основных регистров до 32-х разрядов, оставаясь при этом программно совместимыми снизу-вверх с прежними 16-ти разрядными процессорами. Поэтому будемобозначать все семейство процессоров начиная с 8086 и заканчивая Pentium 4 и AMD Athlon как семейство x86.

Регистры процессоров семейства x86 можно поделить по назначению на следующие категории:

• сегментные регистры;

• регистры общего назначения;

• регистры-указатели;

• индексные регистры;

• регистр командного указателя;

• регистр флагов.

Сегментные регистры

Каждый сегментный регистр имеет 16-ть разрядов и обеспечивает адресацию непрерывного участка памяти объемом 64 Кбайт, который называется сегментом. Сегменты выравниваются на границу параграфа (16 байт) и таким образом адрес сегмента предполагает наличие справа четырех нулевых битов (xxxx xxxx 0000). Это позволяет иметь максимально адресуемое пространство памяти 1 Мб (2 в степени 20). Сегменты могут пересекаться и использоваться для хранения кода, данных и под стек. Процессор Intel 8086 имел сегментные регистры CS, DS, SS и ES. Начиная с процессора Intel 80286 стали доступны также два дополнительных: FS и GS. Ниже описано назначение каждого сегментного регистра.

Регистр CS. Регистр сегмента кода CS содержит начальный адрес сегмента кода. Этот адрес плюс значение смещения в командном указателе IP определяет адрес команды, которая должна быть выбрана для выполнения. Для многих программ нет необходимости делать ссылки на регистр CS.

Регистр DS. Регистр сегмента данных DS содержит начальный адрес сегмента данных. Этот адрес плюс смещение, определенное в команде, указывают на конкретную ячейку в сегменте данных.

Регистр SS. Регистр сегмента стека SS содержит начальный адрес сегмента стека.

Регистр ES. Некоторые операции над строками используют дополнительные сегментный регистр ES для управления адресацией памяти. В данном контексте этот регистр связан с индексным регистром DI. Если необходимо использовать регистр ES, ассемблерная программа должна его инициализировать.

Регистры FS и GS. Позволяют иметь до 4-х одновременно доступных сегментов данных (включая адресуемые через DS и ES).



2016-09-16 453 Обсуждений (0)
Wlink file main.obj form dos 0.00 из 5.00 0 оценок









Обсуждение в статье: Wlink file main.obj form dos

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (453)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)