Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Самостоятельные разработки



1. Создайте текстовый символьный массив (64 символа, от символа пробела до символа _). Выведите созданную строку на экран. Для этого можно вставить нижеприведенный текст в любую программу задания 1, удалив предварительно из нее ненужные строки: т.е. присоединить к нижеприведенному тексту начало и конец ассемблерной программы - описание сегментов и процедур.

;=== Программа 8. Файл z3_pr8.asm =============================

……

;Основные фрагменты программы

;Заполним строку кодами символов

mov CX,64;Число символов в счетчик цикла

mov AL,' ';Код первого символа (пробела) в AL

mov SI,0;Величина смещения относ. mes в SI

fill: mov mes[SI],AL;Код пересылается в строку

inc SI;Инкремент содержимого SI. К следующему адресу

inc AL;Инкремент содержимого SI. Код следующего символа

loop fill;Цикл CX раз

;Выведем строку mes на экран, как в программе задания 1

mov AH,40h

mov BX,1

mov CX,64

mov DX,offset mes

int 21h

;Завершим программу

...

;Поля данных

mes db 64 dup('_')

Замечание. Для выборки символов, входящих в строку (массив) mes, использована, так называемая, регистровая косвенная со смещением адресация (аналог адресации элементов массива в языке С++). Относительный адрес операнда mes[SI] определяется как сумма содержимого регистра [SI] и смещения на mes от начала сегмента данных. Адрес начала сегмента данных записан в сегментном регистре DS. Если записать сказанное в виде формулы, то получим:

относительный адрес операнда mes[SI] =

содержимое регистра [SI] +

смещение на mes относительно адреса в DS.

Изменение содержимого регистра SI приводит к смещению адреса на новый символ.

2. Просмотрите изображение символов второй половины кодовой таблицы (коды 128 - 255, всего 128 символов). Для этого создайте текстовый символьный массив, состоящий из кодов этих символов, и выведите его на экран.

;=== Программа 9. Файл z3_pr9.asm =============================

……

3. Создайте программную задержку, используя вложенные циклы. Определите значения параметров, позволяющие получить задержки (на конкретном компьютере) 10, 3 и 1 сек.

;=== Программа 10. Файл z3_pr10.asm ===========================

……

;Основные фрагменты программы

;Организуем (для наглядности) демонстрационный цикл из 10 шагов

mov CX,10

loop4: push CX;поместить содержимое СХ в стек

;Выведем строку mes на экран

...

;Организуем программную задержку

mov CX,time

outer: push CX;поместить содержимое СХ в стек

mov CX,0

inner: loop inner

pop CX;извлечь содержимое СХ из стека

loop outer

pop CX;извлечь содержимое СХ из стека

loop loop4

;Поля данных

mes db '<>'

time dw 10

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

;=== Программа 11. Файл z3_pr11.asm ===========================

……


Контрольные вопросы

1. Сколько символов закодировано в таблице ASCII кодов?

2. Можно ли адресовать элемент строки mes вместо mes[SI] следующим образом: SI[mes], [SI]+mes или [SI+mes]? Какие способы адресации Вам известны?

3. Объясните как «работают» вложенные циклы в программе задержки?

4. Как действует команда inner: loop inner? Сколько раз повторяется выполнение этой команды при задержке в 3 сек. На Вашем комрьютере?

5. Что такое стек? Что такое – вершина стека, дно стека? Каково назначение регистров SS и SP?

Литература

1. Юров В., Хорошенко С. Assembler:учебный курс – СПб: Питер Ком, 1999. – 672 с.:ил.

2. Абель П. Язык Ассемблера для IBM PC и программирования / Пер. с англ. Ю.В.Сальникова.- М.: Высш. шк., 1992.- 447 с.:ил.

3. Майко Г.В. Ассемблер для IBM PC: - М.: «Бизнес-Информ», «Сирин», 1997. – 212 с.

4. Финогенов К.Г. Самоучитель по системным функциям MS-DOS. – Изд.2, перераб. и дополн.- М.: Радио и связь, Энтроп, 1995. – 382 с., ил.





Дата публикования: 2014-12-10; Прочитано: 367 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...