前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
探検
アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
2011/08/28(日) 15:24:40.59
266デフォルトの名無しさん
2017/07/28(金) 20:03:16.15ID:SfCHZxYK >>265
64ビットOSでx86アセンブラの16ビットコード動かないじゃん?
仮想PCにFreeDOSでも入れればいいんだろうけど。
それにシステムコールの使い方ばっかで、意外とソートとかそう言うコード無いんよね。
だから最初はCASL勧めてる。
その後はx86なりx86_64なりARMなりお好きにどうぞ。
64ビットOSでx86アセンブラの16ビットコード動かないじゃん?
仮想PCにFreeDOSでも入れればいいんだろうけど。
それにシステムコールの使い方ばっかで、意外とソートとかそう言うコード無いんよね。
だから最初はCASL勧めてる。
その後はx86なりx86_64なりARMなりお好きにどうぞ。
267デフォルトの名無しさん
2017/07/28(金) 20:12:28.96ID:WViVOgsq x86が目的ならはじめからx86でいいよ
わざわざ回り道しなくても
わざわざ回り道しなくても
268デフォルトの名無しさん
2017/07/28(金) 20:15:58.51ID:WViVOgsq ARMが目的ならARMで
MIPSが目的ならMIPSで
PICが目的ならPICで
RXが目的ならRXで
命令自体はMIPSが良いとは思うけど
わざわざ回り道するほどではない
MIPSが目的ならMIPSで
PICが目的ならPICで
RXが目的ならRXで
命令自体はMIPSが良いとは思うけど
わざわざ回り道するほどではない
269デフォルトの名無しさん
2017/07/28(金) 20:58:17.26ID:SfCHZxYK 下記URL参照だが、この意見に賛同。
x86は入門向けとは言い難い。
そもそもWinだと結局WinAPIより下の階層触れないからCで書くのとほとんど変わらない。
どうしてもx86_64ならLinuxがまだマシ。
オススメはGBAのARM32ビットCPUのアセンブラ。
ハードの仕様固定だから、直でVRAM弄れて楽しい。
PCはBIOSやOSが有るから、この辺楽しめない。
CASL IIはプログラマ視点で低水準な世界の雰囲気を味わう分には手軽な言語ではないかと思う。
本来は実機と本物のアセンブラを使うべきなんだろうけど、ちょっとしたボードであっても実際に動かすには色々な手順*4が必要で
面倒だし*5、普及しているアーキテクチャが入門向けとも限らない*6。低水準の世界にどっぷり浸かる必要があるならそういった現実ならではの汚い部分に向き合わなくてはならないけど、
そうでないならCASL IIの箱庭ぐらいが丁度良いのではないだろうか?
もっとも極めても直接的に役に立つことはない言語だという点は留意しておくべきだけど。
http://d.hatena.ne.jp/eel3/touch/20120109/1326110720
x86は入門向けとは言い難い。
そもそもWinだと結局WinAPIより下の階層触れないからCで書くのとほとんど変わらない。
どうしてもx86_64ならLinuxがまだマシ。
オススメはGBAのARM32ビットCPUのアセンブラ。
ハードの仕様固定だから、直でVRAM弄れて楽しい。
PCはBIOSやOSが有るから、この辺楽しめない。
CASL IIはプログラマ視点で低水準な世界の雰囲気を味わう分には手軽な言語ではないかと思う。
本来は実機と本物のアセンブラを使うべきなんだろうけど、ちょっとしたボードであっても実際に動かすには色々な手順*4が必要で
面倒だし*5、普及しているアーキテクチャが入門向けとも限らない*6。低水準の世界にどっぷり浸かる必要があるならそういった現実ならではの汚い部分に向き合わなくてはならないけど、
そうでないならCASL IIの箱庭ぐらいが丁度良いのではないだろうか?
もっとも極めても直接的に役に立つことはない言語だという点は留意しておくべきだけど。
http://d.hatena.ne.jp/eel3/touch/20120109/1326110720
270デフォルトの名無しさん
2017/07/28(金) 21:15:04.59ID:JFFpAseU アセンブラの勉強のためならマイコンとかゲーム機とかでしなくても
JavaならビットマップにBufferedImage使えば
BufferedImageクラスに画面の内容をgetRGBというint型の配列として読み込むメソッドがあるので
これで読み取った内容をjniでC言語に渡して、
C言語からアセンブラに渡すか、インラインアセンブラでこの画像の処理をする部分を書いて
Javaに返してBufferedImageの画面の内容を書き換えれば(int型の配列を書き戻すのはsetRGB)
AndroidだとbitmapクラスにgetPixelsとsetPixelsがあって同様のことができる
(AndroidだとARMがメインになる)
これでVRAMをいじるのと同じことができる
javaとC言語ができるならJavaからCを呼び出すjniだって出来るんだろうし
アセンブラだからといって低レベルの部分にどっぷり浸かる必要はない
低レベルの部分にどっぷり浸かりたいならマイコンやればいいだけ
工業高校や専門学校ではそういう授業には8bitのPICやAVRなどのマイコンを使ってる
32bitマイコンだとアセンブラというよりもC言語がメインになるな
JavaならビットマップにBufferedImage使えば
BufferedImageクラスに画面の内容をgetRGBというint型の配列として読み込むメソッドがあるので
これで読み取った内容をjniでC言語に渡して、
C言語からアセンブラに渡すか、インラインアセンブラでこの画像の処理をする部分を書いて
Javaに返してBufferedImageの画面の内容を書き換えれば(int型の配列を書き戻すのはsetRGB)
AndroidだとbitmapクラスにgetPixelsとsetPixelsがあって同様のことができる
(AndroidだとARMがメインになる)
これでVRAMをいじるのと同じことができる
javaとC言語ができるならJavaからCを呼び出すjniだって出来るんだろうし
アセンブラだからといって低レベルの部分にどっぷり浸かる必要はない
低レベルの部分にどっぷり浸かりたいならマイコンやればいいだけ
工業高校や専門学校ではそういう授業には8bitのPICやAVRなどのマイコンを使ってる
32bitマイコンだとアセンブラというよりもC言語がメインになるな
271デフォルトの名無しさん
2017/07/28(金) 21:19:45.51ID:SfCHZxYK もうそれ、アセンブラそのものの否定に片足突っ込んでるよね?
ぶっちゃけ高級言語からアセンブラ呼ぶ意義はSIMD命令使う以外は無いと思う。
アセンブラ好きの行き着く先はマイコンよ。
ぶっちゃけ高級言語からアセンブラ呼ぶ意義はSIMD命令使う以外は無いと思う。
アセンブラ好きの行き着く先はマイコンよ。
272デフォルトの名無しさん
2017/07/28(金) 21:32:28.65ID:JFFpAseU マイコンでもC言語をメインに使うのは同じ
Cでは書けないもしくは遅くなる部分でアセンブラを使うだけ
Cでは書けないもしくは遅くなる部分でアセンブラを使うだけ
273デフォルトの名無しさん
2017/07/28(金) 21:46:50.84ID:d5LZ2kks274デフォルトの名無しさん
2017/07/28(金) 21:52:56.42ID:d5LZ2kks >>271
いろんなアセンブラ好きがいる
SIMDや特殊命令でパフォーマンスを追求する人
アセンブラでのOSやシステム設計をする人
オールアセンブラでマイコンのプログラムを書く人
ハッキングに使う人
コンパクトなコードを極める人
アセンブラを作る人
命令セットを作る人
マイコンを作る人
いろんなアセンブラ好きがいる
SIMDや特殊命令でパフォーマンスを追求する人
アセンブラでのOSやシステム設計をする人
オールアセンブラでマイコンのプログラムを書く人
ハッキングに使う人
コンパクトなコードを極める人
アセンブラを作る人
命令セットを作る人
マイコンを作る人
275デフォルトの名無しさん
2017/07/28(金) 22:11:12.31ID:qPbT9hdu >>203
これ自演じゃなければ凄いよあなた
これ自演じゃなければ凄いよあなた
276デフォルトの名無しさん
2017/07/28(金) 22:12:41.88ID:d5LZ2kks 普通の人ならVisualStudioでx86を動かすのが環境的には一番楽
プロジェクトを作成して、
メニューから [プロジェクト] ===> [ビルドのカスタマイズ] ===> masm をチェックして[OK]
あとは、*.cpp と *.asm のファイルを作ってコードを書けばビルド、実行、デバッグが可能
以下が64bitコードの例
---- cpp ----
#include <iostream>
extern "C" int func(int a, int b);
int main(){
std::cout << func(2,3) << "\n";
return 0;
}
---- asm ----
.code
func proc
mov eax, ecx
add eax, edx
ret
func endp
end
----
プロジェクトを作成して、
メニューから [プロジェクト] ===> [ビルドのカスタマイズ] ===> masm をチェックして[OK]
あとは、*.cpp と *.asm のファイルを作ってコードを書けばビルド、実行、デバッグが可能
以下が64bitコードの例
---- cpp ----
#include <iostream>
extern "C" int func(int a, int b);
int main(){
std::cout << func(2,3) << "\n";
return 0;
}
---- asm ----
.code
func proc
mov eax, ecx
add eax, edx
ret
func endp
end
----
277デフォルトの名無しさん
2017/07/28(金) 22:31:53.29ID:d5LZ2kks 画像データ、音声データ、その他データの準備や結果の保存はC/C++でやって、
アセンブラは、実際の処理部分だけでいい。
AVX, AVX2, FMA3もVisualStudio2017なら対応してるし、
AVX512も次のアップデートで使えるようになる
PC上のコードの高速化が目的であればこの方法
そうじゃなくて、アセンブラで上から下まですべて記述してみたい
というのであれば、小型のマイコンで
たとえば、以下があればLEDを点灯させて遊ぶことが出来る
開発ツールは無料
http://akizukidenshi.com/catalog/g/gI-11886/
http://akizukidenshi.com/catalog/g/gM-03608/
http://akizukidenshi.com/catalog/g/gP-09257/
http://akizukidenshi.com/catalog/g/gC-05159/
http://akizukidenshi.com/catalog/g/gP-00288/
http://akizukidenshi.com/catalog/g/gI-02082/
http://akizukidenshi.com/catalog/g/gR-16102/
アセンブラは、実際の処理部分だけでいい。
AVX, AVX2, FMA3もVisualStudio2017なら対応してるし、
AVX512も次のアップデートで使えるようになる
PC上のコードの高速化が目的であればこの方法
そうじゃなくて、アセンブラで上から下まですべて記述してみたい
というのであれば、小型のマイコンで
たとえば、以下があればLEDを点灯させて遊ぶことが出来る
開発ツールは無料
http://akizukidenshi.com/catalog/g/gI-11886/
http://akizukidenshi.com/catalog/g/gM-03608/
http://akizukidenshi.com/catalog/g/gP-09257/
http://akizukidenshi.com/catalog/g/gC-05159/
http://akizukidenshi.com/catalog/g/gP-00288/
http://akizukidenshi.com/catalog/g/gI-02082/
http://akizukidenshi.com/catalog/g/gR-16102/
278デフォルトの名無しさん
2017/07/28(金) 22:52:22.19ID:MUY2be1G >>275
普通に、printf("%s", "%d\202\252\223\374\227\315\202\263\202\352\202\334\202\265\202\275\12\0");
を実行すればいいだけだろ?
普通に、printf("%s", "%d\202\252\223\374\227\315\202\263\202\352\202\334\202\265\202\275\12\0");
を実行すればいいだけだろ?
279デフォルトの名無しさん
2017/07/29(土) 07:25:47.22ID:XkzNePZu >>273
JavaとCができると書かれててグラフィックの話が出ててきてたからね
Javaならグラフィックスを扱うのも楽だから。
JavaのJNIはJavaからC/C++を呼び出せて
その呼び出されたC/C++のプログラムからJavaの関数を呼び出せたりする
だからJavaのAPIをC/C++から叩ける
そのC/C++の中でインラインアセンブラを使ったり、そのC/C++の関数をアセンブラから叩けばいいからね
C#ができる人ならC++でDLL作成してC#から呼び出せば同じことだけど
JavaとCができると書かれててグラフィックの話が出ててきてたからね
Javaならグラフィックスを扱うのも楽だから。
JavaのJNIはJavaからC/C++を呼び出せて
その呼び出されたC/C++のプログラムからJavaの関数を呼び出せたりする
だからJavaのAPIをC/C++から叩ける
そのC/C++の中でインラインアセンブラを使ったり、そのC/C++の関数をアセンブラから叩けばいいからね
C#ができる人ならC++でDLL作成してC#から呼び出せば同じことだけど
280デフォルトの名無しさん
2017/07/29(土) 07:34:28.42ID:N+YJafLA >>279
Cでグラフィックを扱ったことがない感じ?
Cでグラフィックを扱ったことがない感じ?
281デフォルトの名無しさん
2017/07/29(土) 07:35:16.18ID:N+YJafLA 相変わらずJavaを経由する意味がわからない
282デフォルトの名無しさん
2017/07/29(土) 07:39:18.59ID:N+YJafLA グラフィックをやりたいのかどうかすら不明なのに
回答が先走りすぎ
回答が先走りすぎ
283デフォルトの名無しさん
2017/07/29(土) 07:40:53.88ID:MyKDeSRq >>279
楽とかじゃなくて、直接弄れるのが大事なんだが。。。
楽とかじゃなくて、直接弄れるのが大事なんだが。。。
284デフォルトの名無しさん
2017/07/29(土) 07:55:24.81ID:N+YJafLA 質問者が直接弄りたいのか不明
グラフィックを扱いたいのかも不明
グラフィックを扱いたいのかも不明
285デフォルトの名無しさん
2017/07/29(土) 07:58:35.02ID:N+YJafLA 直接弄りたいって>>264が言ってるだけ
286デフォルトの名無しさん
2017/08/04(金) 03:45:56.37ID:kIgI5e6Z さらっとここまで読んでみた
勉強が動機ならCASLが一番いいのでは?
勉強が動機ならCASLが一番いいのでは?
287デフォルトの名無しさん
2017/08/04(金) 03:46:13.76ID:kIgI5e6Z あげとくかな
288デフォルトの名無しさん
2017/08/05(土) 20:59:41.90ID:7J5Re5fS 汗ばむブラ
289デフォルトの名無しさん
2017/08/05(土) 21:02:08.67ID:AGcDSNVp はい
290デフォルトの名無しさん
2017/08/08(火) 21:58:01.16ID:okYWuzKv291デフォルトの名無しさん
2017/08/09(水) 01:07:10.44ID:BwLXh8cR292デフォルトの名無しさん
2017/08/09(水) 09:13:43.34ID:Qcpwsibl 基本はIA32だよな
293デフォルトの名無しさん
2017/08/16(水) 13:44:14.31ID:1QMAod07 AndroidやiPhoneであれだけ64bitのARMが普及してるのに
64bitのARMの命令セットの解説書がほとんどないのがね
今からやるなら64bitのARMもオススメ
CPUの入門書であるComputer Organization and Design(日本語では「コンピュータの構成と設計」という題名)
は今までMIPSだけだったが洋書ではMIPS版の他に64bitのARM版も出てる
https://www.amazon.co.jp/dp/0128017333
64bitのARMの命令セットの解説書がほとんどないのがね
今からやるなら64bitのARMもオススメ
CPUの入門書であるComputer Organization and Design(日本語では「コンピュータの構成と設計」という題名)
は今までMIPSだけだったが洋書ではMIPS版の他に64bitのARM版も出てる
https://www.amazon.co.jp/dp/0128017333
294デフォルトの名無しさん
2017/08/16(水) 13:46:01.32ID:1QMAod07 64bitのARMで日本語の資料としてはこのサイトが一番わかりやすい
プログラムの実例があまりないけど
Linux で Arm64 アセンブリプログラミング
http://www.mztn.org/dragon/arm6400idx.html
プログラムの実例があまりないけど
Linux で Arm64 アセンブリプログラミング
http://www.mztn.org/dragon/arm6400idx.html
295デフォルトの名無しさん
2017/08/16(水) 13:50:52.61ID:1QMAod07 Computer Organization and DesignはあくまでCPUの基本を勉強するための本なので
別に買う必要はないよ
ただ、こういう有名な本でも64bitのARMが実例として採用されてるということ
別に買う必要はないよ
ただ、こういう有名な本でも64bitのARMが実例として採用されてるということ
296デフォルトの名無しさん
2017/08/16(水) 23:47:54.90ID:NUab+Q0J >>290
演算結果を直接床に置けないのがめんどい
演算結果を直接床に置けないのがめんどい
297デフォルトの名無しさん
2017/08/17(木) 21:42:18.46ID:bJbJryeq なんでも床におくから部屋が汚くなる
298デフォルトの名無しさん
2017/08/18(金) 00:52:05.51ID:stC/R/7K299デフォルトの名無しさん
2017/08/26(土) 06:08:03.44ID:GN0ypiky300デフォルトの名無しさん
2017/08/26(土) 10:08:01.01ID:ljYsXPF5 スクラッチみたいにGUIの部品並べたら
アセンブリが出来上がるソフトはないの?
アセンブリが出来上がるソフトはないの?
301デフォルトの名無しさん
2017/08/26(土) 10:10:30.47ID:3MgN9vVX302デフォルトの名無しさん
2017/08/27(日) 06:35:53.72ID:e4TdDFEN アセンブリが出来上がるっていうか実行ファイルだろう
303デフォルトの名無しさん
2017/08/27(日) 08:53:51.24ID:LSSLdcGe >>300
機械語に一対一対応のGUI部品作れば良いだけだけど、結局並べるのにハードの知識が要求されるっていう。。。
アセンブラを文字で入力するかマウスで入力するかの違いしかねえ。
入力の速さ考えたら文字のが早いっていうね。
機械語に一対一対応のGUI部品作れば良いだけだけど、結局並べるのにハードの知識が要求されるっていう。。。
アセンブラを文字で入力するかマウスで入力するかの違いしかねえ。
入力の速さ考えたら文字のが早いっていうね。
304デフォルトの名無しさん
2017/08/27(日) 10:07:19.52ID:ZaV3m3/p ループとか分岐が視覚的にわかると便利
305デフォルトの名無しさん
2017/08/27(日) 10:11:28.92ID:LSSLdcGe どっちもただのジャンプ命令だから、GUI部品にした所で分かりやすくなるとは思えないが。。。
ジャンプ先のラベルを分岐かループかで色分けすれば?
ジャンプ先のラベルを分岐かループかで色分けすれば?
306デフォルトの名無しさん
2017/08/27(日) 12:08:19.63ID:e4TdDFEN GUI部品がアセンブラの命令だけだと意味ないんじゃね
307デフォルトの名無しさん
2017/08/27(日) 13:04:01.25ID:LSSLdcGe その通りだが、機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。
308デフォルトの名無しさん
2017/08/27(日) 13:14:42.34ID:KKCBM/yI アセンブラマクロというものがなかったか?
それと、歴史的に機械語→アセンブラ→構造化→高級言語って進んてるんだから
構造化してないようなものは高級言語には入らないだろ
低級とか高級とかはどれだけハードウェアに近いかとか人間に近いかとかだが、
それでもアセンブラマクロがあるからって高級言語にはならんと思うよ
それと、歴史的に機械語→アセンブラ→構造化→高級言語って進んてるんだから
構造化してないようなものは高級言語には入らないだろ
低級とか高級とかはどれだけハードウェアに近いかとか人間に近いかとかだが、
それでもアセンブラマクロがあるからって高級言語にはならんと思うよ
309デフォルトの名無しさん
2017/08/27(日) 13:36:32.53ID:LSSLdcGe そりゃそうだ。
命令とマクロは違うし。
それでもマクロ使えるのは高級アセンブラとか言われてたな。
命令とマクロは違うし。
それでもマクロ使えるのは高級アセンブラとか言われてたな。
310デフォルトの名無しさん
2017/08/27(日) 13:42:52.40ID:KKCBM/yI それは「高級言語のアセンブラ」ではないんだが、
わかってるか?
わかってるか?
311デフォルトの名無しさん
2017/08/27(日) 13:56:13.37ID:LSSLdcGe 両方の意味で使われてた気がするがなぁ。
マクロが豊富で高級言語っぽく使えるって触れ込み。
高機能アセンブラとも、高級言語風アセンブラともとれる。
マクロ使うかどうかはその人次第だろうが。
マクロが豊富で高級言語っぽく使えるって触れ込み。
高機能アセンブラとも、高級言語風アセンブラともとれる。
マクロ使うかどうかはその人次第だろうが。
312デフォルトの名無しさん
2017/08/27(日) 13:59:32.69ID:KKCBM/yI マクロや擬似命令がついてるからって、高級言語にはならない
いったいそのトンチンカンな知識はどこで習ったんだ?
いったいそのトンチンカンな知識はどこで習ったんだ?
313デフォルトの名無しさん
2017/08/27(日) 14:15:34.89ID:LSSLdcGe 誰が高級言語になると書いたよ。
高級言語「風」だ。
それにアセンブラメーカーの宣伝文句をそのまま書いただけだ。
(リーフアセンブラだったっけ?大分昔買ったやつ)
機械語を吐くって意味じゃアセンブラも高級言語も同じ。
むしろアセンブラのが機械語と一対一だから単純。
ループや分岐みたいなよく使う機械語パターンを文法によって吐くのが高級言語ってだけ。
高級言語「風」だ。
それにアセンブラメーカーの宣伝文句をそのまま書いただけだ。
(リーフアセンブラだったっけ?大分昔買ったやつ)
機械語を吐くって意味じゃアセンブラも高級言語も同じ。
むしろアセンブラのが機械語と一対一だから単純。
ループや分岐みたいなよく使う機械語パターンを文法によって吐くのが高級言語ってだけ。
314デフォルトの名無しさん
2017/08/27(日) 14:23:55.78ID:KKCBM/yI >その通りだが、機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。
>機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。
>高級言語。
>機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。
>高級言語。
315デフォルトの名無しさん
2017/08/27(日) 15:48:55.40ID:gTD+3SIf >>304
そこでフローチャートですよ
そこでフローチャートですよ
316デフォルトの名無しさん
2017/08/27(日) 15:50:51.76ID:3R3KU0xo 構造化を高級言語の条件にしちゃったら BASIC が可哀想だよ。
ラベルを明示的に書かずに分岐やループを書ければいいのなら OPTASM でやったよ。ずいぶん昔だけど。
ラベルを明示的に書かずに分岐やループを書ければいいのなら OPTASM でやったよ。ずいぶん昔だけど。
317デフォルトの名無しさん
2017/08/27(日) 17:13:47.31ID:KKCBM/yI ID代えてもバカさを隠せないなんて、
おれ、こんななの初めて見た
構造化を知らないからこそ、BASICがどうたらって話が出てくるんだろうな
そんなに知ったかぶりたいのか?
おれ、こんななの初めて見た
構造化を知らないからこそ、BASICがどうたらって話が出てくるんだろうな
そんなに知ったかぶりたいのか?
318デフォルトの名無しさん
2017/08/27(日) 17:55:08.59ID:3R3KU0xo 何を言いたいのか知らないが、人違いだよ。
319デフォルトの名無しさん
2017/08/27(日) 18:28:57.82ID:LIgBPoun いいえ人妻です
320デフォルトの名無しさん
2017/08/27(日) 19:24:13.16ID:e4TdDFEN いいえケフィアです
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じゃあないよな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★2 [お断り★]
- 【高市自民】中国軍SNS 高市首相に怖すぎる地獄絵で警告、火の海の靖国神社「自ら墓穴を掘り、戻れない道へ進む」 [夜のけいちゃん★]
- 【速報】公然わいせつの疑いで逮捕・送検・略式起訴のAぇ! group 草間リチャード敬太メンバー 脱退を発表 「心の病の療養」に専念 [Ailuropoda melanoleuca★]
- 米国、台湾に7億ドル(1100億円相当)のウクライナで実戦検証済み高性能ミサイルを売却 1週間で2件目 [お断り★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 小野田紀美 経済安保相「悪いことをする外国人、日本にいない状況つくる」 [Hitzeschleier★]
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃★2
- 【男磨き】ハウスルール汁遊び禁止🈲🏡【ジョージメンズコーチ】
- 【悲報】イチゴ高騰で、ショートケーキからイチゴが消える🍰 [966095474]
- 奈良高専「ぼくらは、ほんとに負けたんでしょうか…」ロボコンで旭川1up周回作戦に敗北、涙ながらに語る。奈良OBからも疑問の声 [776365898]
- おさかなさんあつまれえ
- 政治アナリストがヤフコメ民を一蹴『議員報酬アップは悪くない。モチベーションの維持や不正防止に役立つ』 [315293707]
