Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь студенту, STRNDUP 
:(
    Опции темы
vi2ir
Дата 12.12.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



Здравствуйте  smile Помогите пожалуйста!!! Мне по архитектуре ЭВМ задали "реализовать функцию strndup в сишной библиотеке <string.h>" на ассемблере... Но нужно, чтобы на языке С она вызывалась... При компиляции должно быть что-то такое gcc mystr.c mystr.s -o mystr  Я честно не очень понимаю как всё это функционирует  :'(... Только учусь... И ещё это должно быть под Linux сделано (ну хотя бы под Windows, и то благодарен буду)  smile
PM MAIL   Вверх
MAKCim
Дата 12.12.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



вот пример
Код

// func.h

extern int func(int a, int b); // return a + b

Код

# func.S

.code32
.text
.globl func
func:
    movl 4(%esp), %eax
    addl 8(%esp), %eax
    ret

Код

// main.c
#include "func.h"

int main()
{
    int a = 10, b = 20;
    printf("%d\n", func(a, b));
    return 0;
}

Код

# gcc main.c func.S -o main
# ./main



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
vi2ir
Дата 12.12.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



ну это я все понимаю, мне нужен конкретный пример я все вот запускаю но она не работает, сейчас покажу мою нерабочую версию....
char* strndup(const char* s, int n) // копирует строку длиной N
{
if(s == zerostring || n == 0) return zerostring;
char* d = strnew(n);
strncpy(d, s, n);
d[n] = 0;
  так сказать как это реализовать ?! так мне обяз . нужен в ассемблере малок, примерно вот так
call malloc
, мы там забили на ход стека 3 адреса, ebx ecx ebx  и вопрос что делать далее???я сейчас найду файд=лы свои с компа универского и вышлю потому как не получается их  скачать со своего мыла!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0395 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.