[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/