программа резервного копирования, GPS-навигатор, архиватор zip, операционная система windows, Архиваторы, .

cyberdnk.narod.ru

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

 Разделы
английский словарь
avast 4 home
система распознавания текста
Архиваторы
win zip
symantec antivirus
англо русский словарь
офисные программы
доктор веб
avast 4 professional
английский словарь
 Главная  Links
{img1} антивирус panda
Заметим, что счетчик параметров также используется в качестве поля возврата значения для вызова функций (макросы @FCallS и @RetVal). Макрос @RetVal предназначен для использования с макросом @FCallS и замещает счетчик параметров, помещенный в стек с по- мощью макроса @FCallS, 16-битовым значением для возврата в вызы- вающую программу. Макрос @Accept целевой программы работает либо с макросом @CallS, либо с макросом @FCallS для передачи параметров из стека в регистр. Этот макрос сохраняет регистры, используемые в процессе работы.
panda antivirus
{img2} резервное копирование файлов
Символ ?count используется здесь для определения смещения следующего параметра в стеке. В связи с тем, что макрос @Accept работает в направлении вверх по стеку (увеличение смещения), то этот макрос выбирает параметры из стека в порядке, обратном тому, в котором они были помещены в стек! Заметим также, что оба макроса @Accept и @RetVal предполагают вызов процедуры near (близкий), поскольку они допускают только 2-байтовый адрес возврата. Последний целевой макрос @CRet восстанавливает регистры, ко- торые были сохранены макросом @Accept.
kaspersky
{img3} asplinux 11
В связи с тем, что инс- трукции POP должны быть в обратном порядке по отношению к инс- трукциям PUSH, список аргументов для макроса @CRet должен располагаться в порядке, обратном тому, какой был при выполнении макроса @Accept. Последним действием, предпринимаемым перед инс- трукцией RET, является восстановление указателя базы, сохраненно- го макросом @Accept. Приведенные макросы представлены здесь скорее в качестве при- меров, нежели рабочих копий и могут быть улучшены для обеспечения более полного использования.
архиватор rar

архиватор winzip

программа резервного копирования, GPS-навигатор, архиватор zip, операционная система windows, Архиваторы, .
 

asplinux deluxe

(Конечно, если вызываемая программа сможет использовать различное количество параметров, выдаваемых от вызова к вызову). С целью облегчения программирования следует заменить простой вызов внешними участками программы, использующими инструкции PUSH (записать в стек), MOV (переслать), POP (извлечь из стека) и про- чие. Это как раз одно из мест для вывода известных и простых мак- росов для выполнения этих рутинных операций. Макросы, приведенные в листинге 2-2, помогают вызывающей программе поддерживать стек во время передачи параметров. Аналогично, макросы, приведенные в листинге 2-3, помогают вызываемой программе при доступе и возвра- те параметров из стека. Все регистры, используемые в этих макро- сах, должны быть длиной в слово, потому что инструкции PUSH и POP не работают с 8-битовыми регистрами. - 2-12 - Листинг 2-2. Макросы @CallS и @FCallS для передачи параметров стек ------------------------------------------------------------------ ;; **** Макрос @PushIm: запись в стек непосредственных данных ;; через регистр BP @PushIm MACRO arg mov cs:mem_16,&arg push cs:mem_16 ENDM ;; **** Макрос Вызов подпрограммы: @Calls имя, @CallS MACRO имя_программы,список_аргументов ?count = 0 IRP argn,<&arg_list> push &&argn ; передача параметра ?count = ?count+1 ENDM @PushIm %?count ; передача количества параметров call &routine_name ; вызов программы add sp,2*(1+?count) ; очистка стека ENDM ;; **** Макрос Вызов функции: @FCallS имя, @FCallS MACRO имя_пр-мы,список_арг-тов,возвращаемое_значение ?count = 0 IRP argn,<&arg_list> push &&argn ; передача параметра ?count = ?count+1 ENDM @PushIm %?count ; передача количества параметров call &routine_name ; вызов программы pop &return_val ; получение возвращаемого знач-я if ?count ; если не нуль ... add sp,2*?count ; очистка стека ENDIF ENDM ----------------------------------------------------------------- Листинг 2-3. Макросы @Accept,@RetVal и @CRet для приема в стек и возврата параметров из стека ----------------------------------------------------------------- ;; **** Макрос @RetVal: @RetVal регистр @retVal MACRO возвращаемое_значение mov [bp+4],return_val ; возврат слова ENDM ;; **** Макрос @Accept: @Accept @Accept MACRO список_регистров push bp ; сохранение указателя базы mov bp,sp ; уст-ка BP для доступа к парам. mov &pnum,[bp+4] ; получение количества парам-ов ?count = 0 IRP reg,<®_list> ?count = ?count+1 push &® ; сохр-е рег-ра для нового знач. mov &®,[bp+4+?count*2] ; получение параметра ENDM ENDM ;; **** Макрос @CRet: @CRet @CRet MACRO список_регистров IRP reg,<®_list> pop &® ; восст-е сохраненного регистра ENDM pop bp ; восстановление указателя базы ret ; возврат из программы ENDM - 2-13 - Макрос @PushIm позволяет пользователям микропроцессоров 8086/8088 помещать непосредственные данные в стек. Для использо- вания макроса сначала необходимо определить в программном сегмен- те местоположение слова mem_16. Несмотря на то, что передача не- посредственных данных в стек медленная и принимаются большие коды, такой алгоритм работы создает большую свободу использования регистров. Символ ?count в макросах @CallS и @FCallS используется для сообщения вызываемой программе количества предусмотренных пара- метров; для приема количества байтов, помещенных в стек; и для использования при очистке стека после вызова. Если целевая или вызываемая программа уже знает сколько параметров было в нее пе- редано (обычно является случайным), то эти макросы должны быть модифицированы, чтобы обойтись без передачи и очистки счетчика параметров.


программы архиваторы


 
 

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