операционная система windows, система распознавания текста, антивирус, резервное копирование баз данных, программа резервного копирования, .

digitaction.narod.ru

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

 Разделы
архиватор winzip
словарь
avast pro
avast 4 professional edition
avast 4
1с бухгалтерия
системы резервного копирования
panda 2007
русско английский словарь
nod32
програмное обеспечение
 Главная  Links
{img1} Отказоустойчивые системы
данные ENDIF ENDIF ENDIF ELSE ;;продвинуть непосред.данные @PushIm &arg ENDIF ENDM ;;конец макроописания ----------------------------------------------------------------- Листинг 1-11. Макро проталкивания непосредственных данных - @PushIm ---------------------------------------------------------------- ;; **** @PushIm макро проталкивания непосредственных данных @PushIm Macro arg .XALL push bp ;;сохранить указатель базы mov bp,sp ;;переместить указатель стека в BP push ax ;;сохранить накопитель mov ax,&arg ;;получить непосредственные данные xchg [bp],ax ;;обменять старый BP и непосред.
бухгалтерия
{img2} win архиваторы
данные mov bp,ax ;;восстановить старый BP из AX pop ax ;;восстановить накопитель .SALL ENDM ;;конец макроописания ---------------------------------------------------------------- Эта операция свертывания может быть сведена к обмену элемента- ми внутри стека. Однако ведение подобных игр со стеком опасно. Если Ваш компьютер поддерживает прерывания, для предохранения це- лостности данных стека эта операция должна выполняться только че- рез запрещение прерываний. Для тех случаев, когда делается попытка протолкнуть в стек программные адреса, мы предполагаем, что программист желает сох- ранить действительное смещение метки.
словарь
{img3} Отказоустойчивые системы
Для проталкивания в стек смещения метки, как непосредственных данных, было использовано макро @PushImOff. Оно отличается от макро @PushIm только исполь- зованием команды: mov ax,offset &arg , что противоположно простому перемещению в макро @PushIm.
avast 4 server

avast 4 server

операционная система windows, система распознавания текста, антивирус, резервное копирование баз данных, программа резервного копирования, .
 

nod32

@PUSHOP ссылается на макро ?reg, и макро ?reg должно быть включено в программу с @PUSHOР. Макро @PUSHOP см. в Листинге 1-10. @PUSHOP использует возможность макро ?reg различать 16- и 8- битовые регистры. Так как команда PUSH не обрабатывает 8-битовый регистр, для получения первого символа имени регистра использует- ся директива IRPC. Затем @PUSHOP добавляет х, формируя ,таким об- разом, имя 16-битового регистра, которое приемлемо для PUSH. За- метим, что в этом операторе снова необходимо использование удвоенного амперсанда, причем с обеих сторон формального аргумен- та, так как сцепление строк возникает с обоих концов. Для тех случаев, когда предполагается наличие непосредственных данных, вызывается макро @PushIm. Это макро более сложное , чем минимально необходимое, так как предполагается, что для передачи непосредственных данных в стек нельзя использовать регистры. Вместо этого макро использует указатель базы (BP) на адрес стека. После сохранения BP и AX в стеке @PushIm заносит непосредственные данные поверх содержимого AX, обменивая их со старым содержимым BP. После восстановления содержимого BP макро извлекает содержи- мое AX, выталкивая его из стека. Макро @PushIm приведено в Лис- тинге 1-11. Листинг 1-10. Обобщение макро PUSH - @PushOp ---------------------------------------------------------------- ;; **** @PushOp макро с обобщенным операндом команды PUSH ;; Если операнд определен, он может быть: ;; регистром ;; ссылкой на данные ;; ;; Если операнд не определен, он полагается ссылкой на ;; непосредственные данные @PushOp Macro arg .SALL IFDEF &arg ;; операнд определен ... ?argtyp = .type &arg ;; выявить его тип IF ((?argtyp and 3) EQ 2) ;;операнд - данные ?argsiz = ((type &arg) + 1)/2 ;; получить длину ;; в словах ?argoff = 0 ;; установить смещение в 0 REPT ?argsiz ;; повторить для каждого слова ?argadd = word ptr &arg + ?argoff ;;получить .XALL тип ptr push ?argadd ;;продв-ть непоср.в память .SALL ?argoff = ?argoff + 2 ;;след-ее слово данных ENDM ENDIF IF ((?argtyp AND 3) EQ 1) ;;операнд - программа @PushImOff &arg ;;продвинуть смещение метки ENDIF IFE (?argtyp and 3) ;;операнд - абс.значение ?reg &arg IF (?isr16) ;;операнд - регистр 16 .XALL - 1-28 - push &arg ;;продвинуть непосред. .SALL ELSE IF (?isr8) ;;операнд - регистр 8 IRPC chr1,&arg1 .XALL push &&chr1&&x ;;сохранить короткий рег. .SALL EXITM ENDM е ELSE ;;предположить непосред.данны @PushIm &arg ;;продвинуть непосред.


win rar


 
 

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