Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 26
На сайте нет зарегистрированных пользователей

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

База данных - рабочее место кассира на Delphi + бд Access
Моделирование вычислительного центра на GPSS + Отчет + Блок схема
Информационная система - продуктовый магазин на Turbo Pascal (База данны...

ввод строки произвольной длины (функция 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 Комментариев · 16466 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
TmxOutlookBarPro
IMtale
DeleteEdit
ICQ
Animated Menus
Исправление проц...
Globus VCL Extent...
Использование Lis...
XPmenu
PDA версия сайта
Аватары в комме...
Dnavigator
Изучаем Ассемблер
Gold Submitter II...
PCXReader. Програ...
Основы программир...
MP3 Архив v.2.0
DCMintry
PDJPack
Современное проек...

Топ загрузок
Приложение Клие... 100772
Delphi 7 Enterp... 97809
Converter AMR<-... 20260
GPSS World Stud... 17014
Borland C++Buil... 14189
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5972
Visual Studio 2... 5206
Microsoft SQL S... 3661
Случайные статьи
ИСПОЛЬЗОВАНИЕ ПРЕД...
Краткие выводы
Массивы
String length mism...
Parimatch фрибет
5 способов повышен...
Опыт оптимизации
Шифрование и расши...
Работа над языком ...
tld.• Разрешите вы...
На обрабатывающий ...
Инфраструктура нас...
Services for Macin...
Формы внутреннего ...
10.2. Приведение ...
Декартовое произве...
Unit file format e...
LINITIAL (ИНИЦИАЛИ...
Установка и удален...
Дополнительная инф...
Если ГВСканал связ...
Как работать с абз...
Структура кадра Fr...
Моделирование элек...
Применение различн...
Статистика



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


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