Контрольная работа n 2 разработка программы на ассемблере




НазваниеКонтрольная работа n 2 разработка программы на ассемблере
страница9/11
Дата конвертации02.10.2013
Размер0.77 Mb.
ТипКонтрольная работа
1   2   3   4   5   6   7   8   9   10   11

Более совершенный ввод шестнадцатеричных цифр


Записанные ранее программы ввода одно- и двузначного шестнадцатеричных чисел реагировали на нажатие “нецифровых” клавиш точно также, как и “цифровых”. Теперь мы получим программу, которая не будет реагировать на нажатие “нецифровых” клавиш.

Для этого в состав программы введем новую процедуру ввода шестнадцатеричной цифры. Эта процедура возвратит управление в главную программу только тогда, когда она получит с клавиатуры правильную шестнадцатеричную цифру. При нажатии "нецифровой" клавиши ее код на экран не выводится и управление в программу не возвращается.

Ранее для ввода символа с клавиатуры использовалась функция 1 программного прерывания 21h. Эта функция не только вводит символ с клавиатуры, но и выводит его на экран. Подобный вывод символа во время его ввода называется "эхом" символа. Теперь мы будем использовать функцию 8 21-го прерывания, которая не выводит "эхо" символа.

На рис.7 приведена блок-схема новой процедуры ввода шестнадцатеричной цифры, а на рис. 8 – сама эта процедура. (Процедура возвращает цифру в регистре BL.) И з у ч и т е внимательно алгоритм и найдите реализацию его этапов в программе. Во-первых, обратите внимание, что управляющей структурой верхнего уровня является цепочка из цикла ПОКА и этапа "Вывод цифры на экран". В качестве условия повторения цикла выступает равенство единице флага ошибки СF.


группа 63


к<30 39>=к>=30 39<к<41 41<=к<=46 к>46


да


нет


СF - флаг ошибки (0 - ошибки нет, 1 - ошибка есть)


Рис. 7. Алгоритм ввода одной шестнадцатеричной цифры


Имя CF флага ошибки обусловлено тем, что он реализуется в программе с помощью одноименного флага переноса. При этом флаг переноса используется совсем не для того, для чего он был создан. Данный прием широко распространен, и мы также будем его использовать.

Существуют специальные инструкции для работы с флагом CF. Инструкция STC устанавливает флаг (CF=1), а CLC сбрасывает его (CF=0). Инструкция условного перехода JC выполняет переход при СF=1, а инструкция JNC - при CF=0.

В в е д и т е данную процедуру в память. Кроме того, запишите в память следующую программу для проверки процедуры:

100 CALL 200

103 INT 20

П р о т р а с с и р у й т е программу, используя команду Р для перехода через инструкции INT. Курсор появится в левой части экрана и будет ждать ввода символа. Напечатайте символ "К", который не является правильным символом. Ничего не произойдет. Теперь напечатайте один из заглавных шестнадцатеричных символов. Вы должны увидеть шестнадцатеричную цифру в BL, а также на экране. Испытайте эту процедуру на граничных условиях: "\" (символ, стоящий перед нулем), "0", "9", ":" (символ, стоящий после 9), и т.д.


200 PUSH DX

201 MOV AH, 8

203 INT 21

205 MOV DL, AL

207 CMP AL, 30

209 JB 221

20B CMP AL, 39

20D JA 214

20F SUB AL, 30

211 CLC

212 JMP 222

214 CMP AL, 41

216 JB 221

218 CMP AL, 46

21A JA 221

21C SUB AL, 37

21E CLC

21F JMP 222

221 STC

222 JC 203

224 MOV BL, AL

226 MOV AH, 2

228 INT 21

22A POP DX

22B RET


Рис. 8. Процедура ввода шестнадцатеричной цифры


Теперь, когда у нас есть процедура ввода одной шестнадцатеричной цифры, программа, считывающая двузначное шестнадцатеричное число в регистр DL и обрабатывающая ошибки, стала достаточно простой. Ее алгоритм приведен на рис. 9.

группа 51


Рис. 9. Алгоритм ввода двузначного шестнадцатеричного числа

1   2   3   4   5   6   7   8   9   10   11

Похожие:

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа по курсу Базы данных
Вся контрольная работа выполняется с использованием программы Microsoft Access в соответствии с вариантом. Все выполненные задания...

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа
Контрольная работа Подготовить письменное (распечатанное на бумаге) сообщение на тему, выбранную из следующего перечня, по номеру...

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа №1 контрольная работа №2 библиографический список введение учебная дисциплина «Информатика»
Методические указания предназначены для студентов заочной формы обучения всех специальностей

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа, зачет. Ведущие преподаватели
Программа: лекции 12 часов, практические 4 часа, самостоятельная работа – 109 часов, контрольная работа, зачет

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа, зачет. Ведущие преподаватели
Программа: лекции 12 часов, практические 4 часа, самостоятельная работа – 109 часов, контрольная работа, зачет

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа по дисциплине «Инвестиции»
...

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа по культурологии
Контрольная работа выполняется студентом либо в тетради (от руки), либо на листах формата А4 (на компьютере). Необходимо раскрыть...

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа должна быть сдана на проверку в соответствии с
Контрольная работа должна быть выполнена в соответствии с вариантом. Работа выполняется в ученической тетради, объёмом не более 24...

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа выполняется в тетради школьного образца с пронумерованными страницами и полями 25-30 мм для замечаний преподавателя
Контрольная работа для всех специализаций методические указания к выполнению контрольной работы

Контрольная работа n 2 разработка программы на ассемблере iconКонтрольная работа по Истории мировых цивилизаций
Контрольная работа выполняется студентом либо в тетради (от руки), либо на листах формата А4 (на компьютере). Необходимо раскрыть...

Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©tnu.podelise.ru 2013
обратиться к администрации
Библиотека
Главная страница