• ベストアンサー

メモリアドレスについて

こんにちは サーバをアセンブラで出力したデータを参考にして、クライアントを作っています そこで、アセンブラで出力したデータを使っても、サーバの実行時にはメモリアドレスは変わるものでしょうか もしそうであれば、今やってる事は全て無駄になってしまいます よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • kngj1740
  • ベストアンサー率18% (197/1052)
回答No.4

逆アセンブラで出力したものが役に立ったのは絶対アドレスで動作していた8ビットマイコンの時代です。ヘキサダンプのリストを打ち込んでベーシックインタープリーターとか動かしたり、手動逆アセンブルして解析したりしましたよね。

noname#192849
質問者

お礼

的確な回答ありがとうございます >・・・絶対アドレスで動作していた8ビットマイコンの時代です たいへん勉強になりました 私はその時代の人間ではないみたいです 情報が整理できたので、もう少し様子を見てみたいと思います ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

> Windows8 で、VisualStudioExpress2012forWindows8 を使用しています Visual Studio 2012 for Windows 8は使っていないのでよくわかりませんが... そもそもここでいうアセンブラとは何でしょう? for Windows 8で、インラインアセンブラやml64などを使ってというのは、ちょっと考えられないのですが... クロスアセンブラか何かの話でしょうか? サーバーについても結局よくわかりません。 もしかして、アプリケーションサーバーにアクセスしてPICなどのクロスアセンブラを実行し、出力されたロードモジュールを参考にクライアントを作っているとか? 想像で補完すべき部分が多すぎて、まともな結論が導ける可能性はほぼありませんね。

noname#192849
質問者

お礼

何度もありがとうございます 問題は解決しました 仰るとおりです 次回からは、状況を把握して掲示するように致します よろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

最初から意味不明 > サーバをアセンブラで出力したデータ サーバ(ハードウェア)を、アセンブラで出力したデータって 物質的な物をデータ化して保存した??? 現代科学で、そんな事は出来ていません。 そのデータを参考にして、クライアントを作ってる。。。 例えるならば、大人の人をデータ化して、それを元に子供を作ってるって事ですが... もうちょっと人に伝わるような文章を書きましょう。

noname#192849
質問者

お礼

回答ありがとうございます 説明が足りなくてたいへん失礼致しました >例えるならば、大人の人をデータ化して、それを元に子供を作ってるって事ですが・・・ この部分は、今の私の知識では理解できないです 申し訳ありませんが、よろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

サーバというのはどういう意味のサーバですか? さすがにサーバマシンという意味ではないと思いますが、例えばHTMLサーバとかDBサーバとかのアプリケーションですか? それとも、あなた(もしくは誰か)が作成した独自のアプリケーションプロトコルを持つTCPサーバプログラムなのでしょうか。 また、「サーバを逆アセンブルした」とはいったいどういう意味でしょうか。単純に字面だけで解釈すると、「サーバアプリケーションの実行ファイルから逆アセンブラを使ってアセンブリコードを生成し、それ(の一部)をクライアントプログラムのソースに取り込んだ」と取れるのですが、間違いないでしょうか。 # Yahoo!知恵袋と同じ回答内容でアレ。

noname#192849
質問者

お礼

回答ありがとうございます 情報が足りないのに、読み取っていただいてありがとうございました 説明が下手で申し訳ありません 間違いないです 具体的には、アセンブリコードのメモリアドレスを処理しています うまく説明できないのですが、勉強していますのでよろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

プラットフォームや開発環境が不明ですし、サーバー・クライアント・メモリアドレスというのが具体的に何を指しているのかもわかりませんので、何ともいえません。 可能性だけをいえば、変わる可能性は「ある」としかいえません。

noname#192849
質問者

お礼

回答ありがとうございます 情報が足りなくて、失礼致しました Windows8 で、VisualStudioExpress2012forWindows8 を使用しています 勉強中なので「例えば」という形でしか説明できないです 可能性だけを言えば「ある」のですね・・・ たいへん参考になりました よろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 物理メモリの任意のアドレスを直接操作するには?

    物理メモリの任意の物理アドレスのデータに直接書き込んで、データを破壊したいのですが、どうすれば可能でしょうか? OS上からはそのような操作はできないようになっているのでしょうか? アセンブラ?等の言語が必要なのでしょうか?それってOS上で実行できるのでしょうか? とにかく漠然としてて申し訳ありませんが、何かとっかかりを教えていただければありがたいです。 直接操作したいのは物理アドレス上のデータで、仮想アドレス上のデータではないです。

  • & 演算子について教えてください

    こんにちは & 演算子はアドレスを求めるものですが、これはアセンブラ出力したものと同じでしょうか それとも、プログラムの実行時のアドレスを求めているのでしょうか よろしくお願い致します

  • 仮想メモリについて 教えてください

    仮想メモリ関連の既出の質問を探してみたのですが 自分が疑問に思っていることへの回答が見当たらなかったので 質問させていただきます WindowsXPではプログラムを実行する際に プログラム全体及び 関連データをすべて物理メモリまたは仮想メモリに割り当てる のでしょうか? どういうことかと言いますと 例として 物理メモリ256MB 仮想メモリ256MB として 現動作中の空き物理メモリ100MB 空き仮想メモリ256MBの状況で 1 50MBのプログラムを実行した時はすべて物理メモリに割り   当てられるのか? 2 加えて60MBのプログラムを実行した時には10MB分が仮想メモリ   に割り当てられるのか? 3 加えて50MB分のプログラムを実行して そのプログラム上で   300MBのデータを読み込もうとした時には 仮想メモリが少ない   等のエラーが発生するのか? 条件がアバウトかとは思いますが よろしくお願いします

  • ファイル/フォルダアドレスの取得と区別

    VB6 ファイル/フォルダのアドレスを取得してファイル/フォルダの区別を したいのですが、特定の物(サーバー内)がエラーしてしまいます。 リストへ"OLEDragDrop"した時に下記実行させています。 MsgBox Data.Files(1) MsgBox GetAttr(Data.Files(1)) MsgBox Dir(Data.Files(1)) MsgBox Dir(Data.Files(1), vbDirectory) エラーの対象 AとB & 問題無い C A>ファイルの種類:Windows Server A>アドレス:\\server B>コンピューターの種類:Windows Server B>アドレス:\\server\TestB C>ファイルの種類:ファイルフォルダ C>アドレス:\\St_server\TestB\TestC Aは全てエラー >実行時エラー'461': >データの形式が一致しません。 Bはアドレスは取得出来て"Dir"でエラー (GetAttr = 16) >実行時エラー'52': >ファイル名または番号が不正です。 Bはアドレスを取得出来てるのでエラー処理で なんとかなりそうなのですが、Aはアドレスすら取得出来ません。 Aのアドレスを取得するにはどうしたら良いでしょうか? (サーバーは社内管理していて詳しくありません)

  • Perl で MySQL接続の -X オプション(XML出力)を利用したい

    MySQL のコマンドシェルで 接続時に -X オプションを指定すると、SQL結果をXMLで返してくれます。 そこで、これをPerlから利用したいのですが、どうすれば良いのでしょうか。 イメージとしては、以下を考えています。 1.[クライアント]サーバーにデータ取得要求 ↓ 2.[サーバー]MySQLに接続(オプション -X 指定)・SQL実行要求 ↓ 3.[データベース]SQL実行・結果出力(XML) ↓ 4.[サーバー]3の結果をクライアントへ出力(XML) ↓ 5.[クライアント]SQL実行結果受取(XML) せっかくデータベースがXML整形してくれるなら、それを利用したいと考えています。 DBIで出来ないかとCPANを調べてみましたが、それらしい記述を見つけられませんでした。 (英語能力の低さもありますが) 参考になるページ等、ご教示頂ければ有り難く存じます。 以上、失礼いたします。

    • ベストアンサー
    • Perl
  • php.ini以外でメモリ制限ってありますか?

    今、phpexcelを利用して帳票出力を行っているのですが、 こちらで触れないサーバ上で動かなくて困っております。 自前の作業用サーバでは、php.ini上でメモリ制限を解除して動かしているのですが、 問題なく出力されます。 データ環境はmysqlからデータを取得しており、件数が1万件と多く、 出力時の最大メモリ利用量は1Gちょっとです。(罫線描写でかなりメモリを食います) こちらで触れないサーバでphp.iniを1.5Gに解放してもらったのですが、 fatal errorも出ず、ブラウザがそのまま作業中(砂時計マーク)な感じでまったく動かなくなります。 そこでもしかしたら、php.ini以外でメモリを制限しているところがあるのではと考えたのですが、 apaheあたりがあやしいのではと考えました。 他にもメモリ制限するところというのはありますでしょうか。 あちらのサーバ環境は OS:cent os メモリ:4G CPU:core2duo です。 どなたか知識を貸していただけると助かります。よろしくお願い致します。

  • Railsのメモリサイズについて

    Railsを使用して開発をしている者です。 そこで質問があるのですが、実はDBから読み込んだデータをメモリ上に展開して キャッシュ参照するロジックを書いたのですが 試しに大量件数をロードしたらメモリアロケーション(NoMemoryError)の エラーが発生しました。 実行時の環境は下記のとおりです  OS:WindowsVista  Rubyバージョン:1.9.3  Railsバージョン:3.2.6  Server:WebRick  AptanaStudio3の環境から実行 そこで、Railsが使用する最大のメモリサイズがどの程度なのかを 調べてみたのですが、参考書などを調べてみたものの RailsのみならずRubyでも最大メモリサイズの設定等について 言及されている情報が見つかりませんでした。 Java等であれば、実行時のオプションに「-Xmn256m」等と指定して実行する事で 最大ヒープサイズを指定して実行する事が可能かと思いますが Railsにこの様な設定は無いのでしょうか? また、NoMemoryErrorが発生した際にも物理メモリには余裕がありましたので Railsの処理環境で何らかの上限値が存在するものと思いますが その値や設定箇所等もあれば、教えて頂きたいです。

    • ベストアンサー
    • Ruby
  • OSはどのようにして、CPUにメモリ上の物理アドレスを伝えるのか?

    一般的なシステムにおいて、プログラムを実行するには、コンパイラが再配置可能なオブジェクトファイルにして、そのオブジェクトファイルをローダがメモリ上にローディングして、CPUによって実行が行われると認識しています。 では、実際にCPUにより実行される時に、どのようにしてCPUは、ローディングされている物理アドレスを知ることが出来るのですか?一番初めにOSがどのようにCPUに先頭番地を伝えているのかが見当がつきません。例えば、486では、セグメントレジスタの値とオフセットアドレスを加算したアドレスを基にメモリとやり取りしていますが、OSがこのセグメントレジスタに先頭アドレスをどのように格納しているのかを教えてください。お願いします。

  • 変数の文字列を書き換えた時、メモリ上のアドレスは変わりますか?

    変数の文字列を書き換えた時、メモリ上のアドレスは変わりますか? zval構造体上のエントリ、及び、実際のメモリにおけるアドレス、その両方についてお教え下さい。 // 例 <?php $a = 'aa'; $a = 'bb'; ?> 知りたい点は、メモリの節約や実行速度の観点で何らかの工夫が可能なのかどうかという事を考えるためヒントです。 ※「copy on write」に関しては理解しています。

    • 締切済み
    • PHP
  • IPアドレスなどの設定について

    お世話になります。 インターネット用のWi-Fi親機のIPアドレスが192.168.10.3で データベースサーバーのIPアドレスが192.168.10.50の時 クライアント側でインターネットできて データベースサーバーにも接続できる設定はどのようにすればよいのでしょうか。 クライアントのIPアドレスは192.168.10.21です。 ちなみに、 クライアントのデフォルトゲートウェイを192.168.10.3 優先DNSを192.168.10.50にした時 データベースにはpingが通のですが インターネットはできませんでした。 お手数をお掛けしますが教えて頂けませんでしょうか。 よろしくお願いいたします。