プログラムメモリのアドレスを指定する方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ken

プログラムメモリのアドレスを指定する方法

#1

投稿記事 by ken » 18年前

はじめまして

早速質問なのですが、アセンブラでは擬似命令「ORG」でプログラムメモリの先頭番地を指定して命令を書き込むことが出来ますが、同様の処理を(つまりプログラムメモリに書き込み始める番地を指定する)行うプログラムをC言語で記述することは可能でしょうか?

CPU:PIC16F84A
開発環境:MPLAB7.40 もしくは ソースブースト6.0
コンパイラ: PIC-C

管理人

Re:プログラムメモリのアドレスを指定する方法

#2

投稿記事 by 管理人 » 18年前

アセンブラを知らないので、よくわかりません><;
アドレス指定はポインタ位しかわかりません、お力になれず申し訳ないm(_ _||)m

Justy

Re:プログラムメモリのアドレスを指定する方法

#3

投稿記事 by Justy » 18年前

 標準のC言語ではできません。
 プログラムの各セクションのアドレスはリンカ(ないしはOS)が自動的に決めてしまいます。

 しかし、使うコンパイラ・リンカによっては機能が拡張されていて、
コードセクションの位置を自由に決められたり、リンカオプションの設定で、
ORGと同じ事ができるかもしれません。
 でももうそれは機種依存なので、できるかどうかは、コンパイラのマニュアルを見るか、
コンパイラベンダーに問い合わせるしかないと思います。

ken

Re:プログラムメモリのアドレスを指定する方法

#4

投稿記事 by ken » 18年前

ご回答ありがとうございます。

やはり標準のC言語ではできないのですか。
確かに、私が探した有料のコンパイラの中に#pragmaでORGという命令ができるものあり、プログラムメモリ位置の指定ができるようでした。
しかし、#pragmaはコンパイラ依存のプリプロセッサ命令なので、コンパイラに依存しない方法はないのだろうかと模索していましたが、やはりできないということなんですね。

いや~結論が出てスッキリしました。

本当にありがとうございました。

※ちなみに使用しているコンパイラはPIC-Cではなく下位バージョン(フリーソフト)のPICCLITEでした。PIC-Cでは上記の命令が出せるようです。(しかし有料・・・)

ken

Re:プログラムメモリのアドレスを指定する方法

#5

投稿記事 by ken » 18年前

解決マークにチェックし忘れてしまいました。

閉鎖

“C言語何でも質問掲示板” へ戻る