МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ
ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ
Отчет
по лабораторной работе № 8
по курсу «Системное программирование»
Вариант №7
Выполнил: Проверил:
ст. гр. КИ-06-7 Корниенко Т.В.
Парченко П. В.
Харьков 2008
ОСНОВЫ ЯЗЫКА АССЕМБЛЕР
Цель работы
Ознакомление с основами построения ассемблерных программ, программной моделью и регистрами процессора, получение практических навыков по использованию ассемблерных команд для управления регистрами и флагами процессора
Задание
На языке Ассемблер написать функцию формирования строки символов, соответствующей двоичному представлению 32-х разрядного числа. Используя эту функцию, вывести на экран состояние сегментных регистров и регистра флагов. Объяснить содержимое сегментных регистров и содержимое регистра флагов.
Описание алгоритма решения поставленной задачи
Для решения поставленной задачи нам необходима функция, которая сможет по заданному числу вывести строку, состоящую из разрядов данного числа, для удобства она должна также выводить число в десятичной форме, и выводить то, к чему относится данное число. Для формирования строки мы занесли в esi указатель на формируемую строку, в ecx количество разрядов – 32, потом в теле цикла мы сдвигаем полученнок число на 1 разряд влево, при этом флаг CF принимает значение самого левого разряда до сдвига. Функция adc заносит в eax с учетом CF либо 48 – код «0», либо 49 – код «1». Полученное число мы заносим по указателю ecx, и увеличиваем этот указатель на 1. Функция loop если значение ecx>0 уменьшает его на 1, и переходит на указанную метку – начало цикла, иначе передает управление дальше, где мы в конец полученной строки добавлем завершающий символ «\0».
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.