Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 60691
Invision Power ... 58593
Организация зап... 58566
Модуль Forms 57057
Приложение «Про... 56808
Оператор выбора... 56240
Создание отчето... 55993
Подключение Mic... 55851
ТЕХНОЛОГИИ ДОСТ... 52192
Программируемая... 49485
Пример работы с... 48011
Имитационное мо... 47741
21 ошибка прогр... 42703
Реклама
http://kingstarspb.ru/ otomix m3000 купить. .
Тарифы междугороднего такси из аэропорта Севастополя taxiaeroport-sevastopol.ru.
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

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

Поиск пути в графе заданном списками инцедентности на Turbo Pascal
Моделирование интернет кафе на GPSS + Отчет
Программа тестирования (тест) - вступительные экзамены (математика, физи...

Реклама

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

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
PHP 5 для "чайников"
HtmlLerz PRO
ScreenSaver [Исхо...
Последние загруж...
RxLIB
C++ Builder в за...
CoolControls v3.0...
Tank [Исходник на...
DiskInfo
MiniTetris [Исход...
Игра в крестики н...
netBIOS
ActiveX в Delphi
Szwavepanel
Создание меню на ...
Error mod
Calendar
Calendar
PDJ Scrollers
С. Г. Горнаков - ...

Топ загрузок
Приложение Клие... 100307
Delphi 7 Enterp... 77869
Converter AMR<-... 20021
Borland C++Buil... 10672
GPSS World Stud... 9246
Borland Delphi ... 7658
Turbo Pascal fo... 6884
Visual Studio 2... 4906
Калькулятор [Ис... 3993
FreeSMS v1.3.1 3486
Случайные статьи
Задача 3
Ответы см
Где взять денег в ...
Если 1IS требует к...
Получение объектов...
Средства для прогр...
Лазерный термоядер...
Обновление плагинов
Undefined forward
Обеспечение финанс...
Операционная систе...
Продедура SetFillS...
Использование иден...
Проектирование
Программист
Широкие строковые ...
Как вставить растр...
То же происходит,к...
Профессиональный с...
Структура распрост...
8.2. Типичные ошибки
Таймер - компонент...
7.9. Поиск по гр...
Защита учетной зап...
Листинг 2.18
Статистика



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


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