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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2015, 22:31   #1
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию Передать параметры

..если мне нужно передать параметры своей функции, чё я должен делать?...я перехватываю прерывание 80.. Как своей функциии передать их? У меня есть их адреса...
Нашедшего выход - затаптывают первым..

Последний раз редактировалось R71MT; 20.09.2015 в 22:34.
R71MT вне форума Ответить с цитированием
Старый 20.09.2015, 23:12   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,768
По умолчанию

А в каком виде они поступают в прерывание, в регистрах или в стеке? Если в регистрах, то просто делать вложенный вызов по своему адресу, а вот стек придется переколбашивать.

Не помню навскидку соглашение вызова syscall.
Vapaamies вне форума Ответить с цитированием
Старый 20.09.2015, 23:47   #3
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..в регистах! Могу в стеке передать... 3 параметра нужно передать.. Подскажите пожалуйста....

Vapaamies..хотя один параметр скинь мне, остальное я сам датункаюсь
Нашедшего выход - затаптывают первым..

Последний раз редактировалось Stilet; 21.09.2015 в 07:03.
R71MT вне форума Ответить с цитированием
Старый 21.09.2015, 00:21   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

https://en.wikibooks.org/wiki/X86_As...ing_with_Linux
p51x вне форума Ответить с цитированием
Старый 21.09.2015, 00:44   #5
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

p51x - я хочу прибавить два числа. Обоя передаются (разницы нет) в каком виде. Перехватываю прерывание пусть будет(80). Юзаю INT-25/35

Здесь я потерялся... Как мне вызвать INT-80, и отдать ему 2 числа?
Если тебе не трудно...объясни
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 21.09.2015, 01:32   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Какая платформа?
p51x вне форума Ответить с цитированием
Старый 21.09.2015, 01:58   #7
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

p51x хочу тебя обмануть 16 байтный параграф,

/..дайте мне 2 параметра к 80--му прерыванию и всё!
Прерывание я сам перехвытываю по 35/25
два плюс три можно сделать? Чтоб я отправил в AX двуху, а в BX 1...
Нашедшего выход - затаптывают первым..

Последний раз редактировалось Stilet; 21.09.2015 в 07:04.
R71MT вне форума Ответить с цитированием
Старый 21.09.2015, 07:05   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как мне вызвать INT-80, и отдать ему 2 числа?
Да действительно в регистры параметры кидай.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.09.2015, 10:39   #9
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

...спасибо Stilet за дельный совет!
А чё в регистрах нельзя передавать? Только через стэк? Пусть будет стэк..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 21.09.2015, 11:44   #10
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,768
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
два плюс три можно сделать? Чтоб я отправил в AX двуху, а в BX 1...
Ежели 2 + 3, то:
Код:
; вызывающая сторона
mov AX, 2
mov BX, 3
int 80h
; ждем результат в AX (соглашение вызова а-ля DOS)

; сторона прерывания
add AX, BX
iret
А если отправить в AX 2, а в BX 1, то 2 + 3 никак не получится.
Vapaamies вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать параметры в main Colobok Общие вопросы C/C++ 8 15.10.2014 14:58
Как передать параметры в SWFUpload Marsik PHP 1 31.07.2010 13:38
Как передать в поток параметры? И как из потока параметры достать? Anekdot Общие вопросы Delphi 2 19.02.2010 22:40
KEY_EVENT_RECORD какие передать параметры? ERASERROR Общие вопросы Delphi 1 21.02.2008 21:55
Как програмно передать параметры на сервер Sniper Работа с сетью в Delphi 2 11.09.2007 10:05