X



アセンブラ初心者スレッド 2©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0952デフォルトの名無しさん
垢版 |
2020/12/01(火) 20:53:32.04ID:QGlkeoFk
人がいないスレをわざわざ上げる必要ないので
関係ない話なら他の上がっているスレに書けばいいだろ
0955デフォルトの名無しさん
垢版 |
2020/12/13(日) 02:46:51.94ID:46vi4xSP
素朴な思い付きの疑問なのだけど、どうして書籍としてAMD64の入門書が無いの?
需要も知識ある人も、それなりに居そうだけど。

まさか、AMDから許可がおりないとか?
0959955
垢版 |
2020/12/14(月) 05:46:00.53ID:lPWXZq4e
>>958
店頭在庫を見て歩いて早幾年、無いと思っていたけれどあるのね。
しかし多様性はなさそう。

情報ありがとう。
0962デフォルトの名無しさん
垢版 |
2020/12/14(月) 17:48:08.53ID:yiGrKys0
>>960
プログラミングの本じゃない。プログラミングの前にx64のアーキテクチャを知らないと話にならないだろ。
それを知るための本。
0963デフォルトの名無しさん
垢版 |
2020/12/15(火) 23:33:29.39ID:JKngFzP4
64bitアセンブラの本もあるじゃないか
「64ビットアセンブラ入門―64ビットCPUの基本構造もやさしく解説」 (Amazon)
0964デフォルトの名無しさん
垢版 |
2020/12/16(水) 08:28:24.95ID:4AurUS4h
アセンブラは、C のポインタで躓かないように
Z80 程度を少し (もちろんポインタを使う程度) やればいいと思う。
0966デフォルトの名無しさん
垢版 |
2020/12/16(水) 19:53:44.68ID:xpVb4SZu
>>965
各種レジスタ構成やそれらの性質、仮想記憶のしくみなどを知らずにアセンブラやろうとするのは無謀もいいとこだろう。
Cで書いたコードの一部をアセンブラに書き換えて変更したり最適化するとき、Cのコードに対応するアセンブラソースが
どうなっているか見るにはCで何をしようとしているかわからないと話にならないだろう。
こういうことは知ってて損することはない。
0967デフォルトの名無しさん
垢版 |
2020/12/19(土) 08:32:12.96ID:SL5FUo+H
>>963
その本、Cから呼び出す前提だったから、アセンブラでの変数宣言の仕方は載ってない。
0969デフォルトの名無しさん
垢版 |
2020/12/19(土) 20:11:53.26ID:TfP5rB1Q
CD21 を学習しないとなw
0971デフォルトの名無しさん
垢版 |
2020/12/20(日) 04:41:50.25ID:mOcnJILL
>>970
Cコンパイラが生成したアセンブラよく読んだよ
0972デフォルトの名無しさん
垢版 |
2020/12/20(日) 12:47:01.51ID:NmAfNXJq
>>967
int some_data = 5;
という変数は、アセンブラでは以下のようにすると定義できる:
_DATA segment DWORD
_some_data dd 5
_DATA ends

dd は、define dword の意味。db だと byte, dw だと word、となる。
構造体の場合は、struc を使うか、または、メンバのdd,dw,dbをそのまま並べる。
自動 align はされないので、alignment をとりたい場合は、自分で pading するか、
align 擬似命令か、even 擬似命令を使う。
0973デフォルトの名無しさん
垢版 |
2020/12/20(日) 12:48:36.41ID:NmAfNXJq
_DATA segment DWORD
の部分の DWORD は、そのセグメントの先頭を、DWORD でアラインする、という
意味。つまり、セグメントの先頭アドレスが 4 の倍数に配置される。
省略も可能。
アラインメントをしなくてもプログラムは動くが、少し遅くなることが有る。
0974デフォルトの名無しさん
垢版 |
2020/12/21(月) 08:58:26.80ID:LKkS73pR
>>973
いやいや、bus errorでしょもう。
0975デフォルトの名無しさん
垢版 |
2020/12/21(月) 11:00:51.03ID:i3HSzHFO
今時のISAはアライメントズレでロード/ストアした場合でも遅くなるだけじゃね
IA32、AMD64、ARM、RX、RISC-V
あたりはアライメントがずれていても例外は吐かないように見える
0976デフォルトの名無しさん
垢版 |
2020/12/21(月) 13:34:54.19ID:xeeueWnS
>>974
x86, AMD64 だと 読み書きが遅くなるだけで bus error にはならない。
但し、スタックポインタの値は 4 または 8 の倍数になっていないと
例外が起きる仕組みがある。
0977デフォルトの名無しさん
垢版 |
2020/12/21(月) 13:38:38.63ID:xeeueWnS
構造体メンバのアラインメントも、x86, AMD64 では速度面以外では必要ではない。
他の系統のCPUでは、アラインメントが揃ってないと読み込めない様になっている
ことがあるが、x86, AMD64 の人から見ると、そういったCPUに足をひきづられて
ウザイことがある。
そういうCPUのために、x86, x64 では不要の構造体のアラインメントなどウルサすぎる。
0978デフォルトの名無しさん
垢版 |
2020/12/21(月) 14:24:05.05ID:xeeueWnS
構造体メンバのアラインは、x86、x64でも速度のために有ったほうが良いかも
知れないが、バイナリファイルの中の32BIT整数の部分をアラインするのは、
ちょっと抵抗を感じることがある。
ファイルの場合、読み込み速度よりサイズの小ささが重要だと思うので。
他のCPUでは読み込めないなら、そのCPUの設計が欠陥だとも考えられるし、
そんなCPUの事まで配慮してサイズが増大するのはいい迷惑。
0979デフォルトの名無しさん
垢版 |
2020/12/21(月) 17:07:46.38ID:GZaqA6YK
バイナリファイル解析してるとアライン考慮部分と全く配慮してないが混在されてるのがまれによくある
0980デフォルトの名無しさん
垢版 |
2020/12/21(月) 19:28:27.84ID:LKkS73pR
アライメントなんかアセンブルディレクティブ疑似命令で自動でやってくれるでしょ.sizeofとかもアライメント考慮してサイズ返してくれるし。
コンパイラが再生するデータ構造はアライメント合わせされてる。x86でオプティマイズサイズだとされないか。
0981デフォルトの名無しさん
垢版 |
2020/12/21(月) 20:01:53.70ID:Ttyv2kNo
高性能PC!!
を謳ってる配信でintelが全く見当たらなくなったのは隔世の感があるな。
配信してる超絶プログラマさんももうAMDしか選択肢がない言うてた
0996デフォルトの名無しさん
垢版 |
2021/01/03(日) 18:36:17.00ID:GJkrCLRp
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1361日 23時間 35分 51秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況