アセンブラ 13

■ このスレッドは過去ログ倉庫に格納されています
2011/08/28(日) 15:24:40.59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
2016/09/02(金) 14:49:44.53ID:LW5U/QZl
うんこしてきていい?
2016/09/02(金) 15:37:28.76ID:tIJhbCeG
逝っトイレ
2016/11/12(土) 13:36:24.90ID:5D/kJ823
「ほら吹き男爵の本を5冊調べました(中略)
ブーツの紐を引っ張って湖の底から脱出する
という話は、書かれていません(中略)
ブートストラップ(bootstrap)とは直訳すれば、ブーツのひもである。しかし、
独力でやるという派生した意味を持ち、そこから、
コンピュータが電源投入時に自動的にOSを読み込む方式を指したり、
コンパイラが自分自身を記述したりすることを指したり(中略)
bootstrapを靴紐とした誤訳である。
Bootstrapとはブーツを履くときにブーツを引っ張る上げるためのつまみ革
ブートストラップを引っ張って湖の底から脱出する
というエピソードは書かれていない。しかし類似の話として
馬ごと沼に落ちた Munchausen が手で自分の髪の毛をつかんで自分自身と馬とを引っ張り上げて沼から脱出する
というエピソ−ドが書かれている(挿絵つき)。岩波文庫版」

http://suzuki-tokuhisa.com/ushigome/hinoue.html
2000/12/24(Sun)
2017/03/22(水) 18:34:09.35ID:PmucqYS5
https://www.amazon.co.jp/dp/4839954747/
https://pbs.twimg.com/media/CMHpkNQWwAAfWJq.png

この本買ったんだけど中身は文章とソースコードしかなかった
2017/03/22(水) 20:13:36.84ID:wpBrYFTt
当たり前w
241デフォルトの名無しさん
垢版 |
2017/04/13(木) 18:15:02.80ID:VLmLig3K
test
242デフォルトの名無しさん
垢版 |
2017/06/06(火) 19:25:33.15ID:6Hy4ZEQ3
FreeBSDi386
バックスペースの挙動の再現?方法が知りたいのですが

ioctlにてBSが無効化?している状態においてどのようにすればいいのでしょうか?

現状の挙動は
BSだけだとカーソル左移動のみ
エスケープシーケンスの"[[P"併用では似た挙動はするがコンソール左端を認識しない為 左端以降右を削除してしまう
2017/06/06(火) 20:07:44.00ID:ykMKOrap
左移動、スペース、左移動では?
2017/06/06(火) 20:30:28.44ID:MUdbHmDP
>>239
そんな表紙じゃないと売れないのかねぇ
245デフォルトの名無しさん
垢版 |
2017/06/06(火) 22:48:42.93ID:6Hy4ZEQ3
243
無効化(terminal自体の設定変更 Cでいう?termiosで変更)してるのでそれでは駄目です
246デフォルトの名無しさん
垢版 |
2017/06/06(火) 22:58:03.59ID:6Hy4ZEQ3
因みにその場合の(243の)挙動は
カーソル移動と削除(スペースの入力と表示)のみ行われてカーソル右はそのままとなります

ABCD

A D

のようにカーソル右の文字が左スクロールしません
2017/06/06(火) 23:05:45.52ID:Tfg9c60t
scriptに吐かせて何やってるか見てみれば?
2017/06/06(火) 23:07:42.05ID:Tfg9c60t
ちなみにスレチだからこれ以上はどっか行け
249デフォルトの名無しさん
垢版 |
2017/06/07(水) 20:25:58.07ID:izePe9Zb
247
意味不明
248
意味不明

次の方どうぞ〜
2017/06/08(木) 13:15:13.49ID:oPuedIYN
質問いいですか?
2017/06/08(木) 15:21:18.97ID:NV8Z/enP
どうされました?
252デフォルトの名無しさん
垢版 |
2017/07/19(水) 09:29:19.34ID:4WYjcaP8
>>196
アセンブラでアルゴリズム書くノウハウは身に付くよ。
64bitアセンブラでHello Worldしか書けないんじゃ悲し過ぎる。
レジスタ名やニーモニックが違うだけで方言みたいなものだから応用は効く。

CASLは命令数少ないから、擬似命令含めても覚える文法?は一番少ない。
OS作りたいとかなら必須だしね。
そこまで大掛かりじゃなくても、電子工作ではアセンブラで書いた方がマイコン使いこなしてるぜ!って感覚が好き。
(むしろBIOSすらないから、直接VRAM書き込みとかはこっちのが主流)
253デフォルトの名無しさん
垢版 |
2017/07/19(水) 11:26:20.41ID:+fK80sDM
>>252
CASLってoutputがわかりにくいんだよね
VRAMとか定義されてたっけ
254デフォルトの名無しさん
垢版 |
2017/07/19(水) 14:03:51.87ID:4WYjcaP8
>>253
VRAMは実際のマイコンでも定義されてない。
CPUは書き込んだ先がただのメモリかVRAMか感知しない。
人間が実装し、CPUが認識するメモリのどこからVRAMとして扱うか決める。
OUTPUTが分かりにくいってのは実際にPICマイコンとかで電子工作してプログラム書き込んだことがないからだと思う。
(むしろOUTマクロで文字列表示出来るだけマシだと思う)

だってPCと違ってマイコンチップにはディスプレイとか無い。
CPUはメモリやポートに値や信号を出す出さない。読む書く、読まない書かない。
それしか外部に出来ない。
何をどう表示するか、どう動くかは実装と取り決め次第。

PCは複雑過ぎる(し、ある程度入出力の手段は決まってる)から、OUTマクロみたいなのをBIOSや各OSのシステムコールが提供してるに過ぎない。
2017/07/19(水) 17:23:34.18ID:IRmsE5AJ
オナニースレ
256デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:17:30.20ID:aq/FdZCk
ここかな
部品の印刷
https://www.youtube.com/watch?v=CiJDgzS_TBs#t=760s
12:40 〜
2017/07/28(金) 11:04:06.77ID:L3qNkxNi
>>252
>>254
アセンブラ勉強したい
おすすめはCASL?
ちな仕事ではCとJava
2017/07/28(金) 12:37:51.02ID:WViVOgsq
Cが使えるなら、
普通にPCのx86のコードの中から、
単純なループをアセンブラ化することからはじめれば
2017/07/28(金) 14:39:46.04ID:JFFpAseU
>>257
今、アセンブラやるならx86_64かARM64だな
x86_64ならLinux上でやるとDOSの頃のようなシステムコールを直接アセンブラから呼ぶようなプログラミングができる
C言語のコンパイルでアセンブラ出力をして関数の中身を書き換えてみるとかでもいい
gccなら-Sオプションを付けることでアセンブラ出力ができる
こんな感じでアセンブラ出力して、コンパイルできる
(最適化オプションを指定しないとかなり冗長なコードを出力するので適当に-O1、-O2、-O3などを使った方がいい)
gcc -S -o hogehoge.s hogehoge.c
as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc -o hogehoge hogehoge.o
最適化オプションを使う場合
gcc -S -O2 -o hogehoge.s hogehoge.c
as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc -o hogehoge hogehoge.o

ARM64ならPINE64買って同じようにLinuxやるか、
AndroidSDK入れてAndroidアプリの作成でJavaからJNIでC/C++を呼び出して
そのC/C++の中でインラインアセンブル組むといい

Linux で64bitアセンブリプログラミング
http://www.mztn.org/lxasm64/amd00.html

Linux で Arm64 アセンブリプログラミング
http://www.mztn.org/dragon/arm6400idx.html
260デフォルトの名無しさん
垢版 |
2017/07/28(金) 14:55:01.62ID:JFFpAseU
あと、ARM64のアセンブラを遅くてもいいからx86_64のUbuntuでやりたい場合
QEMUをインストールし、ARM64のクロスコンパイラを入れることで
ARM64のクロス開発とエミュレーション環境が構築できる
sudo apt-get install qemu
sudo apt-get install g++-aarch64-linux-gnu
sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib
sudo ln -s /usr/aarch64-linux-gnu/lib /lib/aarch64-linux-gnu

これでARM64のプログラムをx86_64のプログラムと同じように実行できるようになる
(あくまでエミュレーションなので動作は遅い)
コンパイル方法は
aarch64-linux-gnu-gcc -o hogehoge hogehoge.c
アセンブラ出力してコンパイルするなら
aarch64-linux-gnu-gcc -S -o hogehoge.s hogehoge.c
aarch64-linux-gnu-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
aarch64-linux-gnu-gcc -o hogehoge hogehoge.o

実行はx86_64のプログラムと同じように実行できる
./hogehoge
明示的にQEMUを呼び出して実行時のCPUを指定して実行したりできる
qemu-aarch64 -cpu cortex-a57 hogehoge
指定できるCPUの種類を調べるには
qemu-aarch64 -cpu help

どのARM64のバイナリかどうかを調べるには
file hogehoge
で確認できる
2017/07/28(金) 15:05:26.32ID:JFFpAseU
Windowsの仮想マシンを使ってUbuntuを入れるのはこんな感じ

Windows 10 でVMware Workstation Player With Ubuntu
http://www.aise.ics.saitama-u.ac.jp/~gotoh/VMWorkstationPlayerIntoWindows10.html
2017/07/28(金) 16:13:44.13ID:WViVOgsq
普通にVisualStudioでやれば
2017/07/28(金) 16:17:43.90ID:WViVOgsq
システムコールの勉強なんて今時いらんでしょ

VisualStudioなら既にインストールされてそうだし、
アセンブラソースをプロジェクトに加えるなので楽
264デフォルトの名無しさん
垢版 |
2017/07/28(金) 18:28:29.67ID:2hIYBPjn
>>257
上のx86_64アセンブラ勧めてるのは慣れてる人だから、自分が慣れて来たら参考にしても良いけど、ネットでもHello worldで終わってるコードばっかりとだけ言っておこう。

そう言う意味じゃ、自分でx86_64アセンブラの命令一覧を参考にコード書くためにも、CASLでアセンブラに慣れてみた方がいい。

PC向けはシステムコールじゃないと文字も出力出来ないので、VRAM直接弄りたいならGBやGBAなどのゲーム機や組み込み、電子工作のアセンブラコードのが面白い。
2017/07/28(金) 19:47:53.52ID:JFFpAseU
CASLじゃ、全然参考にならない
実際に使われてるものを使って勉強した方が良い
本屋でx86またはx86_64関係のアセンブラの本をいろいろ物色してみるのがいいかもね
ARMやARM64関連のアセンブラの本はあまり出てないからね
266デフォルトの名無しさん
垢版 |
2017/07/28(金) 20:03:16.15ID:SfCHZxYK
>>265
64ビットOSでx86アセンブラの16ビットコード動かないじゃん?
仮想PCにFreeDOSでも入れればいいんだろうけど。

それにシステムコールの使い方ばっかで、意外とソートとかそう言うコード無いんよね。
だから最初はCASL勧めてる。
その後はx86なりx86_64なりARMなりお好きにどうぞ。
2017/07/28(金) 20:12:28.96ID:WViVOgsq
x86が目的ならはじめからx86でいいよ
わざわざ回り道しなくても
2017/07/28(金) 20:15:58.51ID:WViVOgsq
ARMが目的ならARMで
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
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言語がメインになるな
271デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:19:45.51ID:SfCHZxYK
もうそれ、アセンブラそのものの否定に片足突っ込んでるよね?
ぶっちゃけ高級言語からアセンブラ呼ぶ意義はSIMD命令使う以外は無いと思う。
アセンブラ好きの行き着く先はマイコンよ。
2017/07/28(金) 21:32:28.65ID:JFFpAseU
マイコンでもC言語をメインに使うのは同じ
Cでは書けないもしくは遅くなる部分でアセンブラを使うだけ
2017/07/28(金) 21:46:50.84ID:d5LZ2kks
>>270
Javaを経由する意味が不明
素直にアセンブラと相性が良いCでやれば良い
2017/07/28(金) 21:52:56.42ID:d5LZ2kks
>>271
いろんなアセンブラ好きがいる

SIMDや特殊命令でパフォーマンスを追求する人
アセンブラでのOSやシステム設計をする人
オールアセンブラでマイコンのプログラムを書く人
ハッキングに使う人
コンパクトなコードを極める人

アセンブラを作る人
命令セットを作る人
マイコンを作る人
2017/07/28(金) 22:11:12.31ID:qPbT9hdu
>>203
これ自演じゃなければ凄いよあなた
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
----
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/
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");
を実行すればいいだけだろ?
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#から呼び出せば同じことだけど
2017/07/29(土) 07:34:28.42ID:N+YJafLA
>>279
Cでグラフィックを扱ったことがない感じ?
2017/07/29(土) 07:35:16.18ID:N+YJafLA
相変わらずJavaを経由する意味がわからない
2017/07/29(土) 07:39:18.59ID:N+YJafLA
グラフィックをやりたいのかどうかすら不明なのに
回答が先走りすぎ
283デフォルトの名無しさん
垢版 |
2017/07/29(土) 07:40:53.88ID:MyKDeSRq
>>279
楽とかじゃなくて、直接弄れるのが大事なんだが。。。
2017/07/29(土) 07:55:24.81ID:N+YJafLA
質問者が直接弄りたいのか不明
グラフィックを扱いたいのかも不明
2017/07/29(土) 07:58:35.02ID:N+YJafLA
直接弄りたいって>>264が言ってるだけ
2017/08/04(金) 03:45:56.37ID:kIgI5e6Z
さらっとここまで読んでみた
勉強が動機ならCASLが一番いいのでは?
287デフォルトの名無しさん
垢版 |
2017/08/04(金) 03:46:13.76ID:kIgI5e6Z
あげとくかな
2017/08/05(土) 20:59:41.90ID:7J5Re5fS
汗ばむブラ
2017/08/05(土) 21:02:08.67ID:AGcDSNVp
はい
2017/08/08(火) 21:58:01.16ID:okYWuzKv
このゲームってアセンブラっぽくない?

http://i.imgur.com/IKc9CMu.jpg
http://i.imgur.com/cZwTGvO.jpg
http://i.imgur.com/g2iReKO.jpg
2017/08/09(水) 01:07:10.44ID:BwLXh8cR
>>290
ポイというよりまさにそれでしょ
最後の方の3ステージが未完だけどだいぶ楽しめた
2017/08/09(水) 09:13:43.34ID:Qcpwsibl
基本はIA32だよな
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
2017/08/16(水) 13:46:01.32ID:1QMAod07
64bitのARMで日本語の資料としてはこのサイトが一番わかりやすい
プログラムの実例があまりないけど

Linux で Arm64 アセンブリプログラミング
http://www.mztn.org/dragon/arm6400idx.html
2017/08/16(水) 13:50:52.61ID:1QMAod07
Computer Organization and DesignはあくまでCPUの基本を勉強するための本なので
別に買う必要はないよ
ただ、こういう有名な本でも64bitのARMが実例として採用されてるということ
2017/08/16(水) 23:47:54.90ID:NUab+Q0J
>>290
演算結果を直接床に置けないのがめんどい
2017/08/17(木) 21:42:18.46ID:bJbJryeq
なんでも床におくから部屋が汚くなる
2017/08/18(金) 00:52:05.51ID:stC/R/7K
>>296
RISCだとそんなもん。

アキュムレータマシンがロードストアモデル採用すると
効率がどうなるかっていう教育にはぴったりのゲームだね。
あと条件分岐の条件の否定が欲しすぎる。
2017/08/26(土) 06:08:03.44ID:GN0ypiky
どんなもんかな
https://images-na.ssl-images-amazon.com/images/I/41O9F6bg%2BKL.jpg
2017/08/26(土) 10:08:01.01ID:ljYsXPF5
スクラッチみたいにGUIの部品並べたら
アセンブリが出来上がるソフトはないの?
2017/08/26(土) 10:10:30.47ID:3MgN9vVX
>>300
>>290
2017/08/27(日) 06:35:53.72ID:e4TdDFEN
アセンブリが出来上がるっていうか実行ファイルだろう
303デフォルトの名無しさん
垢版 |
2017/08/27(日) 08:53:51.24ID:LSSLdcGe
>>300
機械語に一対一対応のGUI部品作れば良いだけだけど、結局並べるのにハードの知識が要求されるっていう。。。
アセンブラを文字で入力するかマウスで入力するかの違いしかねえ。
入力の速さ考えたら文字のが早いっていうね。
2017/08/27(日) 10:07:19.52ID:ZaV3m3/p
ループとか分岐が視覚的にわかると便利
305デフォルトの名無しさん
垢版 |
2017/08/27(日) 10:11:28.92ID:LSSLdcGe
どっちもただのジャンプ命令だから、GUI部品にした所で分かりやすくなるとは思えないが。。。
ジャンプ先のラベルを分岐かループかで色分けすれば?
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
>その通りだが、機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。

>機械語と一対一じゃなくなった時点でアセンブラではなくただの高級言語。

>高級言語。
2017/08/27(日) 15:48:55.40ID:gTD+3SIf
>>304
そこでフローチャートですよ
316デフォルトの名無しさん
垢版 |
2017/08/27(日) 15:50:51.76ID:3R3KU0xo
構造化を高級言語の条件にしちゃったら BASIC が可哀想だよ。
ラベルを明示的に書かずに分岐やループを書ければいいのなら OPTASM でやったよ。ずいぶん昔だけど。
317デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:13:47.31ID:KKCBM/yI
ID代えてもバカさを隠せないなんて、
おれ、こんななの初めて見た

構造化を知らないからこそ、BASICがどうたらって話が出てくるんだろうな

そんなに知ったかぶりたいのか?
318デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:55:08.59ID:3R3KU0xo
何を言いたいのか知らないが、人違いだよ。
2017/08/27(日) 18:28:57.82ID:LIgBPoun
いいえ人妻です
2017/08/27(日) 19:24:13.16ID:e4TdDFEN
いいえケフィアです
2017/08/27(日) 19:35:50.63ID:gTD+3SIf
しまった、バレてしまった
322デフォルトの名無しさん
垢版 |
2017/08/27(日) 20:09:47.58ID:02V7/aD0
>>314
マクロは文法とは違って単純に命令の塊を置き換えたもの。
ライブラリや文法よりはCのマクロが近い。
高級言語の場合、その言語のライブラリだったりランタイムがある。
だからアセンブラの中でも高級アセンブラって言われたりもするが、高級言語とは違う。
ループや分岐をGUI部品でとなると、それはマクロではなく文法のGUI化で、それはもう高級言語。
323デフォルトの名無しさん
垢版 |
2017/08/27(日) 20:27:15.96ID:02V7/aD0
自分で言ってて分かりにくいな。
アセンブラのマクロは機械語と一対一命令に変換出来るのはアセンブラが機械語と一対一だから当然として、高級言語は高級言語の文法が機械語に一対一対応では無いので変換出来ない。
この機械語と一対一に変換可能かどうかが低級か高級の分かれ目じゃ無いかと思う。

なのでマクロをGUI部品にするならループとかの文法的なのじゃなくて、命令の塊を入れるフォルダー的な物になるんじゃ無いかな。
引数付きフォルダー?
324デフォルトの名無しさん
垢版 |
2017/08/27(日) 20:41:51.40ID:02V7/aD0
x低級か高級の分かれ目
o高級アセンブラか高級言語の分かれ目

ああ、でもCも高級アセンブラって言われることあるから、上げ足取りされそう。
2017/08/27(日) 21:08:35.40ID:19jJdQXE
アセンブラが機械語と一対一?
あほですか?
326316
垢版 |
2017/08/28(月) 06:09:23.24ID:DdfTeNHz
KKCBM/yI の言う「構造化」って何のことだったのかな。
何が気に障ったのか本当に解らないよ。
2017/08/28(月) 10:48:47.51ID:D1yS1ByC
機械語ひとつに対してニーモニックは複数である場合が多い
って話か?
2017/08/28(月) 21:34:01.36ID:NyxZdcAB
機械語だけあったって完全には逆アセできねーだろってことじゃね?
329デフォルトの名無しさん
垢版 |
2017/08/28(月) 22:04:27.60ID:RdiCBSRu
μOpとか言ったら笑ってあげる。
2017/08/28(月) 22:30:39.97ID:Wq6HqE7w
同一命令に対して複数の表記があるのは普通だし、
逆にアセンブラでは(命令の形では)記述できないようなのもあったりもする
即値によって命令を自動で変えてしまうとか
特定のプレフィックスを指定できなかったり

アセンブラは決して一対一を目指してるわけではない
2017/08/28(月) 23:42:36.93ID:D1yS1ByC
まぁ実装の問題もあるわな
332デフォルトの名無しさん
垢版 |
2017/08/29(火) 00:03:33.22ID:f2JWn62j
やっぱり、「。」つけてる例のバカはバカだったな
2017/08/29(火) 06:25:34.28ID:gQsqxoLN
最近のCPUって中はμOpなんだし
外にも公開してでプログラミング可能にすれば効率よくね?
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と互換性ない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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