アセンブラ… Part 12 ..
[2ch|▼Menu]
596:デフォルトの名無しさん
08/06/03 06:28:13
>>595
間接アドレシングで出来るから、手元にあるデータシートに記載されてる説明を確認の事。
手元になければ↓からダウンロードして欲しい。
URLリンク(www.microchip.co.jp)


597:デフォルトの名無しさん
08/06/03 13:11:35
すごいですありがとうございます!

598:デフォルトの名無しさん
08/06/05 13:41:56
【算術演算結果による分岐】 N 番地の内容から M 番地の内容を引き,答えが負なら P 番地に -1(#FFFF)を,正なら +1(#0001)を格納するプログラムを作成しなさい.

599:デフォルトの名無しさん
08/06/05 13:46:02
>>598
だが断る


600:デフォルトの名無しさん
08/06/05 15:58:03
>>598
問題文が糞だから書き直せ屑

601:デフォルトの名無しさん
08/06/05 18:58:36
>>598
#define V(X) *(short *)(X)

r = V(N) - V(M), r < 0? V(P) = -1 : r > 0? V(P) = 1 : 0;

602:デフォルトの名無しさん
08/06/05 23:40:05
答えが 0 の時は、格納しちゃダメなんじゃないのか?

603:デフォルトの名無しさん
08/06/06 01:20:57
そーゆー問題のときは"0"=正で考えていいんでないかい。
特別扱いする必要があったらそういう注意書きがあると思う。


604:デフォルトの名無しさん
08/06/06 02:52:33
>>598
CLRX
INCX
LDD M
CPD N
SBEX #0
CPD N
SBEX #0


605:デフォルトの名無しさん
08/06/06 02:55:52
STX P

606:デフォルトの名無しさん
08/06/06 07:25:19
>>598
;うろおぼえ68000
START:
MOVE.W SR, -(SP)
MOVEM.L D0-D1, -(SP)
MOVEQ #1,D1
MOVE.W N(PC),D0
CMP.W M(PC),D0
;SUB.W M(PC),D0
BPL L_PLUS(PC)
NEG.W D1
L_PLUS:
MOVE.W D1,P(PC)
MOVEM.L (SP)+, D0-D1
MOVE.W (SP)+, SR
RTS
N: DC.W $FF00
M: DC.W $00FF
P: DS.W 1

607:デフォルトの名無しさん
08/06/06 10:50:12
しれっと特権命令使ってんじゃネーヨw

608:デフォルトの名無しさん
08/06/06 12:31:03
ああ、そうか。
MOVE.W (SP)+, SR
RTS
じゃなくて
RTR
で、いいんだ。

609:デフォルトの名無しさん
08/06/06 23:17:04
>>603
> そーゆー問題のときは"0"=正で考えていいんでないかい。
> 特別扱いする必要があったらそういう注意書きがあると思う。

そう言う思い込みはバグの元になるぞ。

610:デフォルトの名無しさん
08/06/06 23:21:17
68000だけはmove SRが一般命令だったり。
010になって特権命令になったが。

ところで、PC相対ってオペランドの右に使えたっけ?
なんか制限あったような気がするんだが。




611:デフォルトの名無しさん
08/06/06 23:52:58
>>610
> 68000だけは

68008 のこともたまには思い出してください。

> move SRが一般命令だったり。

move from SR の方だけね、move to SR は 68000 でも特権命令。

> ところで、PC相対ってオペランドの右に使えたっけ?

て言うか、CMP 命令は右にしか使えない。

Add/Sub なんかはどっちにでも使える (但し、反対側は Dn のみ)
けど、CMP はその後の条件判定を反対にすればいいので、片方しか
必要ないと判断したんだろうな。

612:デフォルトの名無しさん
08/06/08 12:25:06
;青い本みてやりなおした68000
START:
MOVE.W SR, -(SP)
MOVEM.L D0-D1/A0, -(SP)
MOVEQ #1,D1
MOVE.W N(PC),D0
CMP.W M(PC),D0
BPL L_PLUS(PC)
NEG.W D1
L_PLUS:
LEA P(PC), A0
MOVE.W D1, (A0)
MOVEM.L (SP)+, D0-D1/A0
RTR

dstにd16(PC)使えるの4命令しかなかた

613:607
08/06/08 15:33:43
* ステップ数を詰めてみた。

MOV.W N,D0
CMP.W M,D0
SMI D0 *(00/FF)
EXT.W D0 *(0000/FFFF)
ORI.W #1,D0 *(0001/FFFF)
MOV.W D0,P

* もっと変則にしてみたがステップ数縮まらず。

MOV.W N,D0
CMP.W M,D0
SPL D0 *(FF/00)
EXT.W D0 *(FFFF/0000)
ASL.W #1,D0 *(FFFE/0000)
NOT.W D0 *(0001/FFFF)
MOV.W D0,P

* Scc を用いない方法。

MOV.W N,D0
SUB.W M,D0
ASR.W #8,D0 (00??/FF??)
ASR.W #8,D0 (0000/FFFF)
ORI.W #1,D0 (0001/FFFF)
MOV.W D0,P

* そして分岐を使っていないことに気が付く。

614:デフォルトの名無しさん
08/06/08 17:27:20
素直な人間の思考から外れるものはコメント無いと泣けるので勘弁してください。

615:デフォルトの名無しさん
08/06/08 17:32:57
>>613
(PC)を使ったらもっと縮まるんじゃない?

616:デフォルトの名無しさん
08/06/08 18:55:49
直感的ではない技巧に走るのは厨房

617:デフォルトの名無しさん
08/06/08 19:35:35
それは実務に限った話だ。

618:>>611
08/06/08 20:52:52
>>612
> dstにd16(PC)使えるの4命令しかなかた

ほんとだ、俺もすっかり忘れてた。

そもそも、PC 相対はアクセスモードがプログラム参照 (FC=ユーザープログラム
or スーパーバイザプログラム) になるから、可変データを PC 相対でアクセスす
る領域に置くのは推奨されない。

さすがにデータ参照とプログラム参照で違うメモリをアクセスするシステムは見
たことないけど、プログラム参照領域は書込み禁止を設定しているシステムはあ
るのでちょっと注意した方がいいかも知れない。

> MOVE.W SR, -(SP)

move ccr, (-a7) でいいと思うが。

あと、68k は大抵の命令でコンディションコードが変化するから、サブルーチン
の前後でコンディションコードを保存しないと言う流儀の方が多いと思う。

619:デフォルトの名無しさん
08/06/08 22:23:20
コメントなしにいきなり殴り書きされてるんじゃない限り
技巧のうちにゃ入らんだろ

620:デフォルトの名無しさん
08/06/09 18:12:54
>>598
LEAX N
CMPX M
BPL L_PLUS+1
LDB #$FF
L_PLUS
CMPX #$C601
SEX
STD P


621:デフォルトの名無しさん
08/06/09 20:07:17
って最初からボケてる LDX N 或いはLEAX [N] か?

622:デフォルトの名無しさん
08/06/09 20:11:46
>>621
だね。6809は専門じゃないからつっこみかねてた。
ときに C6 01 にコメント振ってくれるとありがたい。





つか SEX 書きたかっただけじゃないか?

623:デフォルトの名無しさん
08/06/09 20:35:48
バレたか(w
C6 はLDBのつもりだった、反省はしてない。


624:ヽ・´∀`・,,)っ━━━━━━┓
08/06/09 20:39:00
Obj-Cでsuper freeとか書くようなノリか

625:デフォルトの名無しさん
08/06/09 21:05:43
ただ8bitCPUだから、コスト的にはどうなんだろうな?
クロック表が見当たらないぜ。

626:デフォルトの名無しさん
08/06/09 21:29:08
68系ばっかりになるのなw

627:デフォルトの名無しさん
08/06/09 21:59:12
このスレで最高にビューティフルなマシン語を持つ超エレガントなアーキテクチャのCPU仕様を作ってARM超えを目指そうぜ!
プロジェクトリーダーはダンゴさんに任せた!

628:デフォルトの名無しさん
08/06/10 08:46:38
Kaltfeuerとでも名付けよう。

629:デフォルトの名無しさん
08/06/11 03:19:05
沢村さんを推します

630:デフォルトの名無しさん
08/06/13 18:28:34
ある命令の実行に何クロックかかるかを知りたいんですが、
CPU毎に"命令Aにはnクロックかかるよ"っていうのがリストされた資料があるんですか、それとも実測ですか?
もし実測しかないならその方法を簡単に教えてください

631:デフォルトの名無しさん
08/06/13 18:33:45
自己解決しました
amdとintelの最近のプロセッサものはとりあえず見つけました
メーカーがwebで公開してるんですね・・・

632:デフォルトの名無しさん
08/06/13 19:28:44
なんか昨今はGoogleする前に2chって思考なのかね

人の脳みそをあんまり安く考えてると、働くようになってから
苦労するんじゃねーかな

まあ、半可通の糞ほど教えたがりなんだが

633:デフォルトの名無しさん
08/06/13 19:43:33
これがゆとりか・・・

634:デフォルトの名無しさん
08/06/13 20:05:52
普通に勉強してれば命令語一覧とかに載ってるのを知ってそうなものだが・・・
そのうち
「ある命令の実行でフラグがどう変わるか知りたいんですが?」
とかの質問も来るのかな。

635:デフォルトの名無しさん
08/06/13 20:54:57
>>632
逆に半可通だからこそそういう疑問が出るんじゃないかな?
ビンゴワードを知らないと何回か周辺ワードでググってそれを探さないといけないから意外と難しい。
昔は頭使わなくてもマイコン雑誌の特集とかで載ってて必修みたいなものだったけどさ。

636:ヽ・´∀`・,,)っ━━━━━━┓
08/06/13 21:14:19
実測するためのCソースもIntelが提供してるな。

アレもわかりにくいところにあるけど

637:デフォルトの名無しさん
08/06/14 01:40:46
>>635
> 逆に半可通だからこそそういう疑問が出るんじゃないかな?

半可通の酋長ダんゴ先生をバカにシュルナ!!!!





638:デフォルトの名無しさん
08/06/14 03:53:12
知っているのならさっさと教えろやクズどもが。

639:デフォルトの名無しさん
08/06/14 09:32:33
>>638
あんただれ?

640:デフォルトの名無しさん
08/06/14 12:38:30
俺だよ俺俺

641:デフォルトの名無しさん
08/06/14 12:43:50
あちこちで、教えるクンがオナニーしすぎて>>638みたいな機知外
が本当に増えている


642:デフォルトの名無しさん
08/06/14 13:36:40
>>634
それも実験して調べるのです(Z80の隠し命令かよ・・・)。

643:デフォルトの名無しさん
08/06/14 18:00:18
>>641
それ以上にそいつ等をスルーできないやつ等のほうが増えて内科医。

644:デフォルトの名無しさん
08/06/14 18:11:17
おっさんくさいスレになりました

645:デフォルトの名無しさん
08/06/14 22:23:13
まあアセンブラなんて今時の若い者はあまりやらんからな。

646:デフォルトの名無しさん
08/06/14 23:17:34
つPIC

647:デフォルトの名無しさん
08/06/14 23:22:19
最近の若い奴はJVMとCLRのアセンブラ(バイトコード)は結構読めるよ。


648:デフォルトの名無しさん
08/06/15 08:17:07
NASM のドキュメントの Appendix B って消えた?
あれ便利してたんだが。

649:デフォルトの名無しさん
08/06/17 22:28:15
今時アセンブラの需要はあるのかねえ

650:デフォルトの名無しさん
08/06/17 22:34:13
コンパイラベンダにゃ必須だろう。

651:デフォルトの名無しさん
08/06/17 22:36:25
エンコーダとか

652:デフォルトの名無しさん
08/06/17 22:40:54
ベクトル化ガリガリやりたいなら必要だね

653:デフォルトの名無しさん
08/06/17 23:03:58
組み込みで、ブートローダー書く人とか。

654:デフォルトの名無しさん
08/06/17 23:31:20
高級言語で書けない命令がどれだけあると思ってるんだ?

655:デフォルトの名無しさん
08/06/18 00:10:10
ローテート命令。
なんでC言語にはローテート演算子が無いんだ。
何度欲しいと思ったことか…


656:デフォルトの名無しさん
08/06/18 00:13:10
ローテートってそんなに速くなかったような気がするよ

657:デフォルトの名無しさん
08/06/18 00:45:22
シフトと論理和もしくは加算で書くより速いだろJK

何でもかんでもアセンブラで書きたがるのは昔の厨二病

658:デフォルトの名無しさん
08/06/18 00:47:15
結果をすぐ使わないのであれば
うまく並列実行されれば
ローテートより速いんじゃね?

659:デフォルトの名無しさん
08/06/18 00:48:59
>>657
それがだな、昔シフト系の命令がクソ遅い Pentium4 とかいう CPU があってだな。
x86 の rol/ror 命令使うよりも mmx シフトと mmxor で書いたほうが速いとかいう
ふざけたこともあったのだよ。フツーの 32bit の SISD でね。

660:デフォルトの名無しさん
08/06/18 01:00:51
つーか、ローテート命令が遅いなんてデマを流さないでほしい。

661:デフォルトの名無しさん
08/06/18 01:53:52
>>660
CPU によるけど、ローテート命令が速くない環境はあるよ。
intel の 24896604_j.pdf からの引用だけど、x86 では

add : レイテンシ 0.5clk, スループット 0.5clk
shl/shr: レイテンシ 4clk, スループット 1clk
rol/ror: レイテンシ 4clk, スループット 1clk

でー mmx だと

pslld: レイテンシ 2clk, スループット 1clk
psrld: レイテンシ 2clk, スループット 1clk
por: レイテンシ 2clk, スループット 1ckl

ね。

SISD で rol/ror より速いっつーのは記憶違いで嘘だったけど。
まーこういう糞な石はメインストリームじゃなければ無視できる
のだけど、一時期多数派を占めてたりしたから無視するわけにも
いかんのよ。

662:デフォルトの名無しさん
08/06/18 03:25:13
そんなにCがいいならインラインアセンブラつかえよ

663:デフォルトの名無しさん
08/06/18 03:31:41
ローテートぐらいならgccの拡張で使えたような気がする

664:デフォルトの名無しさん
08/06/18 13:26:14
rol や ror はintrinsicであるんだけどrolxやrorxのようにキャリーと一緒に回すのが無いんだよね

665:デフォルトの名無しさん
08/06/18 13:45:41
そもそもCにはキャリーの概念すらないし。

666:デフォルトの名無しさん
08/06/20 09:47:19
Cのソースからアセンブラ吐いたんだけど,Cのソースではhoge(0,1)って引数で関数
呼び出してるけど、アセンブラでは
movl $1, 4(%esp)
movl $0, (%esp)
という風に引数を逆に処理してるのは、どういう意味があるの?ご教示お願いします



667:デフォルトの名無しさん
08/06/20 09:54:29
>>666 悪魔乙
gas の記法だろ。アセンブラによってオペランドを書く順番が違ってくるのさ


668:デフォルトの名無しさん
08/06/20 10:02:58
いや,オペランドじゃなくて引数の順序だろ.
C では良くあること.

669:デフォルトの名無しさん
08/06/20 10:05:04
>>666
・スタックは数が減る方に向かって伸びる。
・その例でも引数1が %esp+0, 引数2が %esp+4 になってるでしょ?
・引数のポインタを取ったとき、スタック上の引数列が配列になるでしょ?
hoge(int foo, int bar) を例に取ると
int *p = &foo; によって
p[0] == foo
p[1] == bar
となる。

で、このことは、引数不定とか可変長引数を実装するときに
すごく都合がいい。スタックトップが必ず引数1になる。
K&Rの頃は引数不定がまかり通ってたし。

なお、>>666 の例では、%esp はあらかじめ減じられていると思われるため
movl $0, (%esp)
movl $1, 4(%esp)
のように引数順に処理することもできるが、コンパイラの都合上それをやっていない。

670:デフォルトの名無しさん
08/06/20 11:45:08
処理系によるんじゃないか?

671:デフォルトの名無しさん
08/06/20 12:04:24
>>666
Cの引数の評価順は特に決められていないので、コンパイラの都合で好きな順序で処理してよいわけだが、
たまたま逆順の方がコンパイラを作りやすかったとか、特に気にしないで作ったらたまたま逆順になったとか、
そんなとこだろうと思うよ
特に意味はないかと

672:デフォルトの名無しさん
08/06/20 12:12:48
厳格に決まっているわけではなく、
>>669
の述べているような理由などから、私が使っている処理系では引数がたまたま
決まっているということでいいんですか?



673:デフォルトの名無しさん
08/06/20 12:13:51
↑訂正、
引数がたまたま逆に処理されている




674:デフォルトの名無しさん
08/06/20 12:55:25
>たまたま逆に
いや単に右から左なだけで,逆順とか正順とか決まってないから

675:デフォルトの名無しさん
08/06/20 13:34:07
カウントダウン方向で繰り返し処理すれば
フラグ見るだけで処理の終わりがわかる

676:デフォルトの名無しさん
08/06/20 15:03:55
コード生成とスタックに積む都合から言うと、スタックに先に積むほうから
評価をしたいわけだ。
それと、可変長引数のことを考えると、Cの引数は右から左の順で積んだ
ほうが都合が良い、ということ。

677:デフォルトの名無しさん
08/06/20 18:12:47
やり方は、複数あるが後々都合が良い
ってことですね。ありがとうございます。

678:デフォルトの名無しさん
08/06/20 18:21:36
富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね

富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね

富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね

富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね 富の目キモすぎ。バケモン。身障。DQN男。死ね

679:デフォルトの名無しさん
08/06/20 18:45:53
呼出し規約とかは関係してこないの?

680:ヽ・´∀`・,,)っ━━━━━━┓
08/06/20 18:47:45
push/pop命令の動きはABI云々じゃなくてCPUの動作仕様だからな

681:デフォルトの名無しさん
08/06/20 20:23:35
VC++ に限って言うなら、
普通の関数は右から左、
普通のメンバ関数は左から右、
可変長引数を持つメンバ関数は右から左、だな。

682:デフォルトの名無しさん
08/06/20 20:25:17
Cっていうか、WindowsAPIの仕様に引っ張られてるんじゃね?

683:ヽ・´∀`・,,)っ━━━━━━┓
08/06/20 20:28:54
thisポインタ=ecxは何とかならんかったのかと思う
まあ、他に無いっちゃないが

684:デフォルトの名無しさん
08/06/20 20:29:03
PASCALキーワード!!!

685:デフォルトの名無しさん
08/06/20 20:57:03
VC++のメンバはthisをecxに積んで右からスタックだったはずだが

686:デフォルトの名無しさん
08/06/20 22:39:15
なんか、引数をスタックに積む順序と引数の評価順序の区別が付いてない
奴がいるな。

687:デフォルトの名無しさん
08/06/20 22:48:48
↑どういうこと?

688:デフォルトの名無しさん
08/06/20 22:49:28
>>685
ごめん。まちがえてた。

689:デフォルトの名無しさん
08/06/21 00:59:53
引数の評価順序って決まってたっけ

690:デフォルトの名無しさん
08/06/21 01:07:38
68000での質問です。
cmpi.w #$1234, D0

cmpi.l #$12345678, D0
と同等な事をA0に対しても行いたく思い、
cmpaを使ってみましたが上手くいきません。
なぜでしょうか?

691:デフォルトの名無しさん
08/06/21 08:33:30
>>687
左から評価して、右から積んでも規約に違反はしてない。

評価した順にスタックに積んで行くほうが楽。
という「都合」が引数の評価とスタックに積む順序に影響しているってこと。


692:デフォルトの名無しさん
08/06/21 09:13:13
>>690
エスパーはいないぞ!
もっと詳しく書け。

693:デフォルトの名無しさん
08/06/21 16:40:04
>>687
スタックに積まれた引き数の配置は処理系で決まっている。

順番に詰まれるかどうかは分からない。

評価順序も決まっていない。

>>690
> 上手くいきません。

何をやって、どうなることを期待してて、どうなったかを書け。

694:690
08/06/21 17:07:42
解決しました。
理由もなんとなくわかりました。
ありがとうございました。

695:690
08/06/21 17:15:55
お前らの役立たずっぷりに呆れました。
もう二度と来ません。

696:690
08/06/21 17:18:51
>>695
まあそれが本音ですけどね。
もはや揚げ足取りですし。
ありがとうございます。

697:デフォルトの名無しさん
08/06/21 17:23:01
なんかね、どこからが釣りだったのかね、もうね

698:690
08/06/21 18:27:33
詰まらない偽者がスレ汚ししてすみません。
最終レスは>>695です。
ありがとうございました。


699:デフォルトの名無しさん
08/06/21 18:48:48
いいから消えろよクズ

700:デフォルトの名無しさん
08/06/21 18:57:46
ほっとけ
構うな

701:690
08/06/21 19:16:46
>>700
まったく同意

702:690
08/06/21 20:47:38
誰だお前

703:デフォルトの名無しさん
08/06/21 22:33:55
もう誰が誰だかわやくちゃなんだけど、休日にわざわざこんなスレにまできて...

なんかかわいそうだな。

704:デフォルトの名無しさん
08/06/23 20:35:43
Re:> お前はなにを言っているのか

705:デフォルトの名無しさん
08/06/24 00:44:09
king、コテ付け忘れてるぞ

706:1stVirtue
08/06/24 21:10:58
Reply:>>705 お前に何がわかるというのか。

707:デフォルトの名無しさん
08/06/25 01:47:33
キングさんって、スクリプトですか。??

708:デフォルトの名無しさん
08/06/25 10:58:32

数学板のking?

709:デフォルトの名無しさん
08/06/26 21:27:12
いきなりkingネタかよ
数学板以外にもたまーに顔出してるよ、奴は

710:デフォルトの名無しさん
08/06/30 16:29:09
MASM MSからダウンロードしたけど、VC++ Express 2005が必要だと・・・
VC++ Express 2008じゃだめ?なの?

711:デフォルトの名無しさん
08/06/30 16:53:44
>>710
強制解凍してけば長いファイル名のが出てくるからそれを拡張子exeにリネーム

712:ヽ・´∀`・,,)っ━━━━━━┓
08/06/30 17:07:48
もうNASMでえーやん

713:デフォルトの名無しさん
08/06/30 17:32:54
>>711
thnx・・・thnx......

冷静に考えて
そうだ、ここは俊足なレスポンスを期待しちゃいけない、
と思い、

無い頭で考えて、
オーソドックスにプロンプトの指示に従い、

アンインストールをしたところで、
>>711発見 orz


あうぅぅぅ

714:デフォルトの名無しさん
08/06/30 17:35:23
JWasmってどうなんだろ?

715:デフォルトの名無しさん
08/06/30 17:41:44
>>712
YASMどうよ?

716:デフォルトの名無しさん
08/06/30 19:20:57
Yasm URLリンク(www.tortall.net) NASM/GAS互換 64bit対応 修正BSDライセンス
JWasm URLリンク(www.japheth.de) MASM v6/WASM互換 Open Watcomライセンス

717:デフォルトの名無しさん
08/07/01 08:54:17
ちょっと使ってみた個人的な感想など:

Jwasm: コマンドラインの引数など使い勝手がいいとは言い難い。
特にリンカは最悪で、設定ファイルが必要だとか訳が判らん。
結局、リンカだけ alink URLリンク(alink.sf.net)
そこにある win32.lib を使うことでバイナリ作成した。

その後に使った fasm URLリンク(flatassembler.net) なら、
単体で実行バイナリまで生成することが判った。
記法も独特ではあるけども、ヘルパのインクルードが充実していて
あるAPIの挙動を確かめるようなテスト・ルーチンなんかをスクラッチするには
いい感じだと思った。


718:デフォルトの名無しさん
08/07/01 17:48:04
いや、互換物はオリジナルと比較しないと意味ないでしょ。
あと、wlinkはなんでもできる強力なリンカだよ。libだけ用意すれば(.aでも.libでも食べてくれる)
jwasm .\samples\windows1
wlink FORM Windows NT runtime CON F windows1 L kernel32.lib
みたいな感じでいける筈。

たしかwatcom本体の方にMSのlink互換の奴(ラッパー?)が入ってる筈だから
それの差し替え用なのかもね?

719:デフォルトの名無しさん
08/07/01 19:23:34
masm32のinc参照してるやつも導入pathを調整すれば同様に
jwasm .\samples\windows3
wlink FORM Windows NT F windows3 L kernel32.lib,user32.lib
でバイナリは出来るんだけと、これって豆腐窓が出れば成功なのかな?
窓プログラムはソース見てもいまいちわからないorz


720:デフォルトの名無しさん
08/07/02 19:58:28
lzasmってTASMのideal文法サポートだけで、MASM互換部分はごっそり抜けてるのかな?
それとも元々こんなもんなの? 共通ソースってどうやったら書けるんだろうこれ?

721:デフォルトの名無しさん
08/07/02 21:02:44
masm support なんて書いてないけど

722:デフォルトの名無しさん
08/07/02 21:30:44
っていうかTASMとMASMの共通ソースってことね。
ローカルラベルとか使わなきゃ出来るんだと思ってた。

723:デフォルトの名無しさん
08/07/02 22:30:47
TASM,MASM両用にしたい場合
TASMのMASM5.1互換モードだかなんだかを使っていた記憶がある

724:デフォルトの名無しさん
08/07/05 04:50:49
ゲームの解析をしているのですが

MOV EDX,exe.00666666
00666666 は XOR AL,31 となっています
近くに1〜31範囲外の定数ビットシフトというコメントが多く使われているのですが
どのような処理をしているのかわかりますでしょうか?


725:デフォルトの名無しさん
08/07/05 05:19:48
単なるデータじゃないってなんでわかったの?

726:ヽ・´∀`・,,)っ━━━━━━┓
08/07/05 15:53:04
つかDSに命令書くとDEPに殺されるだろJK萌え〜

その命令らしきものの後にretなりjmpがある?

727:724
08/07/06 02:01:18
>>725
00666666 はrdataセクションでしたorz
MOV EDX,exe.00666666のASCII"41C6tvejeNiWj・・・・"の中身が格納されてるだけでした


>>726
MOV EDX,exe.00666666
SUB EDX,EAX
CMP EDX,ESI
JNB SHORT exe.0050175C

0050175C TEST EDI,EDI
0050175E JNZ SHORT exe.00501764
00501769    MOV EAX,66666667
0050176E IMUL EDX

この↓にもジャンプ命令がたくさんあります。リターンはずっと後にでてきます。

728:デフォルトの名無しさん
08/07/10 07:03:07
うんこい質問で申し訳ないですが、

00401239 |. B9 64000000 MOV ECX,64
0040123E |. F7E1 MUL ECX
00401240 |. 83F8 00 CMP EAX,0
00401243 |. 75 06 JNZ SHORT xxx.0040124B
00401245 |. B8 01000000 MOV EAX,1
0040124A |. C3 RETN
0040124B |> 33C0 XOR EAX,EAX
0040124D \. C3 RETN

関数の末尾のコピペなんですが、
アドレス0x00401239時点でのEAXが0以外で、この関数が1を返す事はあり得ますか?
ECX(=0x64)を掛けている理由がよく分からないので、そういう可能性があるのかと思いまして。

729:デフォルトの名無しさん
08/07/10 10:26:35
eaxの値が0x04000000〜0xf4000000の範囲なら1

730:デフォルトの名無しさん
08/07/10 16:44:24
>>724
単なる難読化だろw

731:デフォルトの名無しさん
08/07/11 04:23:03
初歩的な質問ですが教えてください

MOV DWORD PTR DS:[ESI],00400000

例えば、00400000にはアドレスが入っています。この場合、00400000を移動するのか
格納されているアドレスを移動するのか、どちらでしょうか?



732:デフォルトの名無しさん
08/07/11 19:34:23
// ESIはポインタ
*ESI = 400000;


733:デフォルトの名無しさん
08/07/11 23:41:52
それだと誤解を招きそうなので

// ESIはポインタ
TYPE_T *ESI;
ESI = 0x400000;

って書いた方が

734:デフォルトの名無しさん
08/07/11 23:48:37
ポインタじゃなくて、ただのレジスタとメモリ領域。
ポインタって言ってると、わかり辛い。

735:デフォルトの名無しさん
08/07/12 00:19:54
>>731

セグメントアドレスがDSの値でオフセットアドレスがESIの値なメモリ領域に十進数の400000を入れているように見える

736:デフォルトの名無しさん
08/07/12 10:02:54
// DSの説明ははしょるけど  DWORD PTRなんだから
DWORD* ESI;
*ESI = 0x400000;
// でええんでないか?


737:デフォルトの名無しさん
08/07/12 10:42:06
皆さんありがとうです
ESIにデータセグメントのアドレス00400000を示しているということですね
ではそのままなら[ESI+8]は00400008でよいのですか?

738:デフォルトの名無しさん
08/07/12 11:28:25
>>737
だめ

739:デフォルトの名無しさん
08/07/12 11:47:50
ddebでも落として飽きるまで実験しろ

740:デフォルトの名無しさん
08/07/13 07:45:00
だめだこりゃ

741:デフォルトの名無しさん
08/07/14 18:39:18
キャリーフラグの反転ができる CPU では、
コイツも使ってやってね(Z80 表記)。

  CP   0AH
  CCF
  ADC   30H
  DAA

742:デフォルトの名無しさん
08/07/17 13:12:01
URLリンク(www.computerworld.jp)

743:デフォルトの名無しさん
08/07/18 00:00:59
質問:アセンブラの除算

質問です。アセンブラの除算は、具体的に どのような処理をしているのでしょうか。
「ビット レベルの計算」のイメージができません。
また、除算は ほかの計算と比較して、クロック数を消費するとインターネットに書いてありました。
それが なぜなのか、理解できていません。
おそらく、どのような計算をしているかを把握できれば、理解できるとおもうのですが。
インターネットで「除算 アセンブラ div 」などで検索しましたが、求めている情報が入手できませんでした。
そのため、質問させていただきます。
また、読むべきサイト、書籍などがあれば、教えていただければ幸いです。
よろしく お願い致します。

744:デフォルトの名無しさん
08/07/18 00:06:58
除算器で検索

745:デフォルトの名無しさん
08/07/18 00:10:28
>>743

URLリンク(journal.mycom.co.jp)

ここを読んでまるっきり理解できなきゃ筋がないと見なす。

746:デフォルトの名無しさん
08/07/18 00:40:01
ありがとうございます。よんで勉強します。
論理回路の基礎は知っているので、何とか理解できそうです。

747:デフォルトの名無しさん
08/07/18 05:25:03
ビットレベルの計算って、要するに2進数で筆算してるだけの話じゃないか?

748:デフォルトの名無しさん
08/07/18 07:05:38
それ前にアセンブラの除算もCの除算もみな一緒だと思うが

749:デフォルトの名無しさん
08/07/18 09:00:46
>>747
筆算ってこたーない。。

750:デフォルトの名無しさん
08/07/18 09:51:37
>>749
マジなんか面白く上げ足とっただけか知らんが、イメージは筆算だ。
掛け算も同じ。

751:デフォルトの名無しさん
08/07/18 09:56:38
その人がどういうモデルで筆算というものを把握してるかに依るだろJK

752:デフォルトの名無しさん
08/07/18 10:30:08
>>745の84回で、モロに筆算の図が載っているわけだが

753:デフォルトの名無しさん
08/07/18 11:23:14
>>751
筆算にモデルもクソもあるか JC

754:デフォルトの名無しさん
08/07/18 11:40:04
夕食ってどうやって作るんですか->一例を回答->それは調理だな


755:デフォルトの名無しさん
08/07/18 16:51:24
CASLの問題のこと聞いてもおk?

756:デフォルトの名無しさん
08/07/18 18:43:28
レスがどんなアセンブラでも構わないならいいんじゃね?
っていうか専門スレないの?

757:デフォルトの名無しさん
08/07/18 18:51:47
情報処理試験のあれか、1バイトが16ビットだっけか。

758:デフォルトの名無しさん
08/07/18 19:26:11
おいおい
1バイトは8ビットだろ・・・。

759:デフォルトの名無しさん
08/07/18 19:32:52
情報処理技術者試験出題範囲を見る限りでは、1語16ビットとは書いてあるが「バイト」という単語は出てこないっぽい。

760:デフォルトの名無しさん
08/07/18 19:38:38
>>758
決まってるわけじゃないよ。多いだけ。

761:デフォルトの名無しさん
08/07/18 22:23:51
>>760
このスレの住人ならそんなこと百も承知だろう

762:デフォルトの名無しさん
08/07/18 22:36:07
ワードアドレッシングマシンなんだよな確か

763:デフォルトの名無しさん
08/07/18 22:54:27
CASL でシフトによる割り算がまったく思いつきません。どなたかお手本をみせていただけませんか?

764:デフォルトの名無しさん
08/07/18 23:21:16
>>763
とりあえず1ビット右シフトを考えてみて。

765:デフォルトの名無しさん
08/07/19 02:29:36
昔々あるところに、1byteが6bitや9bitのコンピュータがあってだな…

766:デフォルトの名無しさん
08/07/19 04:10:28
>>765
自作?

767:デフォルトの名無しさん
08/07/19 06:11:10
基本的に1byteは8bitだけど8bitじゃない場合もあるんだっけ?
マスタリングTCP/IPでは明確にするためにoctetを使う、みたいなのが書いてあった
ちなみに1hydeは156cmで固定

学生の知識だから合ってるか分かんないけど

768:デフォルトの名無しさん
08/07/19 09:59:51
PDP-10とかだな

769:デフォルトの名無しさん
08/07/19 12:53:32
> 学生の知識だから合ってるか分かんないけど

156cmをどこで習うんだよ!

770:デフォルトの名無しさん
08/07/19 13:36:10
>>763
34÷10
=0x22/0x0a
=100010b/1010b

            011
      ──
1010)100010
          1010
          ──
          01110
            1010
            ─
            0100

=11bあまり100b
=3あまり4

771:デフォルトの名無しさん
08/07/20 10:47:02
以下はメモリ上に格納された数値の合計を計算して持ち帰るサブルーチンSUMである。
URLリンク(www.dotup.org)

これを元にメモリ上に格納された数値の最大値を見つけるサブルーチンMAXを作れ。見つけた最大値はメモリ上のANSの番地へ格納すること。

どなたかボスケテ

772:デフォルトの名無しさん
08/07/20 10:55:43
ここは宿題スレじゃありません。

773:デフォルトの名無しさん
08/07/20 10:58:50
ww

774:デフォルトの名無しさん
08/07/20 11:06:58
CASLはほとんど忘れてるよ。
算術系の命令がなくてアドレスの計算命令で代用するのが
ポイントだったのがよみがえった。

775:デフォルトの名無しさん
08/07/20 12:53:42
なんすかその8086のLEAみたいな小技は

776:デフォルトの名無しさん
08/07/20 13:29:09
内部レジスタをけちってるんですよ。たしかCOMETを後付けで内部解説する教科書があったような気が。

777:デフォルトの名無しさん
08/07/20 13:53:14
>>774
即値の加減算命令がないからLEAでなんとかすれ。
という話ですか。

つうか即値扱えるのってLEAだけしかないんだっけ?

>>776
内部レジスタつうか命令デコーダがものすげーシンプルになる命令セット。
だった気がする。
その割にGRが5個とか半端なのがよくわからん。

778:デフォルトの名無しさん
08/07/20 15:36:31
CASL命令の基本がレジスタとメモリ間の演算で、加算減算もレジスタとメモリ。
そなものでレジスタ間の演算がわりとめんどい。
LAD GR1,0,GR0 // MOV R1, R0
LAD GR0,1,GR0 // ADD R0, 1
LD GR1,0,GR0  // MOV R1, [R0]
比較演算は代替手段がないので片方を必ずメモリに落とす必要がある。


779:デフォルトの名無しさん
08/07/20 16:04:32
6809を考えれば‥‥。

780:デフォルトの名無しさん
08/07/20 16:36:25
09は掛け算が意外にもレジスタ間なんだよな。

781:デフォルトの名無しさん
08/07/20 20:25:29
どこが意外なんだか。

782:デフォルトの名無しさん
08/07/20 20:35:59
あのニーモックの中では特異に思えたんだけど、他のCPUじゃ当たり前かな?

783:デフォルトの名無しさん
08/07/21 00:20:30
Addressを取れるOP codeが余ってなかったから必然

しかし遡るなら6809なんて中途半端なんじゃなくて
PDP-8とかHITAC-10とかもっと昔の制御用コンピュータだろ


784:デフォルトの名無しさん
08/07/21 01:00:46
63C09は・・・忘れた(w

785:デフォルトの名無しさん
08/07/22 01:06:43
ジャンプ命令について質問です。
いま、以下のような命令があるとします。
BRA _main
この命令ではmainの前に_(アンダーバー)が付いています。
この命令と、次の命令
BRA main
では、どのような違いがあるのでしょうか?

786:デフォルトの名無しさん
08/07/22 01:13:10
ラベルが違う。

787:デフォルトの名無しさん
08/07/22 02:26:35
もしC言語のソースをコンパイルした結果を見ての質問ならこう。

「キミの使っているCコンパイラが扱うオブジェクトフォーマットの仕様は
 関数名の前にアンダースコア(_)を付ける仕様だった。」

C言語なら必ず付くわけでもなく、アセンブリ言語だから必ず_から始まらなければ
ならないわけでもなく、何か特殊な効果を狙って_を付けた表記にしているわけでも
ない。

788:デフォルトの名無しさん
08/07/22 12:59:27
ついでに言うと、C言語のソースで A という名前の関数を作ったとして
BRA A
ってコードを吐くと、BRA命令のオペランドにAレジスタは指定出来ないとか、ラベルAは不正な名前、とかのエラーになるかもしれん。
なので、なにかしら法則を決めてアセンブラの予約語とぶつからないようにしてあげる必要が有る。
ということで _ をつける規則を採用したコンパイラがそこにある、ってわけだ。

789:デフォルトの名無しさん
08/07/23 01:31:36
ホスト(z/OS)下でアセンブラを触ることになりました。
が、ソースを見てもさっぱりです。

命令とかを解説しているサイトや参考書ってありません?


790:デフォルトの名無しさん
08/07/23 08:46:31
>>789
z/OSだったらIBMに聞けよ :-)


791:デフォルトの名無しさん
08/07/25 12:18:08
いったいどこをいじるんだろう・・・

792:デフォルトの名無しさん
08/07/25 21:14:48
JWasm、バージョン上がってたんで何か少し本格的なものをアセンブルしたくなって
CDSD-STDで試してみたんだけど、妙なところでエラーが出た。
これなんでだか誰かわかります?

他にMWSAでも試そうかと思ったけど、あれコマンドラインじゃシンボル使えなかったんだな。

793:デフォルトの名無しさん
08/07/27 17:39:27
BYTE PTR DS:[EAX+8]の意味を教えていただけませんでしょうか?
BYTE PTR [EAX+8]なら分かるのですが。
何故セグメントレジスタが出てくるのか分かりません。
また、MASMの良書も教えていただければ幸いです。

よろしくお願いいたします。

794:デフォルトの名無しさん
08/07/27 17:42:02
結果を比較してみればいいのに

795:デフォルトの名無しさん
08/07/27 18:15:30
>BYTE PTR [EAX+8]
これを本当に理解していれば、DS:も理解出来るはず。

796:デフォルトの名無しさん
08/07/27 18:47:30
>>793
リニアアドレスを算出するには
セグメント + オフセット
だけど、どの『セグメント』を使うのかはCPUが暗黙の内に決めてる。
例えば、マシン語命令はCSで示すセグメントからフェッチしてくる・・とか。
でも>>793の上の命令のように、『セグメント:オフセット』と明示的に
セグメントを指定すると、暗黙のセグメント指定をそのセグメントで『上書き』出来る。
「セグメント オーバライド」辺りでググれ。

797:デフォルトの名無しさん
08/07/27 19:03:29
まずCPUの名前を書かなきゃわからんだろう。
86とレジスタ名前が似ているだけかもしれんぞ。

798:デフォルトの名無しさん
08/07/27 20:38:45
個人的には動作モードのほうが気になる

799:デフォルトの名無しさん
08/07/27 21:17:23
ありがとうございました。
なんとなく分かった気がします。
根本的なことが分かっていない気がするのではじめからきちんと勉強したいのですが
なにか良いサイト、書籍などありませんでしょうか?

800:デフォルトの名無しさん
08/07/27 21:45:55
>>799
Intel限定で良いなら「はじめて読む486」はどうよ?

801:デフォルトの名無しさん
08/07/27 21:47:48
>>800
いや、これはプロテクトモード入門でしょうね。リアルモードでの経験+Cの経験があればOKですが。

802:デフォルトの名無しさん
08/07/27 22:07:58
>>800
図解コンピュータシリーズの「図解 32ビットマイクロコンピュータ80386の使い方」とかも良いね。

803:デフォルトの名無しさん
08/07/28 05:47:39
教えられた書籍を買ってみます。
皆さんどうもありがとうございました。

804:デフォルトの名無しさん
08/07/28 13:47:50
便乗質問ですがx86_64用で上記みたいな感じの書籍はありますか?
最悪英語でもいいです。

805:デフォルトの名無しさん
08/07/28 14:26:59
インテルが公開してる技術資料はどう?
URLリンク(www.intel.co.jp)

806:デフォルトの名無しさん
08/07/28 16:11:58
86系だったら特権モードのことをがっちりやりたいか、
ユーザーモードだけでいいかでアプローチは変わってくる。
ユーザーモードだけなら、cl /FA でコンパイルして、
そのソースを読んだり変更してアセンブルするといいかも。
生っぽい機械語がいいならリアルモードがわかりやすいが今更DOSもないよな。


807:デフォルトの名無しさん
08/07/29 20:48:31
アセンブリの学習をしたいと考えていますが、以下の条件でお勧めの
アセンブラ(GAS/NASM/MASMなど)をご教授いただければ幸いです。

・開発も実行もx86環境。
・WindowsとLinux環境、両方を利用しており、WindowsにはCygwinが導入されている。
・出来るだけ両方の環境で学習したく、特定環境に依存するアセンブラ本体・文法は避けたい。

早い話、「これから始めれば無難」というものをお願いします。

ちなみに、手元にはMASMベースで解説してある以下の書籍があります。
『高級言語プログラマのためのアセンブラ入門 林晴比古著 ソフトバンククリエイティブ刊』

808:デフォルトの名無しさん
08/07/29 21:14:26
そういえばJWasmにlinux向けのサンプルが増えてたけど、
MASM互換のアセンブラで一体なにするつもりなんだろう?

809:デフォルトの名無しさん
08/07/29 21:39:33
>>807
アセンブラってのはどうせバイナリと紙一重なんだから
あまり特定の処理系に依存してどうこう、というのは少ない。
(まぁ技巧的なマクロはそれなりに違うけどね)
むしろ、Linux ならシステムコールとか、gccの関数インタフェースとか
そこらへんがわかる資料をネットで見つけることが大事じゃないかと思う。

Cygwinでいい本は知らない。
GAS は gcc に -S オプションを付けて出力させたものが参考になる。
NASM は付属のドキュメントを読んで参考にできるのなら使える。

810:デフォルトの名無しさん
08/07/29 22:15:45
細かい記法がわからない時は、逆汗使ってみた事があったな。

811:デフォルトの名無しさん
08/07/29 22:28:17
URLリンク(www.ibm.com)
このあたりの比較を見ていたら、オペランドの書き方などアセンブラ依存の文法がありそうだったので、
どれから覚えた方がいいかな、という意図の質問でした。

>>809さんのレスを見ると、Cなどの他の上級言語の一部にアセンブリを使い
特定OS上で動作するアプリケーション開発レベルの話だと思いましたが、
IPL開発などのレベルではあまり関係ないような気もしました。
>>807にてWindowsやLinuxと書いたのは、あくまでも開発環境としてのOSということで
理解頂ければ幸いです。分かりづらい質問を失礼しました。

「GAS、NASM、MASM、入門者に勧めるとしたらどれ?」ということでひとつ・・・

812:デフォルトの名無しさん
08/07/29 22:33:35
Windowsメインならmasmかnasm、Linux or GCCメインならgas。
別にどっちでもいいが、たまにコンパイラの出力読むときによく使うコンパイラが吐くアセンブリソース読めたほうがいい程度の話で。

813:デフォルトの名無しさん
08/07/29 22:35:36
>>812
なるほど、専らgcc環境なのでgasを使ってみようと思います。
的確なご指摘、ありがとうございました。

814:デフォルトの名無しさん
08/07/29 22:43:45
そういえばYASMってgasの代替にはなるの? それとも只似た記法が使えるだけ?

815:デフォルトの名無しさん
08/07/29 22:59:42
nasmと比べた事はあるんだけと、org周りのよくわからない挙動がなんかすっきりしてたのは覚えてるんだよな。


816:デフォルトの名無しさん
08/07/31 19:45:12
masmとnasmってどう違うのですか?

817:デフォルトの名無しさん
08/07/31 19:49:47
見た目からして違うんじゃないか?

818:デフォルトの名無しさん
08/08/02 00:15:08
あっそ

819:デフォルトの名無しさん
08/08/02 00:42:19
さすがにmasm/nasm共通ソースなんてのは観たことないぞ。
プリプロセッサ駆使すれば出来るんだろうか?

820:デフォルトの名無しさん
08/08/02 04:34:23
そんなんマクロ定義でどうにでもなるべ。

実際にやろうとは思わんが。


821:デフォルトの名無しさん
08/08/02 08:47:29
逆汗の作成に挑戦してるんだけど、
jmp命令とか出てきたらその都度、jmp先アドレスに飛びながらバイナリ読んでいかなきゃだめ?
試しに某exeを頭から順番に読み込んでみたら、jmp先アドレスが命令の先頭じゃなくて途中をさしちゃってるんだけども・・
別の逆汗でも同じ結果になるんだけど、難読化かなにか?

822:デフォルトの名無しさん
08/08/02 09:31:32
>>821
命令の途中にデータ埋め込んでるだけだろ。
 jmp main
msg db 'hello world', 0dh, 0ah, '$'
main:
 mov dx, offset msg
 

823:デフォルトの名無しさん
08/08/02 09:52:43
>>821
やってみておかしかったら、JMP 先の整合を付けてみる、でよい。たいていは

824:デフォルトの名無しさん
08/08/02 10:59:49
その方向でとりあえずやってみる。ありがとう


825:デフォルトの名無しさん
08/08/02 20:15:55
NASMの構造体がうまく使えません、教えてください!
WIN32N.INCを使ってAPIの時間を取得しようとして

section .text
global start
start:
move eax,my_time
push eax
call GetLocalTimeA

section .data
my_time:
ISTRUC SYSTEMTIME
at SYSTEMTIME.wYear,dw 0
at SYSTEMTIME.wMonth,dw 0
at SYSTEMTIME.wDayOfWeek,dw 0
at SYSTEMTIME.wDay,dw 0
at SYSTEMTIME.wHour,dw 0
at SYSTEMTIME.wMinute,dw 0
at SYSTEMTIME.wSecond,dw 0
at SYSTEMTIME.wMilliseconds,dw 0
IEND

みたいな感じで書いたのですが、
mov eax,my_time
のところが error: parser: instruction expected
となってしまいました。
何が問題で、どうすれば解決できるのでしょうか?

826:デフォルトの名無しさん
08/08/02 20:23:23
moveってなってない?

827:デフォルトの名無しさん
08/08/02 23:10:10
>>826
ありがとうございます
私って馬鹿ですね

828:デフォルトの名無しさん
08/08/02 23:47:58
>>821
命令の途中?

俺はIDAでしてる

829:デフォルトの名無しさん
08/09/09 12:04:28
アセンブラの勉強するのならやはり、はじめて読む8086を買って勉強するのがベストなんでしょうか?
それとも、独習アセンブラや>>68の本のほうが良いのでしょうか?


830:デフォルトの名無しさん
08/09/09 12:20:56
8086の勉強をするなら、俺ならはじめて読む8086を勧めるけど。

831:829
08/09/09 12:33:16
8086にも興味はありますが、アセンブラの文法について学びたいと思ってます。

832:デフォルトの名無しさん
08/09/09 13:05:58
マクロとか型とかはアセンブラ毎に違うので、一般的に学ぶ方法はない。
いい教科書も無いと思う。

833:デフォルトの名無しさん
08/09/09 13:07:07
文法はアセンブラによって異なる
C言語のような決まりがあるわけではない
MASM/NASM/TASM/GASなど色々あるからそれに合う本を探せ

834:829
08/09/09 13:19:39
>>832-833
有難うございます。実際に見て理解しやすそうな本を購入することにします。

835:デフォルトの名無しさん
08/09/09 13:42:15
アセンブラで実際組むわけじゃなくどんな動作してるのか
見たいって程度ならCASLで十分じゃないか?

資料も豊富だし

836:デフォルトの名無しさん
08/09/09 14:20:41
いまどきワードアドレッシングなアーキテクチャはおすすめしがたい

837:デフォルトの名無しさん
08/09/09 14:29:48
なんで?

838:デフォルトの名無しさん
08/09/09 23:45:31
>>831
文法って、
> 命令 レジスタ,メモリ;
ぐらいじゃない?
命令のこと?

839:デフォルトの名無しさん
08/09/10 02:09:47
>>838
正直セグメント絡みの方言が色々あってわけわからなくね?

840:デフォルトの名無しさん
08/09/10 08:18:25
疑似命令のバリエーションとか、
即値やレジスタ名の記法とか、
いろいろ違うけど?

ソースとデスティネーションの順序が違うというのもあるか。

841:デフォルトの名無しさん
08/09/10 08:44:36
キャッシュとか絡んでくると・・・

842:デフォルトの名無しさん
08/09/10 09:03:59
アキュムレータ丸出し、暗黙のレジスタ参照、直交性の無いアドレッシングですね、wkrms


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4965日前に更新/195 KB
担当:undef