Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

Пользователей: 13,371
новичок: gacibe6
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы класса персональных компьютеров на GPSS + Отчет + Б...
Обработка задач на ЭВМ на GPSS + Пояснительная записка
Двунаправленный динамический список на Delphi + Блок схемы

ввод строки произвольной длины (функция 0ah int 21h)
;mac.inc
GetStr macro Buf,MaxLen
local m,TmpBuf
;ввод строки произвольной длины (функция 0ah int 21h)
;на входе:
;Buf - адрес строки куда будет помещен ввод
;MaxLen - максимальная длина вводимой строки
;на выходе - введенная строка по адресу Buf
;al - длина введенной строки
jmp m
TmpBuf label byte ;временный буфер форматом для функции 0ah (int 21h)
rept MaxLen+3 ;доп. три байта - служебная информация
db ' '
endm
m:
SaveReg
xor cx,cx
mov cs:TmpBuf,MaxLen+1
mov ah,0ah
push ds
pop es
push cs
pop ds
lea dx,cs:TmpBuf
int 21h
mov al,cs:TmpBuf+1
;пересылка TmpBuf в Buf со сдвигом на два байта влево (для удаления служебных символов):
mov cl,al ;длина введенной строки в al
lea si,cs:TmpBuf+2 ;откуда - ds:si
lea di,buf ;куда - es:di
rep movsb
LoadReg
endm

mov_string macro dest,src,len
;Пересылка строк
;На входе идентификаторы: строки-источника - src, строки-приемника - dest
;сегментные регистры ds (для источника) и es (для приемника) должны быть загружены
;правильными значениями до вызова макрокоманды
mov cx,len
lea si,src
lea di,dest
rep movsb
endm

null_string macro dest,len
local m,Z_String
;очистка строки произвольной длины пробелами
;на входе:
;dest - адрес строки
;len - длина очищаемой строки
jmp m
Z_String label byte ;пустая строка
rept len
db ' '
endm
m:
SaveReg
mov cx,len
push ds
pop es ;адрес dest (приемник) - es:di
push cs
pop ds ;адрес Z_String (источник) - ds:si
lea si,cs:Z_String
lea di,dest
rep movsb
LoadReg
endm
OutStr macro str
;Вывод строки на экран.
;На входе - идентификатор начала выводимой строки.
;Строка должна заканчиваться символом '$'.
;На выходе- сообщение на экране.
SaveReg
mov ah,09h
lea dx,str
int 21h
LoadReg
endm

GetChar macro
;Ввод символа с клавиатуры.
;На выходе - в al введённый символ.
mov ah,01h
int 21h
endm

OutChar macro
;Вывод символа на экран.
;На входе - в dl выводимый символ.
push ax
mov ah,02h
int 21h
pop ax
endm

SaveReg macro RegList
;Сохранение указанных в списке RegList регистров в стеке
;список регистров должен быть заключен в угловые скобки,
;например -
irp reg,
push reg
endm
endm

LoadReg macro RegList
;Восстановление указанных в списке RegList регистров из стека
;список регистров должен быть заключен в угловые скобки,
;например -
irp reg,
pop reg
endm
endm

clear_r macro rg
;очистка регистра rg
xor rg,rg
endm

conv_16_2 macro
;макрос преобразования символа шестнадцатеричной цифры
;в ее двоичный эквивалент в al
sub dl,30h
cmp dl,9h
jle $+5
sub dl,7h
endm

init_ds macro
;макрос настройки ds на сегмент данных
mov ax,data
mov ds,ax
xor ax,ax
endm

delay macro time
local ext,iter
;макрос задержки. На входе - значение переменной задержки (в мкс).
push cx
mov cx,time
ext: push cx
mov cx,5000 ;это значение можно поменять, исходя из производительности процессора.
iter: loop iter
pop cx
loop ext
pop cx
endm

_Exit macro
;Выход из программы.
mov ax,4c00h
int 21h
endm


Опубликовал Kest March 09 2009 18:18:08 · 0 Комментариев · 16512 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
ADVstatusbar
Tank [Исходник на...
CoolHints2k
Экранная лупа
Averaging [Исходн...
С/C++ Программиро...
C++ Builder в за...
Открытие Cd-ROM'a...
Панель "ссылки"
Apollovcl61
Delphi 6/7 базы д...
3D Октаэдр
Java 2. Наиболее ...
Exe in exe
Text3D
Переработанный пл...
Borland Delphi 8 ...
DeleteEdit
Шкрыль А. - Разра...
Srinilist

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97836
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14192
Borland Delphi ... 10291
Turbo Pascal fo... 7374
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Выработка решенияК...
Методы-подставки
Измените громкость...
Правила описания т...
функцию брандмауэр...
Типичные размеры в...
Этап 6 - выделение...
Изменение внешнего...
Числовые системы в...
Используйте (ГАК д...
Дополнительная пан...
А сколько человек ...
Селектор казино
Project
Заказчик на месте ...
Сокеты [5]
Преимущества SMOSe...
Программа рисовани...
Пример реализации ...
Интерфейс и его де...
Еще один замечател...
MultiLength
Определение шаблон...
Play Fortuna 2020
ключ для туннельно...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?