adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Справочник по системе программирования Турбо Ассемблер 2.0
Автор ""
Размер 416131 Байт
Страница 21 из 51
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

                    Получение символов с клавиатуры
-----------------------------------------------------------------

     Ввод информации с клавиатуры -  один  из  основных  способов
взаимодействия с компьютером IBM PC.  DOS обеспечивает ряд  функ-
ций, с помощью которых программа на ассемблере может обрабатывать
нажатия клавиш. Мы обсудим только часть из них.

     Возможно одним из наиболее простых способов получения симво-
лов  клавиш является функция "Ввод с клавиатуры", то есть функция
DOS номер 1. Функции DOS вызываются путем помещения номера  функ-
ции в регистр AH и выполнения затем инструкции INT 21h. (Действи-
тельная работа инструкции INT несколько более сложна,  но  сейчас
вам требуется только знать, что каждый раз при вызове функции DOS
вы должны выполнять инструкцию INT 21h.) Следующий  набранный  на
клавиатуре символ возвращается в регистре AL.

     Например, когда выполняется код:

                   .
                   .
                   .
                   mov   ah,1
                   int   21h
                   .
                   .
                   .

операционная система  DOS помещает следующий набранный на клавиа-
туре символ в регистр AL.  Заметим,  что если клавиша не  нажата,
DOS  будет ждать,  когда она будет нажата, поэтому для выполнения
данной функции может потребоваться неопределенное время.



                        Вывод символов на экран
-----------------------------------------------------------------

     Если нажатия клавиш означают взаимодействие  пользователя  с
программным  обеспечением,  то экран является дополнением. IBM PC
оснащаются дисплеями различных типов, начиная от цветного тексто-
вого до графического с высоким разрешением, но в данный момент мы
рассмотрим только вывод символов.

     Функция DOS с номером 2 обеспечивает наиболее непосредствен-
ный  путь  вывода символа на экран. Для этого нужно просто помес-
тить 2 в регистр AH и выводимый символ в регистр DL, а затем  вы-
звать DOS с помощью INT 21h. Следующий код отображает каждый вве-
денный символ на экране:

                   .
                   .
                   .
                   mov   ah,1
                   int   21h     ; получить код следующей нажа-
                                 ; той клавиши
                   mov   ah,2
                   mov   dl,al   ; переместить считанный
                                 ; символ из AL в DL
                   int   21h     ; вывести его на экран
                   .
                   .
                   .

     Имеется также ряд других функций  для  считывания  и  вывода
символов и строк символов. Некоторые из них вы найдете в примерах
программ данного руководства. Поскольку для описания всех функций
DOS  потребуется  целая  книга,  мы не можем здесь рассказать обо
всех функциях. Однако мы  настоятельно  рекомендуем  вам  изучить
хотя бы некоторые из соответствующих книг и руководств и узнать о
функциях DOS поподробнее, поскольку они являются в программирова-
нии на Ассемблере ключевым ресурсом.

     Есть еще одно замечание, которое нужно сделать  относительно
клавиатуры,  экрана и файлового ввода и вывода на языке Ассембле-
ра. Те из вас, кто пользовался функциями scanf и printf  в  языке
Си или функциями Readln n Writeln в Паскале, возможно с удивлени-
ем узнают, что в DOS не предусмотрено форматного ввода и  вывода.
DOS выполняет только посимвольный или построчный ввод-вывод. В Си
для печати целой переменной вам требуется сделать следующее:

        printf("\\d\n",i);

     Си автоматически преобразует целое значение, которое хранит-
ся в 16-битовой ячейке памяти, в строку символов кода ASCII и пе-
чатает символы. В Ассемблере ваша программа должна явно  преобра-
зовывать  переменные в строки символов, перед тем, как вывести их
на экран. Аналогично, DOS знает только, как считывать  символы  и
строки  символов  с клавиатуры, поэтому вам придется писать прог-
раммы, преобразующие вводимые пользователем строки  и  символы  в
другие данные.

     В конце следующей главы мы покажем вам пример программы, ил-
люстрирующий все то, что вам нужно сделать, чтобы напечатать зна-
чение переменной. Сейчас запомните только, что функции DOS  могут
печатать  символы или строку символов, и ничего более. Функция по
преобразованию данных в символ, с  которым  может  работать  DOS,





возлагается на вас. Вывод символов на экран ----------------------------------------------------------------- Теперь, когда вы немного знаете о чтении и записи в програм- ме, давайте напишем простую программу, которая выполняет просто эхоотображение строки набранных на клавиатуре символов на экране. Все необходимые для этого функции DOS, кроме одной, вы уже знае- те. Эта последняя функция необходима, поскольку у вас нет способа завершить программу, когда она закончит выполнение. Те, кто знаком с языками Паскаль или Си, могут подумать, что программа на Ассемблере просто закончит работу, когда она дойдет до конца основной программы. Но это не так. Чтобы завершить свою программу на Ассемблере, вы должны выполнить явный вызов функции DOS. Для завершения программы имеется несколько функций DOS, но наиболее предпочтительным методом является выполнение функции DOS с номером 4Ch (или 76 для тех, кто предпочитает десятичный вид). Зная это, можно теперь написать полную программу отображения сим- волов: DOSSEG .MODEL SMALL .STACK 100h .DATA .CODE EhcoLoop: mov ah,1 ; функция DOS ввода с ; клавиатуры int 21h ; получить следующую клавишу cmp al,13 ; это клавиша ENTER? jz EchoDone ; да, выполняем эхоотображение mov dl,al ; поместить символ в DL mov ah,2 ; функция DOS вывода на экран int 21h ; вывести на экран символ jnz EchoLoop ; отобразить следующий символ EchoDone: mov ah,4ch ; функция DOS завершения ; программы int 21h ; завершить программу END Введите программу точно в таком виде и запустите ее. Вы уви- дите, что каждый вводимый вами символ выведется дважды: один раз, когда он отображается DOS при вводе с клавиатуры, и второй раз, когда он отображается вашей программой. Важным моментом здесь яв- ляется то, что все действия: считывания символов клавиш, вывод символов на экран и завершение программы выполняются с помощью функций DOS. Базовая система ввода-вывода ----------------------------------------------------------------- Иногда функции DOS не отвечают вашим потребностям. Тогда настал момент обратиться к базовой системе ввода-вывода IBM PC - BIOS. В отличие от DOS и прикладных программ BIOS не загружается с диска и не занимает место в 640К доступной памяти. Вместо этого BIOS хранится в памяти, доступной только по чтению (ROM или ПЗУ), в той части адресного пространства процессора 8086, которое заре- зервировано для системных функций. BIOS является программным обеспечением IBM PC самого нижнего уровня. Даже DOS использует для управления аппаратурой функции BIOS. Лучше использовать функции BIOS, чем управлять аппаратными средствами непосредственно, поскольку, аналогично DOS, BIOS поз- воляет "скрыть" различия между различными компьютерами и устрой- ствами. С другой стороны, там, где это возможно, вам следует пользоваться функциями DOS, а не функциями BIOS, поскольку прог- раммы, использующие BIOS, могут приводить к конфликту с другими программами и в общем случае менее переносимы при работе на раз- ных ЭВМ. Выбор режима экрана ----------------------------------------------------------------- Наиболее решающей причиной использования BIOS является уп- равление дисплеем, так как DOS практически не предусматривает поддержки широких возможностей дисплеев IBM PC. Только с помощью вызова функций BIOS вы можете установить режим экрана, управлять цветами, получить информацию о дисплейном адаптере и т.д. Напри- мер, следующий код вызывает BIOS и устанавливает экран графичес- кого адаптера CGA в четырехцветный графический режим: . . . mov ah,0 ; функция BIOS установки ; режима mov al,4 ; номер режима для 4-цветной ; графики с разрешением 320х200 int 10h ; выполнить видеопрерывание ; BIOS для установки режима . . . Как вы наверное помните, мы уже говорили о том, что для установки видеорежима необходимо более 30 инструкций OUT. Теперь


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.