lowhacks

sizeof(long)とsha1.c

public domainなSHA-1実装で知られるsha1.cですが、x86_64で使うとsizeof(long)==4を前提に作られているため、メモリ破壊を引き起こします。unsigned longをuint32_tに置換するとうまくいきました。http://nyaxtstep.com/trac/nxfs/browser/sha1/sha1.c?rev=…

テンプレートクラスの継承とthis->

テンプレートクラスを継承しても、親クラスのメンバ変数が解決できない問題に突き当たった。ネタ切れなのでまた#lowhacks@irc.freenode.netのまとめ。生ログ:http://irc.nyaxtstep.com/lowhacks/2008.04.12.txtthanks to: planetさん、h0shuさん

「C++のコンストラクタで例外を投げてはいけない」は迷信

via. http://www.kmonos.net/wlog/83.html#_1255080321この件に関してはずっと誤解していたので、調べてみた。 昨日の#lowhacksで騒いでいた件のまとめ。「C-torで例外を投げてはいけない」というのは、確かに迷信のようだ。

除法最適化解除のメモのメモ

今日の#lowhacks @ irc.freenode.net [ log ]via. d:id:h0shu:20080302x86アセンブリをC言語(ぽいの)に翻訳してみた r0 = A; // mov r0, A edx:eax = eax * r0; // imul r0 edxには上位32bitが入る。( edx = edx:eax >> 32 ) (signed)edx /= 2^B; // sar edx…

宣伝

こういうことに興味がある方は是非: #lowhacks (irc.freenode.net:6667 charset=utf8) 迄!姉妹チャンネルの #renderist もよろしく!どちらにも常駐してます

Darwin(xnu)のシステムコールを直で呼び出してHello, world #2

実際にコードを書いてみる

Darwin(xnu)のシステムコールを直で呼び出してHello, world

背景 #lowhacks @ irc.freenode.netを作ったが、低レベルプログラミングはインラインアセンブラでちょっとした事を書いた事ぐらいしかないことに気づいた。とりあえず純asmでHello, worldぐらい書けなきゃなーということで、手元の環境で書いてみる事に。Lin…