タグ

アセンブリ言語に関するmohnoのブックマーク (6)

  • https://hccc.contest.seccon.jp/

    mohno
    mohno 2023/09/28
    「人間Cコンパイラコンテスト(HCCC)とは文字通り競技者自身がCコンパイラとなり C言語からアセンブリを生成し,その時間と正確さを競う競技」←意味が分からないとは言わないが、コンテストってほど参加者がいるのか。
  • x86-64機械語入門

    この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDAMD64 Architecture Programmer's Manualです。 Intel SDM: Intel® 64 and IA-32 Architectures Software Developer Manuals AMD64 Architecture Programmer's Manual, Volumes 1-5 このほか、Cから呼び出される関数を定義したり、Cの関数を呼び出すためには、呼び出し規約の知識も必要です。使用される呼び出し規約はOSに依存し、Unix系では主にSystem V ABI

    x86-64機械語入門
    mohno
    mohno 2023/09/18
    アセンブリ言語、楽しそうだなあ。(もう仕事にできるレベルで書ける気はしないが)
  • ハードウェアの知識が無い人向けのアセンブリ言語の話(draft)

    記事は書きかけなので内容(タイトルすらも)は随時書き換わっていきます。ドラフトのうちは内容の正確性や文書全体としての整合性についても荒っぽい部分が多々あります。ご容赦ください。 はじめに 記事はソフトウェア開発者がハードウェアに近い低レイヤといわれる領域に入門するとき、とくにアセンブリ言語に出会ったときにつまずきがちなことを紹介します。主な対象読者はJavaScriptPythonなどのスクリプト言語などによるアプリ開発からソフトウェア開発に入った、それより下のレイヤになじみのない人です。 筆者は常々アセンブリ言語は技術的にものすごく難しいわけではないものの、学習につまずく人が非常に多いという印象を持っています。その主な原因の一つは、みなさんが普段慣れ親しんでいる人間に使いやすいように作られた高級プログラミング言語(以下高級言語)と、機械に解釈させやすいように作られているアセンブリ言

    ハードウェアの知識が無い人向けのアセンブリ言語の話(draft)
    mohno
    mohno 2021/01/13
    「筆者は常々アセンブリ言語は技術的にものすごく難しいわけではないものの、学習につまずく人が非常に多い」←x64(というか近年のCPU)は難しいというか、手を出す気にならない。もう最適化はコンパイラに任せたい。
  • 2で割ることと3で割ること - Qiita

    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

    2で割ることと3で割ること - Qiita
    mohno
    mohno 2020/12/09
    「頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます」←“人の役割は終わった”と思ったよ。「除算は圧倒的に遅い」←最近はそうでもないのか。「Cannonlake世代からidivは高速化された」
  • 【IT業界】組込み系エンジニアが人手不足過ぎてヤバい、その理由とは? - 私の戦闘力は53万マイクロです

    僕は組み込み系エンジニア*1として通算10年ほど働いていますが、 今日ほどこの業界の人手不足を感じたことはありません。 とにかく人がいない・・・より正確に言うなら、「即戦力になる経験者が少ない」のです。 2018年2月時点での求人倍率は4.77倍です。 今、カネで奪い合いになる「人気職種」 (溝上 憲文) | プレジデントオンライン 転職求人倍率職種のトップは「インターネット専門職」(Webエンジニア含む)の5.66倍、続いて「組込・制御ソフトウエア開発エンジニア」の4.77倍、建設エンジニアの4.22倍だ。 システムエンジニア全体の中でも年収は低いほうではないし(参考記事:組み込みエンジニア年収ってどれくらい? | アトオシ)、特別待遇が悪い職種というわけでもないのですが、何故ここまで人がいないのでしょうか? 組み込み系エンジニアとは ソフトウェア/ハードウェア両方の知識が必要とされる

    【IT業界】組込み系エンジニアが人手不足過ぎてヤバい、その理由とは? - 私の戦闘力は53万マイクロです
    mohno
    mohno 2018/09/28
    と言ってもWeb系よりは少ないんだな、さすがに。報酬次第って気もするけどなあ。「組込み系開発で使用されるプログラミング言語は、たいていの現場では「C言語」です」
  • Z80が原因でメイン基板のプログラマーの高齢化が進む - パチンコ日報

    Z80。 任天堂の初代ファミコンに搭載されていた8ビットのマイクロプロセッサーで、80年代の半ばまで、パソコンにも使われていたCPUだ。 CPUが8ビット、16ビット、32ビット、64ビット、と進化していく中で、2008年からはパソコンでも64ビットが普及するようになり、今や一般社会では64ビットが主流になっている。 日進月歩のCPU歴史の中で、8ビットは原始時代とまではいわないが、時代の主流からは取り残されたものであることには違いない。 未だにメイン基板でZ80を使っているのが、パチンコ業界なのだが、Z80でプログラムを書けるプログラマーがどんどん高齢化しているのが実情でもある。 「メイン基板のプログラマーは若くて40代。50過ぎのプログラマーもいますよ。8ビットの狭い領域で開発するのに、皆ひいひいいっていますが、8ビットでは若くて優秀な技術者なんか集まりっこない。サブ基板は

  • 1