Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература часть 2 по АЭВМ / Методические указания / Методичка (есть пара багов).doc
Скачиваний:
22
Добавлен:
28.03.2016
Размер:
351.23 Кб
Скачать

2.2. Темы практических работ

1. Представление данных в памяти ЭВМ, основы работы с ассемблером

2. Пересылка данных, адресация памяти, целочисленная арифметика

3. Условия и циклы

4. Процедуры в ассемблере

5. Обработка строк и массивов в ассемблере

6. Интерфейс ассемблера с языками высокого уровня

7. Представление вещественных чисел в памяти ЭВМ, работа с математическим сопроцессором

8. Самокорректирующиеся коды для хранения и передачи информации в вычислительных системах

3. Методические указания к практическим работам

В настоящее время наиболее распространены вычислительные машины с Intel-совместимыми процессорами, и для профессиональной деятельности выпускников в первую очередь требуется знание именно этой архитектуры. В связи с этим на практических работах рассматривается преимущественно архитектура IA-32.

Учитывая специфику специальности, 32-разрядная архитектура Intel рассматривается преимущественно с точки зрения программиста, при этом основное внимание уделено защищенному режиму работы процессора. Также одна из практических работ посвящена построению и использованию самокорректирующихся кодов [4], используемых в серверных модулях памяти, жестких и оптических дисках.

Хотя некоторые задания практикума выполняется без использования компьютеров, для большинства требуется персональный компьютер с процессором не ниже Pentium и 32-разрядной версией операционной системы Windows. В качестве языка программирования выбран masm версии 6 как один из наиболее распространённых ассемблеров в настоящее время, вместе с ним используются библиотеки пакета Microsoft Platform SDK.

Для проверки некоторых задач по программированию используется электронный практикум по программированию, расположенный по адресу http://atpp.vstu.edu.ru/cgi-bin/arh_problems.pl. Работа с данным практикумом уже знакома студентам 4-го курса, поэтому приведём лишь особенности отправки задач на языке ассемблера и для примера рассмотрим решение простой задачи о нахождении суммы двух целых чисел. Ниже приводится листинг программы, решающей эту задачу.

include masm32rt.inc

.data

in_fmt BYTE "%d %d", 0

out_fmt BYTE "%d", 0

var_a DWORD 1

var_b DWORD 1

.code

main PROC

invoke crt_scanf,ADDR in_fmt,ADDR var_a,ADDR var_b

mov eax, var_a

add eax, var_b

invoke crt_printf, ADDR out_fmt, eax

exit

main ENDP

end main

Обратите внимание на организацию ввода-вывода - здесь используются функции из библиотеки msvcrt.dll, которая в операционной системе Windows по умолчанию уже загружена в память. Для доступа к прототипам функций из неё подключается файл masm32rt.inc.

В компьютерных классах кафедры программное обеспечение для практических работ уже настроено требуемым образом (если нет, обратитесь к преподавателю). Для отладки программ на домашнем компьютере рекомендуем скачать готовый пакет разработчика masm32 с сайта wasm.ru (в разделе "Инструменты"), так как он уже содержит необходимые библиотеки и подключаемые файлы.

При решении задач не из электронного практикума удобно также использовать библиотеку функций с компакт-диска к книге Кипа Ирвина [2], для её использования нужно подключать файл Irvine32.inc. В частности, очень полезна функция DumpRegs, позволяющая вывести на экран значения всех регистров общего назначения и флаги. Данную библиотеку можно легко найти в сети Internet.