Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2010, 20:22   #1
zhuk99
 
Регистрация: 25.09.2010
Сообщений: 5
По умолчанию Как работает Pushf/ iret

Помогите разобраться как работают эти команды на следующем примере

Код:
; Обработчик мультиплексорного прерывания
new_2fh proc
	
	mov 	flag,0
    cmp 	ah,0f1h        ; номер функции 
    jne 	out_2fh        ; Если не наша,то идем на выход
    cmp 	al,00h         
    je 		inst            ; сообщение о невозможности повторной установки
    cmp 	al,01h         ; если это подфункция выгрузки
    je 		off             
    jmp 	short out_2fh        
inst: 
	mov 	al,0ffh        ; Программа уже установлена
    iret               
out_2fh:
	
    jmp 	cs:old_2fh           ; Переход в  следующий по цепочке обработчик прерывания 2Fh


  ; Выгружаем  программу из памяти, восстановив при этом все перехваченные ею векторы
off: 
	;pushf  
	push 	ds
    push 	es
    push 	dx

  ; Восстановим вектор 09h
    mov 	ax,2509h       
    lds 	dx,cs:old_09h       
    int 	21h
  ; Восстановим вектор 2fh
    mov 	ax,252fh       
    lds 	dx,cs:old_2fh  
    int 	21h
  ; Получим из PSP адрес собственного окружения и выгрузим его
    mov		es,cs:2ch      
    mov 	ah,49h         
    int 	21h
  ; Выгружаем саму программу
    push 	cs            
    pop 	es
    mov 	ah,49h   
    int 	21h
  ; Восстановим использовавшиеся регистры
    pop 	dx
    pop 	es
    pop 	ds
    iret               ; Возврат в вызвавшую программу
  new_2fh endp     ; Конец  2Fh
во вложении полный резидент...
Вложения
Тип файла: rar tasm.rar (2.4 Кб, 6 просмотров)
zhuk99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работает процессор? Иллидан Компьютерное железо 13 17.07.2011 14:04
Как работает else в try...except...end? TwiX Общие вопросы Delphi 13 27.03.2010 16:07
как работает ноды? NurNet Общие вопросы Delphi 1 21.08.2009 08:15
Как работает?! KamBall Общие вопросы C/C++ 2 01.06.2009 19:23
Как работает Include ToxaRUS Паскаль, Turbo Pascal, PascalABC.NET 2 20.01.2009 16:04