[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 3755] nask00d.



  こんにちは、川合です。

  NASKのベータリリースです(nask00d)。

  今回の目玉は、ラベルです。やっと少し使えるようになりました。

     1 00000000                                 [BITS 32]
     2 00000000                                 [OPTIMIZE 1]
     3 00000000                                 [OPTION 1]
     4 00000000                                 [INSTRSET "i486p"]
     5 00000000                                 [FORMAT "BIN"]
     6 00000000 B8 00000004                     	mov	eax,const0
     7 00000005 B9 00000001                     	mov	ecx,const1
     8 0000000A BA 00000002                     	mov	edx,const2
     9 0000000F BB 00000003                     	mov	ebx,const3
    10 00000014 B0 04                           	mov	 al,const0
    11 00000016 88 82 00000000                  	mov	[EDX+const0],al
    12 0000001C 88 42 04                        	mov	[EDX+4],al
    13  = 00000003                              const3	equ	const2+1
    14  = 00000002                              const2	equ	const1*2
    15  = 00000001                              const1	equ	const0-3
    16  = 00000004                              const0	equ	4

  どうでしょう?

  でもあまり期待してはいけません(笑)。まだEQU以外の方法でラベ
ルを定義できませんしEQUのラベル定義にしたって$や$$は使ってはいけ
ません。しかもラベルが混ざった式が使えるのはMOV命令のimmフィール
ドに限るという不便な制限付きです(10行目に注目!)。・・・すみま
せん。

  ただちょっといいのは、上記のように2パスでは解決できないような
書き方でも全く問題なくアセンブルできることです。この点だけNASMよ
りいいです(NASMでやるときは"%define const3 (const2+1)"などとや
って回避できますが)。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/