Как использовать библиотеки C в ассемблере? - PullRequest
4 голосов
/ 29 сентября 2011

Я хочу знать, как написать текстовый редактор на ассемблере.Но современные операционные системы требуют библиотек C, особенно для их оконных систем.Я нашел эту страницу , которая мне очень помогла.

Но мне интересно, есть ли подробности, которые я должен знать.Я знаю достаточно ассемблера для написания программ, которые будут использовать Windows в Linux с использованием GTK +, но я хочу иметь возможность понять, что я должен послать в функцию, чтобы она была допустимым вводом, чтобы было легче использоватьвсе библиотеки CЧто касается взаимодействия между ассемблером C и x86, я знаю, что можно узнать из этой страницы и немного другого.

Ответы [ 3 ]

8 голосов
/ 29 сентября 2011

Один из наиболее поучительных способов узнать, как вызвать C на ассемблере, это:

  1. Напишите программу на C, которая вызывает интересующую функцию C
  2. Скомпилируйте его и посмотрите листинг сборки (gcc -S)

Этот подход позволяет легко экспериментировать, начиная с того, что, как известно, уже работает. Вы можете изменить исходный код C и посмотреть, как изменяется сгенерированный код, а также можете начать с сгенерированного кода и модифицировать его самостоятельно.

2 голосов
/ 29 сентября 2011

Операционная система может определять стандарт вызова (она очень хорошо должна определять стандарт для вызова системных вызовов), и в этом случае вам нужно только найти, где находятся документы, и прочитать его внимательно.

2 голосов
/ 29 сентября 2011
  1. параметр push в стеке
  2. вызов функции
  3. очистить стек

Ссылки, которые вы указали в своем вопросе, показывают все эти шаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...