新しいものを表示
orange さんがブースト

怪しいもなにも、 LL を十分高速に動かそうとしたら JIT が必要になるし、 JIT はそもそも機械語を動的に錬成しながらそっちを実行する機構なわけで、それはもう……

C# でなんかネイティブな事やりたければ、普通はC++かなんかでネイティブなDLL作ってそれを呼ぶでしょ、なんでわざわざこんなめんどくさくも妖しい事するんだよ 的な><;

orange さんがブースト

昔はメモリ領域のフラグ立てる必要すらなかったのよ。NX bitはXP SP2あたりからだっけ…?

でもこれ、普多用しちゃったらセキュリティーソフトウェアのヒューリスティック解析(?)でマルウェアと誤判定されてもあんまり文句言えない程度に怪しすぎるやり方な気がする><;

orange さんがブースト

Windowsに怒られたりするやつはVirtualProtectExで解除してますな。

orange さんがブースト

Unmanagedな関数呼べるのは割と誰でも知ってるやつだけど、そうかしょせんバイト列だからメモリ領域に実行権限持たせてそのまま書いちゃえばいいんだ。

C# でx86マシン語プログラミング普通に出来るんだね・・・・><;
「どうせなんかセキュリティー関連のエラーでWindowsに怒られたりするんじゃ無いの?><;」って思いながら実行したからびっくりした><;

さっきのC# でx86インラインアセンブラ・・・じゃなくインラインx86マシン語(?)、マジで?><;
って事でさらにググって
stackoverflow.com/a/53110027
をやってみたらほんとに出来たし、add(0x01)をsub(0x28)に変えたらちゃんと引き算になったし「マジで!!!?><;」ってなった><;

なんでC# のbyte型ってなんか不便というかなるべく使わないで32bitでやってくれ感がすごくあれなのがあれかも><;(遅くなるから使わないではわかるけど、ほんとのほんとに8bitのデータを扱う時に色々めんどくさい><;)

ていうか基本的にCPUの命令を使うのが普通っぽいので、逆に言うと自前でやるには使う頻度のわりには重い処理?><

(間違えてる気がするから消した><;)

これのソースコード見てみればおk?><
BitOperations.LeadingZeroCount Method (System.Numerics) | Microsoft Docs docs.microsoft.com/en-us/dotne

普通にネイティブな環境でインラインアセンブラ(を使える言語)を使うほうが絶対いいからネタでしかなくて意味ないかも?><;

そんな変な事出来たのか・・・・><;
誰か『C# で学ぶx86マシン語入門』みたいな意味あるんだか無いんだかよくわからない本書いて欲しい><;

stackoverflow.com/a/47049483
しゅごい!><; C# でインラインにx86アセンブラで解決?><;

古いものを表示
:realtek:

思考の /dev/null