Главная » Просмотр файлов » Бройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006)

Бройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006) (1186249), страница 83

Файл №1186249 Бройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006) (Бройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006)) 83 страницаБройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006) (1186249) страница 832020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Выражение может быть: [3 константой: сопэ1 ОВ 56; сопз1 ОЧЧ 1936; сопз1 00 ЗЕРН. Обязательно следует учитывать диапазон и вместимость байта, слова и т. д.; так, для ОВ константа не может быть больше 255, для ОЧЧ вЂ” 65 535, для 00 — 65 535 — 1 - 4 294 967 295; 13 вектором или таблицей: 1аЫе1 ОВ 30, 4, -15, О, О, О, 56; 1аЫе2 ОЪЧ 1936, 3004, 56, 15. В одном псевдооператоре допускается поместить строку до 132 позиций, причем вместо повторения одного и того же значения несколько раз (О в 1аЫе1) можно использовать псевдооператор 00р (г[пр![саге — дублировать): 1аЫе1 ОВ 30, 4, -15, 3 оор(0), 56); 13 строкой символов: в1г1 ОВ 'Вы ввели слишком большое число", згг2 ОВ 'Ваб совгпапП", в псевдооператоре ОВ строка может содержать 255 символов, во всех остальных (ОЧЧ, 00, 00, ОТ) — только 2 символа.

13 пустым полем: ро1е1 ОВ?; ро!е2 ОЧЧ 12 Пор(?), при этом в элементы резервируемой памяти при загрузке программы ничего не записывается (заносится не О, как, например, в директиве ро1еЗ ОЧЧ 5 оир(0), а просто резервируются ячейки памяти); (з символическим именем переменной: чаг1 ОЧЧ Пер; чаг2 ОО чес1ог (одна переменная определяется адресом другой, в директивах указывать оПае1 не надо, поскольку имя переменной воспринимается как ее адрес). Такой вариант подходит, например, для хранения адресов ячеек памяти, меток, на которые допустимо ссылаться в программе (чаг1 ОЧЧ ОЧвр), причем, если переменная находится в том же сегменте, что и ссылающаяся команда, то достаточно в качестве адреса указать только смещение (2 байт), то есть обойтись ОЧЧ; если же Глава 18.

Элементы программирования на языке ассемблера переменная находится в другом сегменте, то необходимо указать и сегмент, и смещение (всего 4 байт), то есть следует использовать уже ОО (чаг2 ОО чес1ог); П простым выражением: 1п1 08 80*3; 1п2 Очч (П!зр) + 256, вычисляемым, разумеется, только при трансляции программы. Директивы определения сегментов и процедур Сегмент определяется псевдооператорами: иия сег зедвепС иия сег епбз В программе можно использовать четыре сегмента (по числу сегментных регистров) и для каждого указать соответствующий регистр сегмента псевдооператором А88ОМЕ (аззцгпе — присвоить), например: собезед зебвепг аззцве С5:собезед.

05:батазед. 55:зтасХзед собезед епбз В директиве А88ОМЕ регистр сег:нмя сег [, ], в частности, А88ОМЕ сз:собезед, указывается, что для сегмента нмя сег (сооезед) выбран регистр регистр сег (С8). После директивы А88ОМЕ следует явным образом загрузить адрес начала сегмента данных в регистр 08: воч АХ, батазед ноч 05. АХ Подобная же инициализация сегментных регистров С8 и 88 выполняется автоматически (по умолчанию). Процедура определяется псевдооператорами: иня процедуры ргос [1аг) ...

гет иия процедуры епбр При определении процедуры после ключевого слова ргос должен быть указан атрибут дистанции пеаг или 1аг; если этого атрибута нет, то по умолчанию подразумевается пеаг. Обычно процедура должна заканчиваться командой ге1 (гегцгп). Если процедура объявлена как пеаг, то обращение к ней (сад) должно производиться из того же сегмента; если ргос 1аг, то из любого сегмента (в этом случае командой ге1 из стека при возврате будет извлечено два слова: для 1Р и для С8).

Директивы управления трансляцией Их несколько, наиболее часто используется Е[ч0. Директива Е[ч0 отмечает конец программы и указывает ассемблеру, где завершить трансляцию. Формат: ЕНО [имя программы]. 377 Программирование работы с дисплеем Краткие сведения о программировании процедур работы с устройствами ввода-вывода Процедуры ввода-вывода в ПК выполняются, как правило, по прерываниям. Состав и использование основных видов прерываний и служебных функций 005 прерывания 21Н рассмотрены в работах [10, 351.

Ниже мы кратко остановимся на вопросах программирования ввода-вывода лишь прерываний для отображения информации на дисплее, ввода с клавиатуры, вывода на принтер и работы с файлами. Программирование работы с дисплеем Задание режимов работы и обмен данными с дисплеем можно выполнять при прерываниях В105 типа 10Н, а вывод данных на дисплей — и при прерываниях ПОИ типа 21Н. Для уяснения отличий прерываний В105 от прерываний РОЯ рассмотрим в качестве примера несколько функций видеопрерываний В105.

Видеооперации с прерыванием 10Н ВЮВ Это прерывание обеспечивает выполнение 16 различных процедур работы с дисплеем (идентифицируются содержимым регистра АН). Приведем самые важные из ннх: 1. Перемещение курсора в заданную позицию: АН = 2. Координаты курсора (строка, столбец) предварительно засылаются, соответственно, в регистры йН, 01 В регистре ВН указывается номер страницы буфера: по умолчанию и в графическом режиме ВН - О. 2. Очистка экрана дисплея: АН = 6 и А1 = 0 или АН = 7 и А1. - О.

3. Чтение символа, находящегося в текущей позиции курсора„и его атрибута (только для текстовых режимов): АН = 8. В регистре ВН указывается номер страницы буфера. Считанный символ возвращается в А(., а его атрибуты — в АН (атрибуты символа — это его характеристики: цвет, цвет фона, яркость, инвертирование, мигание и т. д.). 4. Установка видеорежима изображения (текстовый, графический, цветность, формат, разрешающая способность и т. и.): АН = О. Видеорежим определяется содержимым регистра Аь.

5. Запись новых атрибутов символа и вывод символа в текущую позицию курсора: АН = 9. Прочие регистры должны содержать: О А1. — записываемый символ; О В1. — его атрибуты или цвет (в графическом режиме); О ВН вЂ” номер видеостраницы; О СХ вЂ” счетчик записываемых символов (число повторений символа). 378 Глава 18.

Элементы программирования нв языке ассемблера 6. Вывод символа в текущую позицию курсора: АН = 9 и ВС- О. Содержимое дг, ВН и СХ аналогично п. 5. 7. Чтение текущего видеостатуса: АН - ОгЬ. Возвращает: в АС вЂ” текущий режим; в АН вЂ” число столбцов на экране; в ВН вЂ” активную страницу буфера. 8. Вывод строки символов: АН = 13Ь и АС - О. Прочие регистры должны содержать: О Е8:ВР— указатель строки (ее начальный адрес в памяти); О СХ вЂ” длину строки; О ОХ вЂ” строку дисплея; О ВН вЂ” номер страницы буфера. Видеооперации с прерыванием 21Н 008 О Вывод символа на экран дисплея: АН - 2 или АН = 6 и ОС <> ОГНЬ. В регистре Ог должен быть А8СП-код символа Фрагмент программы (вывод символа «Си): еоч АН.

б еач Ог. 43Н ; 43Н вЂ” это А5С!1-код сиивола С тпг 21н О Вывод строки символов: АН - 9 (чаше всего используемая функция). В регистрах 08:ОХ должен находиться начальный адрес строки символов, которая обязана заканчиваться символом 8. Пример фрагмента программы (отображение текста 'вывод строки символов8'): Техг бЬ 'вывод строки сииволовэ' ноч АН, 9 еоч Ох. оттэег гехг : это адрес выводииой строки тпг 21Н О Ввод-вывод из файла через логический номер. Стандартные файловые логические номера определяют тип и устройство ввода-вывода: О 0 — ввод с клавиатуры; О 1 — вывод на экран дисплея; О 2 — вывод на экран сообщения об ошибке; О 3 — ввод-вывод на внешнее устройство; О 4 — вывод на печать.

Для ввода предназначена функция АН - ЗгЬ прерывания 21Н, для вывода служит функция АН - 40Ь прерывания 21Н. В регистр СХ предварительно заносится число вводимых-выводимых байтов, а в регистр 0Х записывается начальный адрес поля памяти для ввода-вывода. В случае успешного завершения процедуры ввода-вывода обнуляется флаг переноса СЕ, а в регистре АХ возвращается количество фактически переданных байтов. При неудачной операции флаг СГ устанавливается в 1, а в регистр АХ заносится код ошибки. Приведенный ниже пример содержит фрагмент программы для вывода на экран текстового файла техт, содержащего 50 байт: гехг бЬ 50 бирС ') яоч АН, 40Н 379 Программирование работы с клавиатурой «оч ВХ.

1; указание устройства вывода воч СХ, 50 ; указание числа выводикых байтов «ач ОХ, оттзег гехт; ух««ание начального адреса : поля паняти. содержащего текст тпт 21Н Программирование работы с клавиатурой При программировании работы с клавиатурой могут быть использованы прерывание 16Н В105 и прерывание 21Н (АН - 1, 6, 7, 8, А, В, С) ЕгОЯ. Прерывание 16Н В108 предусматривает довольно простые операции обмена данными с клавиатурой, полезные при написании программ, выполняемых независимо от операционной системы 1)ОБ.

Так, при АН - 0 и 1 считываются из буфера клавиатуры зсап-код клавиши в регистр АН и АБСП-код клавиши в регистр АС; при АН - 2 в АС возвращается байт состояния клавиатуры — состояние управляющих клавиш: ЗПйй Стгй Ай, Вегой Соей, Ныгп Соей и!пвепй при АН - 3 — устанавливаются режимы работы клавиатуры в 1ВМ РС)г. Ввод с клавиатуры по прерыванию 21Н 1)ОБ предполагает: 1. Чтение символа с клавиатуры (с ожиданием ввода) и отображение символа на экране дисплея: АН - 1 или АН = 6 и 0С - ОРГ)т; то же, но без эха-отображения символа на экране дисплея: АН - 7 или АН = 8. Считанный символ (АБСП-код) помещается в регистр АС («сап-код не передается). Если к моменту запроса на чтение символа клавиша еще не нажата, то управление прерванной программе не будет возвращено до тех пор, пока это не будет сделано.

Если код клавиши расширенный (клавиши гт-ртО, АИ, Стй и т. д.), необходимо повторное чтение. Пример фрагмента программы чтения символа: еоч АН, 1 тпг 21Н 2. Чтение строки символов с буферизацией: АН = ОА)т. Для инициализации такого чтения необходимо: О задать буфер, указав в нем число символов строки, подлежащих вводу, директивой Ьи1 0В и, О, О, ..., О, О (Ьыт — имя поля, которое, в принципе, может быть и любым другим); количество нулей в директиве должно быть на 2 больше, чем и (п — максимальное количество вводимых символов), на место следующего нуля после ввода будет записано количество фактически введенных символов, на место последующих нулей будут введены АЯСП-коды символов строки и еще один нуль для кода клавиши Ептег — 13; О занести в регистр 0х адрес буфера. При выполнении рассматриваемого прерывания управление прерванной (основной) программе не возвратится до тех пор, пока не нажаты все нужные клавиши и клавиша Ептег.

При нажатии каждой очередной клавиши ее код записывается в буфер клавиатуры и отображается на дисплее, но из буфера по- 380 Глава та. Элементы программирования нв языке ассемблера ступит в основную программу (в поле Ьыт) только после нажатия клавиши Ептег. Если до Ептег клавиш нажато больше, чем указано в буфере, то раздастся звуковой сигнал и лишние символы восприняты не будут, Пример фрагмента программы чтения строки символов: Ьыт ОВ 9.0,0,0,0.0.0.0,0.0,0.0 яоч АН, ОАН яоч ОХ, оттает Ьыт тпт 21Н В поле буфера будут записаны АБСП-коды символов строки, и если в программе предусмотрены операции над двоичными кодами символов (цифр) строки, то есть если она предполагает ввод числового значения, то необходимо преобразовать АБСП-коды в двоичный код числа.

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

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

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