プログラム / 2008/08/17 (Sun) / 編集 |
ネットで言語について調べてたらVIP言語とやらをみつけた
非常に難解だが、習得すればものの数時間で弾道計算ソフトさえ作れてしまう。 上級者にしか手が出ない代物。 だがソース自体が激しく処理系依存である。
どんなものかと思ったら下のようなコンパイラ
#!/usr/local/bin/perl
use strict;
$_ = sub{local $/; <>;}->();
y/Ww//cd;y/Ww/01/;
binmode(STDOUT); # Windowsでコンパイルするときに必要
print pack'B*',$_;
機械語かよw
なんという処理系依存w 早速試してみようと思ったらMac用のソースがない、機械語なんてさっぱりわからない、しかたないのでC言語で書いたやつをコンパイルしてバイナリにするとどうなるか見てみた
main(){ write(1, "Hello World\n", 12); }
コンパイルしてxxdでみてみると2630行あるらしい、これはダメだ、、、
なので今度はアセンブラでやってみようと思う、[マイコミジャーナル]Hello WorldコレクションでFreeBSD用のやつを見つけたので
1 .text
2 _start:
3 .globl _start
4 push $12
5 push $message
6 push $1
7 push $0
8 mov $4, %eax
9 int $0x80
10
11 push $0
12 push $0
13 mov $1, %eax
14 int $0x80
15 message:
16 .ascii "Hello World"
asコマンドでコンパイルしてみる
hello.s:4:Invalid mnemonic 'push'
hello.s:5:Invalid mnemonic 'push'
hello.s:6:Invalid mnemonic 'push'
hello.s:7:Invalid mnemonic 'push'
hello.s:8:Invalid mnemonic 'mov'
hello.s:9:Invalid mnemonic 'int'
hello.s:11:Invalid mnemonic 'push'
hello.s:12:Invalid mnemonic 'push'
hello.s:13:Invalid mnemonic 'mov'
hello.s:14:Invalid mnemonic 'int'
どうしよう、、、 Introduction to Mac OS X Assembler Guideとやらをみてみる、あ、なんかPowerPC Assembler Instructionsとやらがあるぞ!
、、、、、、pushがないorz <ー 今ココ
非常に難解だが、習得すればものの数時間で弾道計算ソフトさえ作れてしまう。 上級者にしか手が出ない代物。 だがソース自体が激しく処理系依存である。
どんなものかと思ったら下のようなコンパイラ
#!/usr/local/bin/perl
use strict;
$_ = sub{local $/; <>;}->();
y/Ww//cd;y/Ww/01/;
binmode(STDOUT); # Windowsでコンパイルするときに必要
print pack'B*',$_;
機械語かよw
なんという処理系依存w 早速試してみようと思ったらMac用のソースがない、機械語なんてさっぱりわからない、しかたないのでC言語で書いたやつをコンパイルしてバイナリにするとどうなるか見てみた
main(){ write(1, "Hello World\n", 12); }
コンパイルしてxxdでみてみると2630行あるらしい、これはダメだ、、、
なので今度はアセンブラでやってみようと思う、[マイコミジャーナル]Hello WorldコレクションでFreeBSD用のやつを見つけたので
1 .text
2 _start:
3 .globl _start
4 push $12
5 push $message
6 push $1
7 push $0
8 mov $4, %eax
9 int $0x80
10
11 push $0
12 push $0
13 mov $1, %eax
14 int $0x80
15 message:
16 .ascii "Hello World"
asコマンドでコンパイルしてみる
hello.s:4:Invalid mnemonic 'push'
hello.s:5:Invalid mnemonic 'push'
hello.s:6:Invalid mnemonic 'push'
hello.s:7:Invalid mnemonic 'push'
hello.s:8:Invalid mnemonic 'mov'
hello.s:9:Invalid mnemonic 'int'
hello.s:11:Invalid mnemonic 'push'
hello.s:12:Invalid mnemonic 'push'
hello.s:13:Invalid mnemonic 'mov'
hello.s:14:Invalid mnemonic 'int'
どうしよう、、、 Introduction to Mac OS X Assembler Guideとやらをみてみる、あ、なんかPowerPC Assembler Instructionsとやらがあるぞ!
、、、、、、pushがないorz <ー 今ココ