2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
1800 / 2351 ←次へ | 前へ→

【561】Re:最終的には...
←back ↑menu ↑top forward→
 ぬじぬじ E-MAIL  - 04/1/13(火) 10:27 -

引用なし
パスワード
   ▼ひよひよさん:
> とにかく MASM for AMD64 はアレコレ擬似コード周りが変更になっているのですが、資料が少なく(MSDN 以外に見つからない)困っています。最終的にはスタックを介した引数渡しができると良いとは思うのですが...

 呼び出し時のパラメータの受け渡しに関する資料を見つけました。その名も``Calling Convention for AMD 64-Bit Environments'' (@http://msdn.microsoft.com/library/default.asp?url=/library/en-us/kmarch/hh/kmarch/64bitamd_7qqv.asp)。随所に現れる``[This is preliminary documentation and subject to change]''が泣かせます。
 これに拠ると``Integer values are passed (in order left to right) in RCX, RDX, R8, and R9 registers. The caller passes arguments five and above onto the stack.''だそうです。大学のHP-UXなマシンとそっくり。多分``Integer values''てのは64ビットなんだろうなあ。


 取り敢えず
---- ここから ----
<pre><code>
DWORD cpuid(DWORD dwOP, DWORD *lpAX, DWORD *lpBX, DWORD *lpCX, DWORD *lpDX)
{
  if (dwOP == 0) {
    *lpAX = (DWORD)lpAX;
    *lpBX = (DWORD)lpBX;
    *lpCX = (DWORD)lpCX;
    *lpDX = (DWORD)lpDX;
    return 1;
  } else {
    *lpAX = (DWORD)0x00584145;
    *lpBX = (DWORD)0x00584245;
    *lpCX = (DWORD)0x00584345;
    *lpDX = (DWORD)0x00584445;
    return -1;
  }
}

/* ``QWORD''てのを64ビットを表す型に変更してくれ */
QWORD rdtsc()
{
  return 0x0123456789abcdef;
}
</code></pre>
---- ここまで ----
てのをコンパイルしてアセンブリ言語コードを吐いてもらえないでしょうか。

196 hits

【556】.asm ぬじぬじ 04/1/12(月) 22:26 [添付][添付]
【557】Re:.asm ひよひよ 04/1/12(月) 23:24
【558】最終的には... ひよひよ 04/1/13(火) 1:06
【559】Re:最終的には... ぬじぬじ 04/1/13(火) 2:30
【560】Re:最終的には... ひよひよ 04/1/13(火) 8:39
【561】Re:最終的には... ぬじぬじ 04/1/13(火) 10:27
【562】逆転の発想... ひよひよ 04/1/13(火) 12:05 [添付][添付]
【563】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:40 [添付]
【564】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:41 [添付]
【565】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:45 [添付]
【566】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:46 [添付]
【568】Re:逆転の発想... ひよひよ 04/1/13(火) 12:50
【573】CPUID バッチリ ひよひよ 04/1/16(金) 23:55
【567】Re:逆転の発想... ひよひよ 04/1/13(火) 12:48

1800 / 2351 ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
ページ:  ┃  記事番号:   
51982
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free