2008-05-01から1ヶ月間の記事一覧

論文読むなどした

Coda の Disconnected Operation についての論文を読んで、発表をするなどした。これは接続を切断しても問題なく使い続けられるリモートファイルシステム。Disconnected Operation というのは、接続が切れている間はローカルにそれまでの操作をキャッシュし…

えいとくいん

import copy def print_table(tbl, maxrow): print "########" for i in xrange(maxrow+1): outstr = "" for j in xrange(maxrow+1): if tbl[i] == j: outstr += "@" else: outstr += "-" print outstr def e_queen(tbl, maxrow, row, okaycols): for i in x…

Project Eulerやってみてる

Pythonを夏の入試で使える程度にしたいので、練習としてProject Eulerでもやってみることにした。 Problem 9は内包表現の練習に使ってみた。 a + b + c = 1000となるピタゴラスの三つ組が一つだけ存在する. このa,b,cの積を計算しなさい. Problem 9 - PukiWi…

gasのディレクティブについて

アセンブリコードをアセンブルすると機械語になる。こういう説明が世の中じゃされてるけど、でもそれは半分ウソ。アセンブリコードの中でも機械語に直接対応しないものがある。それがディレクティブと呼ばれているもので、ドットから始まる命令がこれにあた…

あしたのよてい。

gccの設定ファイルをいじったり、 http://gcc.gnu.org/onlinedocs/gcc-3.3.3/gcc/Spec-Files.html#Spec%20Files http://slashdot.jp/developers/article.pl?sid=05/04/22/101234 http://ktarn.www.linux.or.jp/JF/JFdocs/Glibc2-HOWTO-4.html あらかじめ各名…

セクションについて

gccによってコンパイルされたアセンブリソースを眺めていると、そこかしこに .text だとか .ascii だとか書かれているのを見かける。これらは一体なんなのさ、ということについて調べた。ピリオドで始まるこれはディレクティブと言うもので、様々な意味を持…

lealについて

lea命令は、Load Effective Address命令というもので、メモリ上の場所のアドレス値をレジスタに格納するもの。そのアドレスへのパイプを作っているような具合。なので、 leal 4(%esp), %eax とあったら、「ESPの値に4を足したメモリ位置」のアドレスを、EAX…

関数呼び出し

(C言語の)関数の呼び出し方に関するコンベンション類。原典がどこにあるか良く分からないので、ソースは日本語だったり観察から得られた事実だったりします。 環境は、gas 2.17.50 gcc 4.1.2 x86(Pentium M) Ubuntu Feisty Fawn ってな感じです。 関数に…

x86のレジスタについての簡単なまとめ

x86には8つの汎用レジスタがある。 各レジスタには使用目的があるので、それに応じて使い分けることでコードが分かりやすくなるし、命令も最適化される。また同じ命令がたくさん並ぶことになるので、圧縮の効率も上がる。 って http://www.swansontec.com/s…