アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
アセンブリが出来上がるっていうか実行ファイルだろう >>300 機械語に一対一対応のGUI部品作れば良いだけだけど、結局並べるのにハードの知識が要求されるっていう。。。 アセンブラを文字で入力するかマウスで入力するかの違いしかねえ。 入力の速さ考えたら文字のが早いっていうね。 どっちもただのジャンプ命令だから、GUI部品にした所で分かりやすくなるとは思えないが。。。 ジャンプ先のラベルを分岐かループかで色分けすれば? GUI部品がアセンブラの命令だけだと意味ないんじゃね その通りだが、機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。 アセンブラマクロというものがなかったか? それと、歴史的に機械語→アセンブラ→構造化→高級言語って進んてるんだから 構造化してないようなものは高級言語には入らないだろ 低級とか高級とかはどれだけハードウェアに近いかとか人間に近いかとかだが、 それでもアセンブラマクロがあるからって高級言語にはならんと思うよ そりゃそうだ。 命令とマクロは違うし。 それでもマクロ使えるのは高級アセンブラとか言われてたな。 それは「高級言語のアセンブラ」ではないんだが、 わかってるか? 両方の意味で使われてた気がするがなぁ。 マクロが豊富で高級言語っぽく使えるって触れ込み。 高機能アセンブラとも、高級言語風アセンブラともとれる。 マクロ使うかどうかはその人次第だろうが。 マクロや擬似命令がついてるからって、高級言語にはならない いったいそのトンチンカンな知識はどこで習ったんだ? 誰が高級言語になると書いたよ。 高級言語「風」だ。 それにアセンブラメーカーの宣伝文句をそのまま書いただけだ。 (リーフアセンブラだったっけ?大分昔買ったやつ) 機械語を吐くって意味じゃアセンブラも高級言語も同じ。 むしろアセンブラのが機械語と一対一だから単純。 ループや分岐みたいなよく使う機械語パターンを文法によって吐くのが高級言語ってだけ。 >その通りだが、機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。 >機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。 >高級言語。 構造化を高級言語の条件にしちゃったら BASIC が可哀想だよ。 ラベルを明示的に書かずに分岐やループを書ければいいのなら OPTASM でやったよ。ずいぶん昔だけど。 ID代えてもバカさを隠せないなんて、 おれ、こんななの初めて見た 構造化を知らないからこそ、BASICがどうたらって話が出てくるんだろうな そんなに知ったかぶりたいのか? >>314 マクロは文法とは違って単純に命令の塊を置き換えたもの。 ライブラリや文法よりはCのマクロが近い。 高級言語の場合、その言語のライブラリだったりランタイムがある。 だからアセンブラの中でも高級アセンブラって言われたりもするが、高級言語とは違う。 ループや分岐をGUI部品でとなると、それはマクロではなく文法のGUI化で、それはもう高級言語。 自分で言ってて分かりにくいな。 アセンブラのマクロは機械語と一対一命令に変換出来るのはアセンブラが機械語と一対一だから当然として、高級言語は高級言語の文法が機械語に一対一対応では無いので変換出来ない。 この機械語と一対一に変換可能かどうかが低級か高級の分かれ目じゃ無いかと思う。 なのでマクロをGUI部品にするならループとかの文法的なのじゃなくて、命令の塊を入れるフォルダー的な物になるんじゃ無いかな。 引数付きフォルダー? x低級か高級の分かれ目 o高級アセンブラか高級言語の分かれ目 ああ、でもCも高級アセンブラって言われることあるから、上げ足取りされそう。 KKCBM/yI の言う「構造化」って何のことだったのかな。 何が気に障ったのか本当に解らないよ。 機械語ひとつに対してニーモニックは複数である場合が多い って話か? 機械語だけあったって完全には逆アセできねーだろってことじゃね? 同一命令に対して複数の表記があるのは普通だし、 逆にアセンブラでは(命令の形では)記述できないようなのもあったりもする 即値によって命令を自動で変えてしまうとか 特定のプレフィックスを指定できなかったり アセンブラは決して一対一を目指してるわけではない 最近のCPUって中はμOpなんだし 外にも公開してでプログラミング可能にすれば効率よくね? それがIA64(Itanium)だったけど、互換性の壁に敗れた。 それに現行だと変換後、直接実行か0次キャッシュからしか参照しないから将来どっちもメモリから受け付けるアーキテクチャ出すとかしないと意味はない。 あとμOpはAMD CPUと互換性ない。 恐ろしいほど知能の低いのが混じってるな なんだこのスレ 本当にできる人は自分よりレベルの低い人を見下したりはしない >>335 x86も元々はuOPなんてものはなく、そのまま実行してたんだよ >>337 おれは天才だけど、他人を見下すの大好き >>341 知ってますよ〜。 高速化の過程でRISC風命令に変換するようになったんですよね? だから、最初からRISC命令なIA64はμOpに対する最適化の集大成+α。 Intelが思ってたほどコンパイラの最適化が出来なくてVLIW(だったっけ?)が上手くいかなかったらしいけど。 (上手く出来るコンパイラ作るのが難し過ぎたらしい) もっと安くしてモバイルや組み込みから攻めてたら、もう少しいけてたかもなと考えると勿体無かった。 コンパイラに頼ってたら長続きしないよ 命令互換でもCPUによって命令のスループットもレイテンシもuOPも違うんだから x64はuOP変換前提だとそんなに悪くない 苦手な処理は新命令で補ったし レジスタも増えたし >>342 じゃあ自分が思ってるほどじゃないんだよ。 口だけじゃなくて、やねうらおみたいに実績で示して あの人は自分で自分を天才って言ってるけどそれだけのことはしているからね >>349 お前に心配されなくても実績はたくさんある こんなところでわざわざ示さなくても ちょっとお尋ねします 手続きカウンタの値により手続き順に処理を飛ばすプログラムを考えています この時手続きカウンタの評価が先頭につきますが このオーバーヘッドがいやなので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命令は直値のみでレジスタ間接は無いので変化球技で実現する必要があります こんな変なことをやって居る方はおられますか? 又、どのように実現したのでしょうか? x86とかならjump [mem] やjump reg があるよ 場合によっては、スタックに戻り先とジャンプ先を積んでretしてもいい いや普通のCPUにはレジスタ間接ジャンプあるよね? わいの今使ってるCPUのニーモニックを目を皿のようにして探しているんだが レジスタ間接ジャンプがないんやでえええ 見方が悪いのかもな 普通そんなことありえないか・・・そうだよな? テーブルジャンプなんて普通に使うもんな Cコンパイラがあるならswitchでコード書いてアセンブラソース吐かせろ 多分テーブルジャンプになるんじゃないかな Cコンパイラが使える環境なのか? なら素直にCで書けば 本当にジャンプ位置をダイナミックに決められないのなら、 2分検索とかでいいし、率がわかっているならもうちょっと頭の良い方法でも良い 1個ずつ分岐するのは大抵の場合効率が悪い ID:DMOHal5+はハマってるのかな? MCS51じゃあないよな avrってメモリ保護とかあるの? なければ ・jmp命令とオペランド(飛び先)をテーブルにする ・機能番号でテーブルからjmp命令を拾ってくる ・次のjmp命令を書き換える だけじゃねぇか そこだけram上でやればいい 多分岐switchのアセンブラ出力をパクるのが一番か 関数ポインタが確実だろ。switchはifでも実装できる。 あー関数テーブルか失礼 C使えるんだからソレでいいと思うけどね AVRなら、IJMPというそのまんまな名前の間接ジャンプ命令があるようだ。 ┌○┐ │死|ハ,,ハ │ |゚ω゚ ) │刑| // └○┘ (⌒) し⌒ ┌○┐ │ハ|ハ,,ハ │ |゚ω゚ ) │ゲ| // └○┘ (⌒) し⌒ 1164ページw でも、PowerPCとか需要あるのか? アセンブラ自体だけじゃ無くて、考え方を考える本でもあるからな。 ★☆☆☆☆w virtex-6以降はpowerpcコア搭載タイプ無いのかすぃら? Z80の本が出たときは我慢出来たけど 6800の本が出たときは逝ってしまった zeas88 一月かけて入力して動かなかった 三月かけてダンプをチェックしても動かなかった 思い出した 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 VM3VN 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 >>395 チェックサムは、 ・・・ A B ・・・SUM1 ・・・ B A ・・・SUM2 見たいな間違いがあると、縦横チェックサムであっても、 間違いに気づく事が出来なかったなぁぁ・・・。 雑誌に書いてあったバイナリコード : ・・・ A B ・・・SUM1 ・・・ B A ・・・SUM2 間違って入力したコード ・・・ B A ・・・SUM1 ・・・ A B ・・・SUM2 これだと、横・縦の両方のチェックサムが雑誌と同じになってしまう。 >>396 gccでIntel記法でアセンブラ出力できるよ gcc -S -masm=intel hogehoge.c インラインアセンブラでIntel記法使う場合も gcc -masm=intel hogehoge.c objdumpでIntel記法で逆アセンブルする場合は objdump -M intel -d hogehoge.obj ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる