резервное копирование файлов, резервное копирование баз данных, avast antivirus, norton, немецко русский словарь, .

hardenworld.narod.ru

 
 На сайте
   Главная
   Links

 Разделы
panda antivirus
системы управления базой данных
прокси сервера
avast home
avast pro
англо русский словарь
программы архиваторы
avast antivirus
Навигационные системы
текстовые редакторы
win архиваторы
 Главная  Links
{img1} сетевой экран
В этом случае макрос используется для вставки текстовых строк в сегмент данных и последующего соз- дания ссылки на них в сегменте кода. Сравнивая исходный текст с макрорасширением в Листинге 1-1, можно увидеть, насколько удобно использовать макрос. Листинг 1-1 также содержит некоторые полезные макросы, облегчающие решение задачи по написанию программ .ЕХЕ.
сетевой экран
{img2} архиватор zip
Однажды определив эти макросы, Вы можете не беспокоиться за правильность синтаксиса программ .ЕХЕ! Листинг 1-1. Программа Hello World ------------------------------------------------------------- ;******************************************************** ; С Е К Ц И Я М А К Р О О П И С А Н И Я ;******************************************************** ; @DosCall MACRO int 21h ;вызвать функцию MS-DOS ENDM ; @InitStk MACRO ;определить размер стека stk_seg SEGMENT stack DB 32 dup ('stack ') stk_seg ENDS ENDM ; @InitPrg MACRO segment ; инициализировать сегмент ASSUME ds:segment ; данных start: ; основная точка входа mov ax,segment - 1-7 - mov ds,ax ;установить сегмент данных mov es,ax ;установить внешний сегмент ENDM ; @Finis MACRO mov ax,4C00h ;завершить процесс @DosCall ENDM ; @DisStr MACRO string ;отобразить строку памяти mov dx,offset string mov ah,09h @DosCall ENDM ; @TypeStr MACRO string ;определить и отобразить строку LOCAL saddr ;установить локальную метку cod_seg ENDS ;завершить сегмент кода dat_seg SEGMENT ;перейти к сегменту данных saddr DB string,'$' ;определить строку в сегм.данных dat_seg ENDS ;завершить сегмент данных cod_seg SEGMENT ;вернуться к сегменту кода @DisStr saddr ;отобразить строку ENDM ; ; ;******************************************************** ; П Р О Г Р А М М Н А Я С Е К Ц И Я ;******************************************************** ; @IniStk ;установить стек cod_seg SEGMENT ;определить сегмент кода main PROC FAR ;главная (одна) процедура ASSUME cs:cod_seg ;назначить сегм.кода рег.CS @InitPrg dat_seg ;инициализ-ать сегмент кода @TypeStr 'Hello world!' ;выдать приветствие @Finis ;закончить программу main ENDP ;завершить процедуру cod_seg ENDS ;завершить сегмент кода END start ;завершить программу и ... ;определить адрес пуска ------------------------------------------------------- Программу можно вводить точно так, как она приведена, а затем ее ассемблировать и выполнять.
резервное копирование данных
{img3} утилиты резервного копирования
Слова "Hello world!" подлежат отображению на экране.Сам по себе результат не очень выразителен, однако, если используемый макрос сохранен в файле include (вклю- чить), написание .EXE-программ значительно облегчается. Давайте посмотрим на распечатку расширения программы, приведенного в Лис- тинге 1-2. - 1-8 - Листинг 1-2.
антивирус касперского

avast 4 server

резервное копирование файлов, резервное копирование баз данных, avast antivirus, norton, немецко русский словарь, .
 

asplinux 11

Теперь макро min может быть использовано всякий раз, ког- да это необходимо, так как каждый раз метке перехода будет прис- ваиваться новое имя. Однако действительное имя не имеет для нас никакого значения, ибо метка является собственностью функции min. min ax,bx,cx,jmp1 <- вызов макро 1 mov ax,bx 1 cmp bx,cx 1 jl jmp1 1 mov ax,cx 1 jmp1: Такой способ создания нового имени при каждом вызове макро min является лучшим. Именно для этой цели MASM имеет директиву LOCAL (локальный). Когда MASM встречает LOCAL, для стоящего рядом имени создается уникальная метка. Другой способ заключается в помещении параметра LOCAL в список параметров MACRO, но при этом MASM про- изводит присваивание действительного аргумента. Предупреждение: операторы LOCAL всегда должны помещаться сразу же после строки именования MACRO! После включения директивы LOCAL новое макро min выглядит так: min MACRO result,first,second LOCAL order_ok mov &result,&first cmp &first,&second jl order_ok mov &result,&second order_ok: ENDM - 1-6 - Теперь, когда мы снова вызовем макро min, образуется листинго- вый файл, как показано в следующем примере. Значение order_ok бу- дет заменено на ??0000. Каждый раз при вызове макро order_ok за- меняется на новое значение, вырабатываемое MASM. min ax,bx,cx ;первый вызов 1 mov ax,bx 1 cmp bx,cx 1 jl ??0000 1 mov ax,cx 1 ??0000: min ax,bx,cx ;второй вызов 1 mov ax,bx 1 cmp bx,cx 1 jl ??0001 1 mov ax,cx 1 ??0001: Конечно, остается вероятность возникновения конфликта меток, если Вы решите использовать метки, начинающиеся с ??. Если Вы ус- траните использование меток, начинающихся с ??, то Вы сможете вы- зывать макро min столько раз, сколько захотите. Использование меток LOCAL не ограничивается только переходами по адресам. Метки LOCAL могут также использоваться с данными, как показано в следующем макросе.


антивирусные программы


 



Caa?ocea ...
 

CNews: Новости | e-Business | Hi-Tech | Telecom List.ru - каталог ресурсов интернет Directrix џ­¤ҐЄб жЁвЁа®ў ­Ёп
Сайт создан в системе uCoz