前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
2011/08/28(日) 15:24:40.59
321デフォルトの名無しさん
2017/08/27(日) 19:35:50.63ID:gTD+3SIf しまった、バレてしまった
322デフォルトの名無しさん
2017/08/27(日) 20:09:47.58ID:02V7/aD0 >>314
マクロは文法とは違って単純に命令の塊を置き換えたもの。
ライブラリや文法よりはCのマクロが近い。
高級言語の場合、その言語のライブラリだったりランタイムがある。
だからアセンブラの中でも高級アセンブラって言われたりもするが、高級言語とは違う。
ループや分岐をGUI部品でとなると、それはマクロではなく文法のGUI化で、それはもう高級言語。
マクロは文法とは違って単純に命令の塊を置き換えたもの。
ライブラリや文法よりはCのマクロが近い。
高級言語の場合、その言語のライブラリだったりランタイムがある。
だからアセンブラの中でも高級アセンブラって言われたりもするが、高級言語とは違う。
ループや分岐をGUI部品でとなると、それはマクロではなく文法のGUI化で、それはもう高級言語。
323デフォルトの名無しさん
2017/08/27(日) 20:27:15.96ID:02V7/aD0 自分で言ってて分かりにくいな。
アセンブラのマクロは機械語と一対一命令に変換出来るのはアセンブラが機械語と一対一だから当然として、高級言語は高級言語の文法が機械語に一対一対応では無いので変換出来ない。
この機械語と一対一に変換可能かどうかが低級か高級の分かれ目じゃ無いかと思う。
なのでマクロをGUI部品にするならループとかの文法的なのじゃなくて、命令の塊を入れるフォルダー的な物になるんじゃ無いかな。
引数付きフォルダー?
アセンブラのマクロは機械語と一対一命令に変換出来るのはアセンブラが機械語と一対一だから当然として、高級言語は高級言語の文法が機械語に一対一対応では無いので変換出来ない。
この機械語と一対一に変換可能かどうかが低級か高級の分かれ目じゃ無いかと思う。
なのでマクロをGUI部品にするならループとかの文法的なのじゃなくて、命令の塊を入れるフォルダー的な物になるんじゃ無いかな。
引数付きフォルダー?
324デフォルトの名無しさん
2017/08/27(日) 20:41:51.40ID:02V7/aD0 x低級か高級の分かれ目
o高級アセンブラか高級言語の分かれ目
ああ、でもCも高級アセンブラって言われることあるから、上げ足取りされそう。
o高級アセンブラか高級言語の分かれ目
ああ、でもCも高級アセンブラって言われることあるから、上げ足取りされそう。
325デフォルトの名無しさん
2017/08/27(日) 21:08:35.40ID:19jJdQXE アセンブラが機械語と一対一?
あほですか?
あほですか?
326316
2017/08/28(月) 06:09:23.24ID:DdfTeNHz KKCBM/yI の言う「構造化」って何のことだったのかな。
何が気に障ったのか本当に解らないよ。
何が気に障ったのか本当に解らないよ。
327デフォルトの名無しさん
2017/08/28(月) 10:48:47.51ID:D1yS1ByC 機械語ひとつに対してニーモニックは複数である場合が多い
って話か?
って話か?
328デフォルトの名無しさん
2017/08/28(月) 21:34:01.36ID:NyxZdcAB 機械語だけあったって完全には逆アセできねーだろってことじゃね?
329デフォルトの名無しさん
2017/08/28(月) 22:04:27.60ID:RdiCBSRu μOpとか言ったら笑ってあげる。
330デフォルトの名無しさん
2017/08/28(月) 22:30:39.97ID:Wq6HqE7w 同一命令に対して複数の表記があるのは普通だし、
逆にアセンブラでは(命令の形では)記述できないようなのもあったりもする
即値によって命令を自動で変えてしまうとか
特定のプレフィックスを指定できなかったり
アセンブラは決して一対一を目指してるわけではない
逆にアセンブラでは(命令の形では)記述できないようなのもあったりもする
即値によって命令を自動で変えてしまうとか
特定のプレフィックスを指定できなかったり
アセンブラは決して一対一を目指してるわけではない
331デフォルトの名無しさん
2017/08/28(月) 23:42:36.93ID:D1yS1ByC まぁ実装の問題もあるわな
332デフォルトの名無しさん
2017/08/29(火) 00:03:33.22ID:f2JWn62j やっぱり、「。」つけてる例のバカはバカだったな
333デフォルトの名無しさん
2017/08/29(火) 06:25:34.28ID:gQsqxoLN 最近のCPUって中はμOpなんだし
外にも公開してでプログラミング可能にすれば効率よくね?
外にも公開してでプログラミング可能にすれば効率よくね?
334デフォルトの名無しさん
2017/08/29(火) 06:52:35.51ID:zRd23tG/ >>333
よくない
よくない
335デフォルトの名無しさん
2017/08/29(火) 06:55:33.84ID:H/OLcuRc それがIA64(Itanium)だったけど、互換性の壁に敗れた。
それに現行だと変換後、直接実行か0次キャッシュからしか参照しないから将来どっちもメモリから受け付けるアーキテクチャ出すとかしないと意味はない。
あとμOpはAMD CPUと互換性ない。
それに現行だと変換後、直接実行か0次キャッシュからしか参照しないから将来どっちもメモリから受け付けるアーキテクチャ出すとかしないと意味はない。
あとμOpはAMD CPUと互換性ない。
336デフォルトの名無しさん
2017/08/30(水) 17:30:16.00ID:3QQJo/no 恐ろしいほど知能の低いのが混じってるな
なんだこのスレ
なんだこのスレ
337デフォルトの名無しさん
2017/08/30(水) 18:27:48.35ID:BuqEyJow 本当にできる人は自分よりレベルの低い人を見下したりはしない
338デフォルトの名無しさん
2017/08/30(水) 18:36:59.01ID:adOdgZpw そうでもない
339デフォルトの名無しさん
2017/08/30(水) 19:53:12.85ID:BuqEyJow 初心者や素人相手にむきになってもなんにもならない
340デフォルトの名無しさん
2017/08/30(水) 19:54:54.75ID:Pdb+WdzA 見下しても言わないだけ
341デフォルトの名無しさん
2017/08/30(水) 21:24:07.57ID:2y0wlCVG >>335
x86も元々はuOPなんてものはなく、そのまま実行してたんだよ
x86も元々はuOPなんてものはなく、そのまま実行してたんだよ
342デフォルトの名無しさん
2017/08/30(水) 21:24:59.60ID:2y0wlCVG >>337
おれは天才だけど、他人を見下すの大好き
おれは天才だけど、他人を見下すの大好き
343デフォルトの名無しさん
2017/08/30(水) 22:05:42.68ID:LHMhk1GJ >>341
知ってますよ〜。
高速化の過程でRISC風命令に変換するようになったんですよね?
だから、最初からRISC命令なIA64はμOpに対する最適化の集大成+α。
Intelが思ってたほどコンパイラの最適化が出来なくてVLIW(だったっけ?)が上手くいかなかったらしいけど。
(上手く出来るコンパイラ作るのが難し過ぎたらしい)
もっと安くしてモバイルや組み込みから攻めてたら、もう少しいけてたかもなと考えると勿体無かった。
知ってますよ〜。
高速化の過程でRISC風命令に変換するようになったんですよね?
だから、最初からRISC命令なIA64はμOpに対する最適化の集大成+α。
Intelが思ってたほどコンパイラの最適化が出来なくてVLIW(だったっけ?)が上手くいかなかったらしいけど。
(上手く出来るコンパイラ作るのが難し過ぎたらしい)
もっと安くしてモバイルや組み込みから攻めてたら、もう少しいけてたかもなと考えると勿体無かった。
344デフォルトの名無しさん
2017/08/31(木) 02:00:28.55ID:Ce9FMcgb コンパイラに頼ってたら長続きしないよ
命令互換でもCPUによって命令のスループットもレイテンシもuOPも違うんだから
命令互換でもCPUによって命令のスループットもレイテンシもuOPも違うんだから
345デフォルトの名無しさん
2017/08/31(木) 02:02:30.36ID:Ce9FMcgb x64はuOP変換前提だとそんなに悪くない
苦手な処理は新命令で補ったし
レジスタも増えたし
苦手な処理は新命令で補ったし
レジスタも増えたし
346デフォルトの名無しさん
2017/08/31(木) 10:32:46.72ID:4kiwjrBM >>342
じゃあ自分が思ってるほどじゃないんだよ。
じゃあ自分が思ってるほどじゃないんだよ。
347デフォルトの名無しさん
2017/08/31(木) 12:39:49.71ID:aPsP1NJ+ 根拠は?
348デフォルトの名無しさん
2017/08/31(木) 17:30:25.56ID:XJvlWFRX 天才にしかわからない
349デフォルトの名無しさん
2017/09/01(金) 11:34:57.90ID:siO2MJpg 口だけじゃなくて、やねうらおみたいに実績で示して
あの人は自分で自分を天才って言ってるけどそれだけのことはしているからね
あの人は自分で自分を天才って言ってるけどそれだけのことはしているからね
350デフォルトの名無しさん
2017/09/01(金) 13:57:24.70ID:zbcYwfzz351デフォルトの名無しさん
2017/09/01(金) 15:03:08.91ID:pDFuyP/L アミバは実際天才だからな。
352デフォルトの名無しさん
2017/09/01(金) 19:41:57.58ID:8lqQTxz5353デフォルトの名無しさん
2017/09/02(土) 09:28:37.65ID:1XOwz87o >>351
天才なのに 「ん!?まちがったかな・・・」 とか言うし
http://blog-imgs-45.fc2.com/b/u/s/bushsitsuren/20120112223317f0b.jpg
天才なのに 「ん!?まちがったかな・・・」 とか言うし
http://blog-imgs-45.fc2.com/b/u/s/bushsitsuren/20120112223317f0b.jpg
354デフォルトの名無しさん
2017/10/15(日) 13:58:03.79ID:DMOHal5+ ちょっとお尋ねします
手続きカウンタの値により手続き順に処理を飛ばすプログラムを考えています
この時手続きカウンタの評価が先頭につきますが
このオーバーヘッドがいやなのでProgramCounterに次の処理の飛び先をロードしてjumpさせたいのですが
if 手続きカウンタ==1 jump 処理1:
if 手続きカウンタ==2 jump 処理2:
:
if 手続きカウンタ==n jump 処理n: 手続きnが多いとオーバーヘッドが無視できなくなる
else 出口:
処理1: {
:
jump_出口:
手続きカウンタ +=1 } // ここをPCに代入するための飛び先番地に変更
処理n: {
:
手続きカウンタ=1(手続きカウンタ初期化) // ここをPCに代入するための処理1の飛び先番地に変更
jump_出口: }
出口:
通常のCPUのJUMP命令は直値のみでレジスタ間接は無いので変化球技で実現する必要があります
こんな変なことをやって居る方はおられますか? 又、どのように実現したのでしょうか?
手続きカウンタの値により手続き順に処理を飛ばすプログラムを考えています
この時手続きカウンタの評価が先頭につきますが
このオーバーヘッドがいやなのでProgramCounterに次の処理の飛び先をロードしてjumpさせたいのですが
if 手続きカウンタ==1 jump 処理1:
if 手続きカウンタ==2 jump 処理2:
:
if 手続きカウンタ==n jump 処理n: 手続きnが多いとオーバーヘッドが無視できなくなる
else 出口:
処理1: {
:
jump_出口:
手続きカウンタ +=1 } // ここをPCに代入するための飛び先番地に変更
処理n: {
:
手続きカウンタ=1(手続きカウンタ初期化) // ここをPCに代入するための処理1の飛び先番地に変更
jump_出口: }
出口:
通常のCPUのJUMP命令は直値のみでレジスタ間接は無いので変化球技で実現する必要があります
こんな変なことをやって居る方はおられますか? 又、どのように実現したのでしょうか?
355デフォルトの名無しさん
2017/10/15(日) 14:23:06.17ID:UA81qQu7 x86とかならjump [mem] やjump reg があるよ
場合によっては、スタックに戻り先とジャンプ先を積んでretしてもいい
場合によっては、スタックに戻り先とジャンプ先を積んでretしてもいい
356デフォルトの名無しさん
2017/10/15(日) 14:58:16.97ID:DMOHal5+ pushしてretで問題なさそうなのかな?
357デフォルトの名無しさん
2017/10/15(日) 15:46:55.94ID:t3Tl1KPU いや普通のCPUにはレジスタ間接ジャンプあるよね?
358デフォルトの名無しさん
2017/10/15(日) 15:56:01.94ID:29cWpLj+ 普通とは何か
359デフォルトの名無しさん
2017/10/15(日) 16:10:57.55ID:DMOHal5+ わいの今使ってるCPUのニーモニックを目を皿のようにして探しているんだが
レジスタ間接ジャンプがないんやでえええ
見方が悪いのかもな 普通そんなことありえないか・・・そうだよな?
テーブルジャンプなんて普通に使うもんな
レジスタ間接ジャンプがないんやでえええ
見方が悪いのかもな 普通そんなことありえないか・・・そうだよな?
テーブルジャンプなんて普通に使うもんな
360デフォルトの名無しさん
2017/10/15(日) 19:28:04.82ID:UKOQlcto なぜCPU名を出さないのか
361デフォルトの名無しさん
2017/10/16(月) 00:11:29.28ID:7Byc8Q4r Cコンパイラがあるならswitchでコード書いてアセンブラソース吐かせろ
多分テーブルジャンプになるんじゃないかな
多分テーブルジャンプになるんじゃないかな
362デフォルトの名無しさん
2017/10/16(月) 00:41:14.47ID:+2vhlmuF Cコンパイラが使える環境なのか?
なら素直にCで書けば
なら素直にCで書けば
363デフォルトの名無しさん
2017/10/16(月) 00:53:45.76ID:+2vhlmuF 本当にジャンプ位置をダイナミックに決められないのなら、
2分検索とかでいいし、率がわかっているならもうちょっと頭の良い方法でも良い
1個ずつ分岐するのは大抵の場合効率が悪い
2分検索とかでいいし、率がわかっているならもうちょっと頭の良い方法でも良い
1個ずつ分岐するのは大抵の場合効率が悪い
364デフォルトの名無しさん
2017/10/16(月) 10:06:32.25ID:ZoMoe7Af PIC最強説
365デフォルトの名無しさん
2017/10/16(月) 23:15:30.19ID:7Byc8Q4r ID:DMOHal5+はハマってるのかな?
MCS51じゃあないよな
MCS51じゃあないよな
366デフォルトの名無しさん
2017/10/19(木) 14:46:11.08ID:PDXlRjtm >>354の質問者はおそらくAVRを使ってる
なぜどんなCPUなのか言わないのだろうか
https://rio2016.5ch.net/test/read.cgi/denki/1499338233/472
なぜどんなCPUなのか言わないのだろうか
https://rio2016.5ch.net/test/read.cgi/denki/1499338233/472
367デフォルトの名無しさん
2017/10/21(土) 12:23:18.47ID:Hb3Ud/Wn マルポかよ
368デフォルトの名無しさん
2017/10/21(土) 12:37:28.95ID:Hb3Ud/Wn avrってメモリ保護とかあるの?
なければ
・jmp命令とオペランド(飛び先)をテーブルにする
・機能番号でテーブルからjmp命令を拾ってくる
・次のjmp命令を書き換える
だけじゃねぇか
そこだけram上でやればいい
なければ
・jmp命令とオペランド(飛び先)をテーブルにする
・機能番号でテーブルからjmp命令を拾ってくる
・次のjmp命令を書き換える
だけじゃねぇか
そこだけram上でやればいい
369デフォルトの名無しさん
2017/10/21(土) 12:43:29.62ID:Hb3Ud/Wn 多分岐switchのアセンブラ出力をパクるのが一番か
370デフォルトの名無しさん
2017/10/21(土) 17:27:43.74ID:bi24XV0V 関数ポインタが確実だろ。switchはifでも実装できる。
371デフォルトの名無しさん
2017/10/21(土) 17:38:39.45ID:Hb3Ud/Wn >>354の話だってばよ
372デフォルトの名無しさん
2017/10/21(土) 17:42:19.75ID:Hb3Ud/Wn あー関数テーブルか失礼
C使えるんだからソレでいいと思うけどね
C使えるんだからソレでいいと思うけどね
373デフォルトの名無しさん
2017/10/21(土) 22:42:12.67ID:xF2clArK AVRなら、IJMPというそのまんまな名前の間接ジャンプ命令があるようだ。
374デフォルトの名無しさん
2017/10/23(月) 17:28:39.31ID:WoZMAj8B 355は死刑で
375デフォルトの名無しさん
2017/10/23(月) 17:31:11.48ID:lCIoxZis 罪linkx
376355
2017/10/23(月) 17:36:41.36ID:zdzyG1CL なんで俺が死刑なんだよ
変なことは書いてないだろ
変なことは書いてないだろ
377デフォルトの名無しさん
2017/10/25(水) 02:43:07.93ID:Pns1W9gd378デフォルトの名無しさん
2017/10/25(水) 06:49:51.77ID:v5v2xyVM 死刑だな
379デフォルトの名無しさん
2017/10/25(水) 11:34:04.42ID:32/KECdp 解散権の乱用ですね
判りますω
判りますω
380デフォルトの名無しさん
2017/10/29(日) 16:53:13.43ID:crR+gSB3 ┌○┐
│死|ハ,,ハ
│ |゚ω゚ )
│刑| //
└○┘ (⌒)
し⌒
│死|ハ,,ハ
│ |゚ω゚ )
│刑| //
└○┘ (⌒)
し⌒
381デフォルトの名無しさん
2017/11/07(火) 14:26:10.97ID:r6tXNL/D ┌○┐
│ハ|ハ,,ハ
│ |゚ω゚ )
│ゲ| //
└○┘ (⌒)
し⌒
│ハ|ハ,,ハ
│ |゚ω゚ )
│ゲ| //
└○┘ (⌒)
し⌒
382デフォルトの名無しさん
2017/11/20(月) 21:59:38.86ID:rEMfU00Y 大熱血アセンブラは重すぎて鈍器にもならねえ
383デフォルトの名無しさん
2017/11/20(月) 23:15:25.06ID:mTrCmqdc 1164ページw
でも、PowerPCとか需要あるのか?
でも、PowerPCとか需要あるのか?
384デフォルトの名無しさん
2017/11/22(水) 15:04:01.45ID:t4MJ2LxN アセンブラ自体だけじゃ無くて、考え方を考える本でもあるからな。
385デフォルトの名無しさん
2017/11/28(火) 09:34:55.81ID:PHeqRDr4 考え方を考える本で考えろってことか
386デフォルトの名無しさん
2017/11/29(水) 17:28:15.51ID:oYG4N3SV ★☆☆☆☆w
virtex-6以降はpowerpcコア搭載タイプ無いのかすぃら?
virtex-6以降はpowerpcコア搭載タイプ無いのかすぃら?
387デフォルトの名無しさん
2018/02/28(水) 17:54:56.02ID:F8/eMdWm 6800の本買ってしまった
388デフォルトの名無しさん
2018/04/11(水) 07:16:49.80ID:5X4H9iqq Z80の本買ってしまった
389デフォルトの名無しさん
2018/04/11(水) 12:27:17.38ID:bG1z7LTF Z80の本が出たときは我慢出来たけど
6800の本が出たときは逝ってしまった
6800の本が出たときは逝ってしまった
390デフォルトの名無しさん
2018/04/14(土) 19:53:08.11ID:xcHHAJfd zeas88
一月かけて入力して動かなかった
三月かけてダンプをチェックしても動かなかった
思い出した
一月かけて入力して動かなかった
三月かけてダンプをチェックしても動かなかった
思い出した
391デフォルトの名無しさん
2018/04/25(水) 00:43:07.11ID:KmWV+oH4 漢は6502だろ
廃人とも言えるけど
廃人とも言えるけど
392デフォルトの名無しさん
2018/05/23(水) 19:48:01.34ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
VM3VN
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
VM3VN
393デフォルトの名無しさん
2018/06/13(水) 10:15:03.20ID:lSIEjw1a 32032だろ
394デフォルトの名無しさん
2018/07/05(木) 01:47:01.59ID:RfoszcD2 RS0
395デフォルトの名無しさん
2018/07/22(日) 14:25:46.10ID:DTqvFT3x >>390
Bと8を見間違えてる
Bと8を見間違えてる
396デフォルトの名無しさん
2018/09/05(水) 04:25:32.38ID:qK+vip/P Intel記法とAT&T記法ってどっちがいいと思う?
思う? とか訊いておいて 実は俺のなかではAT&T記法のほうがいいと思ってるw
例えば
add eax,4
addl $4,%eax
という命令があってAT&T記法のほうはUnixで用いられているコマンド
(というかOS/2系列でも同じようなコマンドがあるが)
$ copy aaa.txt bbb.txt
の文法に並びがそっくりだし,変数に$を前置するというのもUnixで最もよく用いられているB系シェルの
変数を表わす規則と同じ。レジスタに%が付いてるのも分かりやすいと思う。
今主流なのはIntel記法なので 残念ながら俺は少数派なんだろうがw
思う? とか訊いておいて 実は俺のなかではAT&T記法のほうがいいと思ってるw
例えば
add eax,4
addl $4,%eax
という命令があってAT&T記法のほうはUnixで用いられているコマンド
(というかOS/2系列でも同じようなコマンドがあるが)
$ copy aaa.txt bbb.txt
の文法に並びがそっくりだし,変数に$を前置するというのもUnixで最もよく用いられているB系シェルの
変数を表わす規則と同じ。レジスタに%が付いてるのも分かりやすいと思う。
今主流なのはIntel記法なので 残念ながら俺は少数派なんだろうがw
397デフォルトの名無しさん
2018/09/05(水) 11:09:53.34ID:/V9AsOwQ add eax,4
398デフォルトの名無しさん
2018/09/05(水) 11:43:54.77ID:H+vUIk5X addはどっちでもいいけどsubがなあ
399デフォルトの名無しさん
2018/09/05(水) 11:52:27.66ID:vQx16S6k400デフォルトの名無しさん
2018/09/05(水) 17:15:48.86ID:vQx16S6k 雑誌に書いてあったバイナリコード :
・・・ A B ・・・SUM1
・・・ B A ・・・SUM2
間違って入力したコード
・・・ B A ・・・SUM1
・・・ A B ・・・SUM2
これだと、横・縦の両方のチェックサムが雑誌と同じになってしまう。
・・・ A B ・・・SUM1
・・・ B A ・・・SUM2
間違って入力したコード
・・・ B A ・・・SUM1
・・・ A B ・・・SUM2
これだと、横・縦の両方のチェックサムが雑誌と同じになってしまう。
401デフォルトの名無しさん
2018/09/24(月) 17:55:23.64ID:7SQMHJ5j >>396
gccでIntel記法でアセンブラ出力できるよ
gcc -S -masm=intel hogehoge.c
インラインアセンブラでIntel記法使う場合も
gcc -masm=intel hogehoge.c
objdumpでIntel記法で逆アセンブルする場合は
objdump -M intel -d hogehoge.obj
gccでIntel記法でアセンブラ出力できるよ
gcc -S -masm=intel hogehoge.c
インラインアセンブラでIntel記法使う場合も
gcc -masm=intel hogehoge.c
objdumpでIntel記法で逆アセンブルする場合は
objdump -M intel -d hogehoge.obj
402デフォルトの名無しさん
2018/09/25(火) 18:08:32.86ID:XWt3PJqd 淫乱なやつめ
403デフォルトの名無しさん
2018/09/27(木) 01:21:30.14ID:GWQb325r 396ですが,AT&T記法を中心に学ぶことにしました。
理由は,2つあり,
・OSの勉強をするためにこれから読んでいこう(というか既に読んでいる)
UNIX v6 for x86のアセンブラがAT&T記法である
・仕事でアセンブラを使う訳ではないので,今現在普及しているものでなくてよい
つまりIntelが発表するCPUの最新機能を使ったりする機会がないので
枯れた情報しかないAT&T記法でも十分やっていけると考えた
ということです。
まあ,チラ裏ですが,これから個人でアセンブラを学ぶとしてる人が見てれば参考にして下さい。
理由は,2つあり,
・OSの勉強をするためにこれから読んでいこう(というか既に読んでいる)
UNIX v6 for x86のアセンブラがAT&T記法である
・仕事でアセンブラを使う訳ではないので,今現在普及しているものでなくてよい
つまりIntelが発表するCPUの最新機能を使ったりする機会がないので
枯れた情報しかないAT&T記法でも十分やっていけると考えた
ということです。
まあ,チラ裏ですが,これから個人でアセンブラを学ぶとしてる人が見てれば参考にして下さい。
404デフォルトの名無しさん
2018/09/27(木) 03:14:00.28ID:3iNJ0doV Intel・AT&T 記法を抽象化した、仮想アセンブラのLLVM で学べ!
情報処理資格でも、仮想アセンブラのCASL 2
情報処理資格でも、仮想アセンブラのCASL 2
405デフォルトの名無しさん
2018/09/27(木) 05:41:06.10ID:fZkL81UT gdbの逆アセンブラも
set disassembly-flavor intel
と打ち込めばIntel記法で逆アセンブルしてくれる
デフォルトでIntel記法にしたいならホームディレクトリの.gdbinitに上記を記述
詳しくはググると出てくるかも
set disassembly-flavor intel
と打ち込めばIntel記法で逆アセンブルしてくれる
デフォルトでIntel記法にしたいならホームディレクトリの.gdbinitに上記を記述
詳しくはググると出てくるかも
406デフォルトの名無しさん
2018/09/27(木) 06:24:39.43ID:fZkL81UT ARMは
mov r0, #4
64bitのARMは
mov x0, #4
と右から左
MIPSも
li $4, 4
RISC-Vも
li a0, 4
と右から左
PowerPCも
li %r3, 4
と右から左
今のパソコンやサーバでメジャーなCPUの多くが右から左
mov r0, #4
64bitのARMは
mov x0, #4
と右から左
MIPSも
li $4, 4
RISC-Vも
li a0, 4
と右から左
PowerPCも
li %r3, 4
と右から左
今のパソコンやサーバでメジャーなCPUの多くが右から左
407デフォルトの名無しさん
2018/09/27(木) 08:56:29.52ID:GWQb325r しかしどうして右から左に読むのでしょうね。
英語だと特に
move number to address
と自然に読み下せるのに。(というかニーモックってまさにその目的の筈では……)
英語だと特に
move number to address
と自然に読み下せるのに。(というかニーモックってまさにその目的の筈では……)
408デフォルトの名無しさん
2018/09/27(木) 08:59:24.20ID:0mnt6zHc >>407
代入文が a=b だから
代入文が a=b だから
409デフォルトの名無しさん
2018/09/27(木) 10:12:23.20ID:+X2PETpr 左右なんてどっちでもいい
記法もどっちでもいい
もっと本質的なことに頭使え
記法もどっちでもいい
もっと本質的なことに頭使え
410デフォルトの名無しさん
2018/09/27(木) 10:27:51.73ID:lockuNq+ アセンブラの本質って機械語不便だからわかりやすくする記法なのに
それに気を使わずにどこに頭使うの?
それに気を使わずにどこに頭使うの?
411デフォルトの名無しさん
2018/09/27(木) 11:04:46.72ID:JRG0evD8 >>407
ある種の文化の衝突が起きていると思う。
事実標準に近かったZ80などでは、語順的には、今「Intel記法」と
呼ばれているものだった。でもIntel記法よりも洗練されている
感じだった。それが、人気があったひとつの理由だと思ってる。
でも、学者などは、さかさまに固執するような印象が多い気がする。
なんでも市場や事実標準とは逆を好む天邪鬼みたいな姿勢の人が多い。
たとえば、NEC機が流行っていたころは、京大構内では日立マシンが標準だった。
今、Windowsマシンが標準なのに、灯台ではMacが標準。
ある種の文化の衝突が起きていると思う。
事実標準に近かったZ80などでは、語順的には、今「Intel記法」と
呼ばれているものだった。でもIntel記法よりも洗練されている
感じだった。それが、人気があったひとつの理由だと思ってる。
でも、学者などは、さかさまに固執するような印象が多い気がする。
なんでも市場や事実標準とは逆を好む天邪鬼みたいな姿勢の人が多い。
たとえば、NEC機が流行っていたころは、京大構内では日立マシンが標準だった。
今、Windowsマシンが標準なのに、灯台ではMacが標準。
412デフォルトの名無しさん
2018/09/27(木) 11:13:26.21ID:JRG0evD8 >>411
学者は、事実標準に逆らったことをするのが大好き。なぜなら、そうすれば、
自分たちが優位になると思っているから。
たとえば、数式処理プログラムのMaximaも、LISPで書かれているし、
AI関連のライブラリが充実している言われる、Pythonも然り。
東大がMacを標準にしたのは、表向きはMSの独占的地位を破壊するため
かも知れないが、裏には、プログラミングが得意な学生に学者が負ける
と面目を保てなくなるのが困るからではないかと考えられている。
学者は、事実標準に逆らったことをするのが大好き。なぜなら、そうすれば、
自分たちが優位になると思っているから。
たとえば、数式処理プログラムのMaximaも、LISPで書かれているし、
AI関連のライブラリが充実している言われる、Pythonも然り。
東大がMacを標準にしたのは、表向きはMSの独占的地位を破壊するため
かも知れないが、裏には、プログラミングが得意な学生に学者が負ける
と面目を保てなくなるのが困るからではないかと考えられている。
413デフォルトの名無しさん
2018/09/27(木) 11:57:48.40ID:314u9gDI 開発者のMac率の高さ考えたらただの言いがかり
414デフォルトの名無しさん
2018/09/27(木) 17:46:24.04ID:GWQb325r415デフォルトの名無しさん
2018/09/27(木) 19:08:47.41ID:fZkL81UT UNIX v6やv7が使われた16bitミニコンのPDP-11やBSDが使われたVAX11が左から右の記法だった
PDP-11からの影響を受けた680x0も左から右
だから1970年代、1980年代前半から半ばまでのUNIX界隈では左から右が主流だった
だからx86のAT&T記法が左から右なんだろうな
1980年代終り頃に普及したMIPS、POWERが右から左の記法
(よく知らないがSPARCやPA-RISCは左から右のようだ)
要するに左から右の記法はPDP-11の影響を受けてるわけだ
(VAX11はPDP-11の後継の32bitミニコン)
SPARC、PA-RISCが左から右なのは
680x0を使ったワークステーションの後継機種用のCPUとして作られたからだろうな
今でも680x0の影響を受けてるCPUは左から右
逆に言えば、パソコンやサーバ、スマホなどは
PDP-11、VAX11、680x0などのCPUの影響を受けてないCPUが主流
PDP-11からの影響を受けた680x0も左から右
だから1970年代、1980年代前半から半ばまでのUNIX界隈では左から右が主流だった
だからx86のAT&T記法が左から右なんだろうな
1980年代終り頃に普及したMIPS、POWERが右から左の記法
(よく知らないがSPARCやPA-RISCは左から右のようだ)
要するに左から右の記法はPDP-11の影響を受けてるわけだ
(VAX11はPDP-11の後継の32bitミニコン)
SPARC、PA-RISCが左から右なのは
680x0を使ったワークステーションの後継機種用のCPUとして作られたからだろうな
今でも680x0の影響を受けてるCPUは左から右
逆に言えば、パソコンやサーバ、スマホなどは
PDP-11、VAX11、680x0などのCPUの影響を受けてないCPUが主流
416デフォルトの名無しさん
2018/09/27(木) 20:12:35.94ID:GWQb325r417デフォルトの名無しさん
2018/09/27(木) 21:20:43.26ID:v+2P+rz3 >>416
Intel 8080 の改良版が、Z80。
以下、同じ命令を、8080とZ80について書いてみる。
Z80の方が現代のアセンブリ言語に近く、人間には覚え易くて
理解しやすいが、アセンブラの作成が当時としては難しくなった。
Z80がなぜ人気が爆発したか、これだけ見ても分かるかと思う。
【8080】
MVI A,byte ; A <-- byte // move immediate を略して MVI
MOV A,B ; A <-- B // 意味は同じなのに、第二オペランド
// がレジスタに変わったなっただけで命令表記が変わる。
MOV A,M ; A <--(HL) // M の意味は、(HL)
MOV H,A ; H <-- A
MOV L,A ; L <-- A
LXI H,word ; HL <-- word // これも意味は move なのに命令が変わる。
LHLD word ; HL <---(word) // これも、現代なら単に(word)と書けばいいとこ
// ろが命令自体を変えなければならなかった。
【Z80】
LD A,byte
LD A,B
LD A,(HL)
LD H,A
LD L,A
LD HL,word
LD HL,(word)
【参考】
http://nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/opcodes.html
Intel 8080 の改良版が、Z80。
以下、同じ命令を、8080とZ80について書いてみる。
Z80の方が現代のアセンブリ言語に近く、人間には覚え易くて
理解しやすいが、アセンブラの作成が当時としては難しくなった。
Z80がなぜ人気が爆発したか、これだけ見ても分かるかと思う。
【8080】
MVI A,byte ; A <-- byte // move immediate を略して MVI
MOV A,B ; A <-- B // 意味は同じなのに、第二オペランド
// がレジスタに変わったなっただけで命令表記が変わる。
MOV A,M ; A <--(HL) // M の意味は、(HL)
MOV H,A ; H <-- A
MOV L,A ; L <-- A
LXI H,word ; HL <-- word // これも意味は move なのに命令が変わる。
LHLD word ; HL <---(word) // これも、現代なら単に(word)と書けばいいとこ
// ろが命令自体を変えなければならなかった。
【Z80】
LD A,byte
LD A,B
LD A,(HL)
LD H,A
LD L,A
LD HL,word
LD HL,(word)
【参考】
http://nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/opcodes.html
418デフォルトの名無しさん
2018/09/27(木) 21:37:48.64ID:v+2P+rz3419デフォルトの名無しさん
2018/09/27(木) 21:50:06.74ID:v+2P+rz3420デフォルトの名無しさん
2018/09/27(木) 21:55:12.76ID:v+2P+rz3 Zilogがせっかく、二モニックを美しく修正したのに、Intelは、また、MMX や SSE以後で
汚くしてしまった。
それに、セグメントの概念もMMUの設計もひどかった。
セグメントに関しては、トランジスタの集積度が少なすぎてしょうがなかったのかも
しれないが、それを長く引きずりすぎた。
80386のプロテクトモードなんかどうでも良くて、単にプロテクトの無い32BITの
フラットモードがあれば喜ばれ、MS-DOSが今でも続いていたかもしれない。
汚くしてしまった。
それに、セグメントの概念もMMUの設計もひどかった。
セグメントに関しては、トランジスタの集積度が少なすぎてしょうがなかったのかも
しれないが、それを長く引きずりすぎた。
80386のプロテクトモードなんかどうでも良くて、単にプロテクトの無い32BITの
フラットモードがあれば喜ばれ、MS-DOSが今でも続いていたかもしれない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★5 [BFU★]
- 「日本はパンダがいなくなる状況に直面するだろう」 中国メディア、専門家の見方伝える [♪♪♪★]
- 【速報】10月の消費者物価3.0%上昇 [蚤の市★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 ★2 [蚤の市★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★12 [樽悶★]
- 【コメ】価格「5キロ4316円」で最高値を更新…「おこめ券」が解決につながらない根本的な理由 コメ農家が危機感をあらわにする「離農」 [ぐれ★]
- 【悲報】米国務省「米国は台湾海峡における平和と安定を望む。いかなる一方的な現状変更の試みにも反対する」タリバンの声明を受け [974680522]
- 中国父「高市、今回はこの辺にしといたるわ!」 世界の供給源としての信頼維持のためレアアース制裁見送りの公算 [271912485]
- 高市早苗、会食せず議員宿舎に籠って勉強の毎日「飲んでる暇があれば、政策を練り、資料を読みたい」 [485187932]
- 愛国保守、日本を本気で潰しにかかる [819729701]
- 【悲報】Suica、セキュリティを突破されたのが販売されはじめる [347751896]
- 東大名誉教授「中国は誤った宣伝を繰り広げ、対立を煽り、経済の失敗による国内の不満を日本に向けている」 [903292576]
