アセンブラ 13

■ このスレッドは過去ログ倉庫に格納されています
2011/08/28(日) 15:24:40.59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
2018/09/27(木) 11:57:48.40ID:314u9gDI
開発者のMac率の高さ考えたらただの言いがかり
2018/09/27(木) 17:46:24.04ID:GWQb325r
>>408
それは
a is b
とか読むんじゃないですかね。
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が主流
2018/09/27(木) 20:12:35.94ID:GWQb325r
そういう経緯とか全然知らんかったわ。
Z80は古い機種だと思うんだけど,>>411によればIntel記法に近いらしい。
一概に,「昔はAT&T記法が主流だった」とも言えねえのな。
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
2018/09/27(木) 21:37:48.64ID:v+2P+rz3
>>415
命令表記を左右逆にしていれば、今頃 68000 が天下を取っていたかもしれない。

高級言語の「A = B」がそのまま、MOV A,B と書けるのはやはり分かりやすいので。
2018/09/27(木) 21:50:06.74ID:v+2P+rz3
>>417
昔も今もそうかもしれないが、IntelもMSも、余り「判りやすく書く」
「すっきりと設計する」ということが余り得意ではないかもしれない。

MSの作ったAPIは構造が汚い。
2018/09/27(木) 21:55:12.76ID:v+2P+rz3
Zilogがせっかく、二モニックを美しく修正したのに、Intelは、また、MMX や SSE以後で
汚くしてしまった。

それに、セグメントの概念もMMUの設計もひどかった。
セグメントに関しては、トランジスタの集積度が少なすぎてしょうがなかったのかも
しれないが、それを長く引きずりすぎた。

80386のプロテクトモードなんかどうでも良くて、単にプロテクトの無い32BITの
フラットモードがあれば喜ばれ、MS-DOSが今でも続いていたかもしれない。
2018/09/27(木) 22:00:30.07ID:GWQb325r
>>418
しつこくてすまんが
$ cp file.org file.new
$ mv file.org file.new
↑こういう操作を考えると
AT&T記法のほうが馴染みやすくない?
2018/09/27(木) 22:04:07.63ID:v+2P+rz3
>>421
個人的には、数学や物理の表記の方が親しみがある。
423デフォルトの名無しさん
垢版 |
2018/09/28(金) 15:38:54.43ID:O5kQkBkV
CP/M copy も右から左だったぜ
2018/09/28(金) 15:43:05.12ID:hWUH9Sli
>>423
http://afsoft.jp/os/p02.html
CP/M も copy コマンドは、「左から右」だったと思うけど:

COPYコマンド
ディスクをコピーします。
【書式】COPY {mode} {コピー元} {コピー先}
 mode : ALL・・・ディスク全部をコピー
     BOOT ・・ブートトラックをコピー
     FILES・・ブートトラック以外をコピー
 
425デフォルトの名無しさん
垢版 |
2018/09/28(金) 15:50:53.05ID:O5kQkBkV
お前つかったことないやろ
2018/09/28(金) 15:58:32.06ID:hWUH9Sli
>>425
え、本当に逆さまだったの?
2018/09/28(金) 16:09:07.08ID:hWUH9Sli
コピーではないが、rename コマンドにそれらしき痕跡はあった。
確かに、右から左で、しかも、「=」記号もつけていたらしいね:


http://www.discordia.org.uk/px4/cpm.html

REN [d:]newname.ext = oldname.ext
Change the name of a disk file from oldname.ext to newname.ext
2018/09/28(金) 16:11:14.79ID:hWUH9Sli
これかな???


PIP [d:][newfile.ext]=[d:][filespec][<t>
Copy files between peripherals whilst performing optional conversion <t>.

Copy file from drive to drive: C> PIP H:=A:INFO.DAT
Copy file to new name: C> PIP A:NEW.DAT=A:INFO.DAT
Copy file to printer: C> PIP LST:=A:LETTER.TXT
2018/09/28(金) 16:13:46.37ID:hWUH9Sli
確かに有った。copy コマンドが登場するより前に、PIP コマンドがあったのか。
知らなかった。

https://en.wikipedia.org/wiki/Peripheral_Interchange_Program

The original PIP syntax was

PIP destination←source /switches
using the left-arrow character from the ASCII-1963 character set
that the Flexowriter keyboards of the time used.
As other terminals were introduced that used later versions
of ASCII (without the left-arrow character), PIP allowed the syntax

PIP destination=source
2018/09/28(金) 16:40:59.17ID:hWUH9Sli
>>423
これはすごい情報。
2018/09/28(金) 17:46:08.12ID:xRXV40hi
「懐かしい」とかいうとジジイ認定されちゃうかな。
2018/09/28(金) 17:52:03.41ID:MRbJrbcw
>>431
大丈夫。
2018/09/28(金) 20:45:43.66ID:TLhVFQk5
でもcopyコマンド(in CP/M)自体はUnix風の動作なんだよね。
pipコマンドというとPythonのアレしか思い浮かばないがw
434デフォルトの名無しさん
垢版 |
2018/09/28(金) 23:16:34.75ID:0Eaaaj8i
PIPエレキバン
2018/09/29(土) 07:03:12.39ID:NSCd5Wk/
pipはビルトインじゃなくて外部コマンドだったから数バイトのコピーするときにでも
pipを読み込むために数十KBの実行ファイルをフロッピーゴトゴト言わせてからコピーが始まる
2018/09/29(土) 09:44:28.70ID:PPHj/b7C
>>435
マジかよww
なんでそんな不便な方法しかなかったんだろう
当時はそれが一番効率的と考えられてたんかな
2018/09/29(土) 09:51:10.51ID:1LSQxS0k
>>436
メモリーが圧倒的に不足していたから。
2018/09/29(土) 11:11:39.83ID:Xg2DC4zv
cpだって外部コマンドじゃん
2018/09/30(日) 06:52:26.73ID:/hRwCsch
内部か外部かって重要なん?
2018/09/30(日) 18:13:48.80ID:SkYuEApj
バイブか愛撫かって重要なん?
2018/10/01(月) 19:31:45.23ID:gNvpqBnl
MS-DOSのVer2.xxからはいろんな意味でUNIXをリスペクトしてるからな
UNIX流にファイルハンドルでファイルを扱ったり、階層ディレクトリを導入したり、
環境変数を導入したりな
マイクロソフト自身がXENIXというUNIXを販売してたしね
2018/10/02(火) 09:56:28.13ID:RbiSZVUW
マカーが散々捏造したきたようにその手の話は眉唾もの。
2018/10/02(火) 10:07:26.09ID:+xKncks4
どれも中途半端な劣化コピー(ですらない)
2018/10/12(金) 13:43:11.48ID:wcqfJg6x
今デスラーと言ったのかヤマトの諸君
2018/10/12(金) 16:38:59.78ID:Ez4dMXEm
>>444
今じゃない、10日前だ
2018/10/13(土) 12:11:31.24ID:hiy4qYnE
何もかも皆懐かしい
2018/10/14(日) 03:58:05.06ID:rZ1ia0YQ
最近のC++コンパイラはAVX2命令ガンガン吐いてくるからすごいな
2018/10/14(日) 10:35:45.88ID:jfwl8Yip
じきAVX3になるよ
2018/10/14(日) 12:27:32.87ID:OJyCZLlW
AVX3と呼べるものはAVX512なんでは?
2018/10/14(日) 15:29:22.91ID:jfwl8Yip
>>449
それ、AVX3は通称
2018/10/14(日) 15:39:37.78ID:jfwl8Yip
あんま詳しくないが同じような処理を繰り返す場合には速いらしいな
452デフォルトの名無しさん
垢版 |
2018/10/14(日) 16:01:42.97ID:13p+7YwI
>>451
MMX, SSE〜SSE4, AVX, AVX2, AVX512 は、SIMD命令だから、ループを展開して、
ベクトル計算のように考え直した場合、そのベクトルの足し算やベクトルの
要素ごとの掛け算などが速くできるようになる。
2018/10/14(日) 19:28:20.62ID:jfwl8Yip
C++で吐く場合ってあえてそうなるようにコーディングしてるんだと思うが
2018/10/19(金) 01:46:50.25ID:7j5wTJzZ
x86_64のRAXのRってなんの略か分かる?
EAXはExtended AX、AXはAccumulator (eXtended)でしょう。
「R」とはいったいなんなのだろう。

それとは別に、EAXって拡張拡張可算なんだね。
互換性とかの観点からすると仕方無いとも思うが もうちょっとマシな名前はなかったんだろうかw
2018/10/19(金) 02:17:15.49ID:GdMTdegv
>>454
https://stackoverflow.com/questions/43933379/what-do-the-e-and-r-prefixes-stand-for-in-the-names-of-intel-32-bit-and-64-bit-r
2018/10/19(金) 02:17:24.27ID:HB9XqOkY
>>454
Registerの'R'らしい
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11116234946
2018/10/23(火) 19:26:31.75ID:cKF5Z2eR
>>455
>>456
あざす。
マジかよ「レジスタ」のRなのか。
2018/10/30(火) 21:22:39.47ID:lJU58Qkm
asmutilsとか使ってる?
2018/11/01(木) 13:44:27.75ID:+7wF5VPI
それは初耳。
使ったこと無い。
2018/11/01(木) 19:26:14.88ID:upF+pHX5
i386アセンブラで書かれたGNU coreutilsみたいよ。
なんか紹介文に「アセンブラ楽しいから 皆もソース読んでね!」みたいなことが書かれてたw
2018/11/02(金) 04:52:07.72ID:XrjXjB5n
書くほうは好き勝手に書けるが、読むほうは地獄。
2018/11/02(金) 08:16:49.79ID:tmRne/9W
よくわからんがhttpdまで実装しててすごい
https://github.com/leto/asmutils/blob/master/src/httpd.asm
463デフォルトの名無しさん
垢版 |
2018/11/12(月) 16:49:29.06ID:D6ILV7Jx
iOSアプリでPoketAssemblyなるもの落としたんだが、説明に英語でLC-3アセンブリ言語って書いてて、
初めて見るCPUなんだが、何か情報源知ってたら教えて欲しい。
ネットで調べてもイマイチ見つからない。

幸いにも?CASL2に似てる命令っぽいし、マクロ的なのは多いっぽいのはサンプル見て理解出来た。
命令一覧があれば遊べそうなんだが。。。
2018/11/27(火) 16:44:22.01ID:5ZGwy4y3
https://en.wikipedia.org/wiki/LC-3
465デフォルトの名無しさん
垢版 |
2018/11/27(火) 17:52:50.88ID:Obj68CxZ
ありがとう。
ざっと読んだ感じ、立ち位置的にもアメリカ版CASLみたいな教育用アセンブラって感じみたいね。
リンク辿って簡単な入門書読んでみたけど、結構独特の文法。
(あっちでは普通なのかもだけど)
2019/04/08(月) 14:53:49.70ID:AKTKNqT2
ゴキブリだな
2019/04/09(火) 02:48:06.84ID:ecU2afsj
↑は誤爆
468デフォルトの名無しさん
垢版 |
2021/01/04(月) 12:36:40.84ID:YWROyFrK
あげ
2021/01/05(火) 04:05:29.85ID:UotbUhIg
ほしゆ(・ω・)
2021/01/07(木) 07:57:36.28ID:z38zGwp3
ほしゆ(・ω・)
471デフォルトの名無しさん
垢版 |
2021/01/08(金) 04:06:12.38ID:1gvHWZUI
最近Shenzhen I/Oっていうゲームで遊んでる。
なかなか面白い。
2021/01/10(日) 01:40:42.66ID:8xK08N6e
ほしゆ(・ω・)
2021/01/11(月) 04:07:33.68ID:vsmm6LZn
ほしゆ(・ω・)
2021/01/12(火) 01:48:27.00ID:BGoPpVSA
ほしゆ(・ω・)
2021/01/13(水) 02:10:58.91ID:eqmtOihP
ほしゆ(・ω・)
2021/01/14(木) 03:46:58.66ID:3+P8xNcz
ほしゆ(・ω・)
2021/01/15(金) 13:42:56.28ID:fvTWdCHf
ほしゆ(・ω・)
2021/01/16(土) 06:49:54.71ID:NQ74fDew
2021/01/17(日) 03:37:23.75ID:e26UwdAn
ほしゆ(・ω・)
2021/01/17(日) 10:19:59.55ID:+Re8WH7P
2021/01/18(月) 08:10:09.74ID:8EqGCXIN
2021/01/19(火) 09:43:11.39ID:coSnOa/n
2021/01/20(水) 06:36:39.53ID:E7w8EE6H
2021/01/21(木) 06:57:03.05ID:n9shQ9yw
2021/01/22(金) 08:04:45.82ID:nyX0aCm4
2021/01/22(金) 18:55:51.17ID:3MBBWHbo
2021/01/23(土) 08:08:45.80ID:YSnsO/g5
2021/01/23(土) 18:20:35.45ID:M9OdZ2iK
nop
2021/01/23(土) 18:56:13.54ID:xAMZL3zC
2021/01/24(日) 05:16:22.55ID:pjlHZJZp
ほしゆ(・ω・)
2021/01/24(日) 10:33:39.78ID:nFcy6Wof
2021/01/24(日) 21:34:33.71ID:5EmSLhx1
2021/01/25(月) 01:14:04.33ID:8wGtM9wR
LD A,A
2021/01/25(月) 06:57:09.53ID:B8BUPZSP
2021/01/25(月) 18:43:27.56ID:eNzhdOTb
2021/01/26(火) 07:16:31.44ID:HWrI1kq8
2021/01/26(火) 19:10:19.96ID:xiVACSBS
2021/01/26(火) 22:21:57.60ID:jLv95Fp9
保守荒らしウザ
2021/01/27(水) 08:03:22.27ID:GtfmOBOp
2021/01/28(木) 11:58:10.16ID:qF6PRPzP
2021/01/29(金) 06:46:53.13ID:SRof6bX8
2021/01/29(金) 19:10:07.64ID:Oej92Z3V
2021/01/30(土) 07:13:30.38ID:GMsS3lPz
2021/01/31(日) 11:31:40.86ID:4FmEUIWr
2021/01/31(日) 18:34:55.25ID:/VICbbry
2021/02/01(月) 06:36:55.47ID:7IwvKmQP
2021/02/01(月) 19:24:29.25ID:k0sdu+w1
2021/02/02(火) 06:53:40.20ID:RPFHnast
2021/02/02(火) 18:12:16.63ID:DOfhhOOJ
2021/02/03(水) 07:04:27.28ID:hupLgZnC
2021/02/03(水) 19:03:14.38ID:0ns/dwCV
2021/02/04(木) 06:40:21.90ID:AVzOP5bd
2021/02/04(木) 08:43:11.73ID:kdCq8hC0
>>417
1.5年前の書き込みで誰もいないスレだと思うけどw

ふと思ったんだけど、これ言語設計した人に
ヘブライ語圏とか右から左に書く言語の人がいたりしたんじゃないかな、などと思ったり

MOV A,B   例えばこれ左から読むと日本人には言語的にわかりやすい

BをAに移動

この説どう?w
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。