Главная » Просмотр файлов » assembler. Учебник для вузов_Юров В.И_2003 -637с

assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 27

Файл №862834 assembler. Учебник для вузов_Юров В.И_2003 -637с (Юров В.И - Assembler. Учебник для вузов. 2003) 27 страницаassembler. Учебник для вузов_Юров В.И_2003 -637с (862834) страница 272021-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 27)

Синтаксис ассемблераIII Директивы описания простых типов данных позволяют резервировать и принеобходимости инициализировать области памяти заданной длины.Ш Доступ к данным в памяти должен производиться с учетом принципа их размещения процессорами IA-32 — «младший байт по младшему адресу».ss Каждой переменной, объявленной с помощью директивы описания данных,ассемблер назначает атрибуты, доступ к которым можно получить с помощьюсоответствующих операторов ассемблера.Глава 6Первая программаЖизненный цикл программы на ассемблереПример простой программыРазработка программ на ассемблере с использованиемпакета TASMРазработка программ на ассемблере с использованиемпакета MASMТрансляция и компоновка программыНазначение и структура выходных файлов, формируемыхтрансляторомОтладка программМенеджер проекта — утилита МАКЕВ этой главе мы, во-первых, познакомимся с процессом разработки программ наассемблере, во-вторых, научимся использовать специальные программные средства, предназначенные для преобразования исходных текстов на ассемблере в машинные коды для их исполнения компьютером.Жизненный цикл программыПроцесс разработки программы на ассемблере, включая постановку задачи, получение первых результатов и дальнейшее сопровождение программы, мало чем отличается от традиционного подхода с использованием любого из существующихязыков программирования.

После адаптации основных положений этого процесса к особенностям ассемблера получится вполне стандартный перечень работ.1221.2.Глава 6. Первая программаПостановка и формулировка задачи:П изучение предметной области и сбор материала в проблемно-ориентированном контексте;П определение назначения программы, выработка требований к ней и представление требований, если возможно, в формализованном виде;П формулирование требований к представлению исходных данных и выходных результатов;D определение структур входных и выходных данных;П формирование ограничений и допущений на исходные и выходные данные.Этап проектирования:П формирование «ассемблерной» модели задачи;П выбор метода реализации задачи;П разработка алгоритма реализации задачи;D разработка структуры программы в соответствии с выбранной моделью памяти.3.

Этап кодирования:П уточнение структуры входных и выходных данных и определение ассемблерного формата их представления;П программирование задачи;D комментирование текста и составление предварительного описания программы.4. Этап отладки и тестирования:D составление тестов для проверки работоспособности программы;П обнаружение, локализация и устранение в программе ошибок, выявленныхв тестах;П корректировка кода программы и ее описания.5. Этап эксплуатации и сопровождения:а настройка программы на конкретные условия использования;П обучение пользователей работе с программой;П организация сбора сведений о сбоях в работе программы, ошибках в выходных данных, пожеланиях по улучшению интерфейса и удобства работыс программой;П модификация программы с целью устранения выявленных ошибок и, принеобходимости, изменения ее функциональных возможностей.Порядок и объем работ в приведенном перечне укладываются в понятие жизненного цикла программы на ассемблере.

На практике к порядку применения и иолноте выполнения перечисленных этапов нужно подходить разумно и творчески.Многое определяется особенностями конкретной задачи, ее назначением, объемами кода и обрабатываемых данных, другими характеристиками исходной задачи.Некоторые из этих этапов могут либо выполняться одновременно с другими, либоПример простой программы123вовсе отсутствовать. Главная цель формирования подобного списка работ — в том,чтобы изначально упорядочить процесс создания нового программного продуктас сохранением концептуальной целостности постановки задачи и исключениеманархии в процессе разработки.Пример простой программыВ данном разделе рассмотрим пример простой, но полноценной программы на ассемблере.

В главе 2 при обсуждении архитектуры было перечислено большое количество регистров. Как правило, большинство из них задействовано практическив любой программе. Было бы интересно во время работы программы посмотреть(получить) их содержимое. Это нетрудно, если использовать специальную программу — отладчик. Но как сделать это динамически и автономно (без помощидругих программ)? Или, к примеру, как решить обратную задачу — ввести некоторое значение с клавиатуры в регистр? Эта и подобная ей задачи являются задачами преобразования данных. Они довольно часто возникают на практике. Причиназдесь в том, что компьютер воспринимает данные только тех типов, которые поддерживаются его системой команд. Поэтому на практике часто возникает необходимость преобразования данных из одного представления в другое.

В этой главев качестве примера рассмотрим частный случай решения одной из таких задач —задачи преобразования шестнадцатеричного числа из двух цифр, вводимого с клавиатуры (то есть в символьном виде), в двоичное число. После выполнения этойоперации полученное число можно использовать как операнд в двоичных арифметических операциях.Для начала нужно продумать алгоритм и изучить предметную область. Вводинформации с клавиатуры и вывод ее на экран осуществляются в символьном виде.Кодирование этой информации производится согласно таблице ASCII. В таблицеASCII каждый символ кодируется одним байтом. Если работа происходит с числами, то при попытке их обработать сразу возникает проблема: команд для арифметической обработки чисел в символьном виде нет. Что делать? Выход очевиден:нужно преобразовать символьную информацию в формат, поддерживаемый машинными командами.

После такого преобразования нужно выполнить необходимые вычисления и преобразовать результат обратно в символьный вид. Затем следует отобразить информацию на мониторе.Рассматриваемая в этом разделе программа является одним из вариантов решения задачи. В основу ее алгоритма положена особенность, связанная с ACSIIкодами символов соответствующих шестнадцатеричных цифр.

Шестнадцатеричные цифры формируются из символов 0,1,..., 9, А, В, С, D, E, F, а, Ь, с, d, e, f, например:12Af, 34ad. В таблице ASCII можно найти значения ASCII-кодов, соответствующие этим символам. На первый взгляд, непонятна популярность способа представления информации в виде шестнадцатеричных чисел.

Из предыдущих глав известно, что аппаратура компьютера построена на логических микросхемах и работаеттолько с двоичной информацией. Если нам требуется проанализировать, например,состояние некоторой области памяти, то разобраться в нагромождении нулей и единиц будет очень непросто. Для примера рассмотрим двоичную последовательность010100010101011110101101110101010101000101001010.124Глава 6. Первая программаЭто представление не очень наглядно.

В главе 2 отмечалось, что оперативнаяпамять состоит из ячеек — байтов — по 8 битов. Приведенная выше цепочка битовпри разбиении ее на байты будет выглядеть так:01010001 01010111 10101101 11010101 01010001 01001010.С наглядностью стало лучше, но если исследуемая область памяти окажетсябольше, то разобраться будет все равно сложно. Проведем еще одну операцию: каждый байт разобьем на две части по 4 бита — тетрады:0101 0001 0101 0111 1010 1101 1101 0101 0101 0001 0100 1010.И вот тут проявляется замечательное свойство шестнадцатеричных чисел —каждой тетраде можно поставить в соответствие одну шестнадцатеричную цифру(табл. 6.1).Таблица 6.1. Кодировка шестнадцатеричных цифрШестнадцатеричнаяцифра0123456789А, аВ.ЬС, сD,dЕ,еF,fASCII-код(двоичное представление)ЗОЬ(ООНОООО)31h (ООН 0001)32h (001 10010)33h (001 10011)34h (001 10100)35h (001 10101)36h(00110110)37h (ООН 0111)38h (001 11000)39h(0011 1001)41h (0100 0001), 61h (01 10 0001)42h (0100 0010), 62h (0110 0010)43h (0100 001 1), 63h (01 10 001 1)44h (0100 0100), 64h (0110 0100)45h (0100 0101), 65h (0100 0101)46h (0100 0110), 66h (0110 0110)Двоичнаятетрада000000010010ООП01000101оно011110001001101010111100110111101111Если заменить в последней полученной строке тетрады соответствующимишестнадцатеричными цифрами, то получим последовательность 51 57 ad d5 51 8а.Каждый байт теперь наглядно представлен двумя шестнадцатеричными цифрами, что оказывается очень удобным, в частности, при работе с отладчиком.Вернемся к нашей задаче.

Если посмотреть внимательно на представлениешестнадцатеричных цифр и их кодировку в ACSII-коде (табл. 6.1), то можно увидеть полезные закономерности. К примеру, ASCII-код нуля (код символа 0) в шестнадцатеричном виде равен 30h. В двоичном представлении 30h записывается какПример простой программы1250011 0000, а соответствующее двоичное число должно быть двоичным представлением нуля 0000 0000. Отсюда следуют некоторые выводы.Вывод первый.

Для шестнадцатеричных цифр 0...9 ACSII-код отличается от соответствующего двоичного представления на 0011 0000, или 30h. Поэтому для преобразования кода символа шестнадцатеричной цифры в соответствующее двоичное число есть два пути:ii выполнить двоичное вычитание: (АСЗП-код)п - ЗОН;Ж обнулить старшую тетраду байта, с символом шестнадцатеричной цифрыв ACSII-коде.Видно, что с шестнадцатеричными цифрами в диапазоне от 0 до 9 все просто.Что касается шестнадцатеричных цифр а, Ь, с, d, e, f, то здесь ситуация несколькосложнее. Алгоритм должен распознавать эти символы и производить дополнительные действия при их преобразовании в соответствующее двоичное число.

Внимательный взгляд на символы шестнадцатеричных цифр и соответствующие имдвоичные представления (см. табл. 6.1) говорит о том, для преобразования уже недостаточно простого вычитания или обнуления старшей тетрады. Анализ таблицыASCII показывает, что символы прописных букв шестнадцатеричных цифр отличаются от своего двоичного эквивалента на величину 37h. Соответствующие строчные буквы шестнадцатеричных цифр отличаются от своего двоичного эквивалента на 67h.; Отсюда следует вывод второй. Алгоритм преобразования должен различатьПрописные и строчные буквенные символы шестнадцатеричных цифр и корректировать значение ASCII-кода на величину 37h или 67h.Обратите внимание на то, что после записи значения шестнадцатеричной цифры следует символ «h». Как упоминалось в главе 4, это сделано для того, чтобытранслятор мог различить в программе одинаковые по форме записи десятичныеи шестнадцатеричные числа.В листинге 6.1 приведен исходный текст программы, которая решает задачупреобразования двузначного шестнадцатеричного числа в символьном виде в двоичное представление.Листинг 6.1.

Характеристики

Тип файла
PDF-файл
Размер
14,34 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее