Adresowanie w C

Mar 22, 2005 4 Replies

Witam !!!



W jaki sposob zdefiniowac tablice bajtow np taka: const char bytes [] = {0, 1, 2, 3, 4}; w taki sposob aby zaczynala sie od okreslonego adresu np: 100.



W asemblerze powinna miec postac:


  • pamiec programu * org 100 bytes: DB 0 DB 1 DB 2 DB 3 DB 4

z gory dziekuje Marcin.



W C(++) nie da sie. Jesli chcesz cos takiego osiagnac, to adres tablicy nalezy wymusic na poziomie linkera. W GCC to jest calkiem proste (pisze sie odpowiedni skrypt) i kilkukrotnie z tego sam korzystalem, a w innych kompilatorach to nie wiem.

Pozdrawiam Piotr Wyderski

To prawda, ze w ansi c nie da sie tego osiagnac, jednak wiele kompilatorow na mikrokontrolery udostepnia pewne rozszerzenia, ale to juz zalezy od konkretnego kompilatora. Napisz pod czym piszesz.

Dziekuje za pomoc.

Chyba zrobie to w asmie i dodam do linkera. uzywam "Microtec Research, Inc. ANSI C Compiler" lub w Introl pod motorole

68332.

Dzieki za odpowiedzi Marcin

hmm no to zalezy od tego pod czym piszesz.. np w mplabie dla pica sie to robi za pomoca dyrektywy #pragma

przyklad: #pragma udata myBuf = 0x0100 char myBuf[50]; #pragma udata

sinaath

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required