並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 60件

新着順 人気順

Assemblyの検索結果1 - 40 件 / 60件

  • 【特集】 電源の仕組みはこうだ!理解できれば良し悪しも分かる。これで目指せ電源マイスター

      【特集】 電源の仕組みはこうだ!理解できれば良し悪しも分かる。これで目指せ電源マイスター
    • Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X

      See also my blog Contents Optimization manuals Vector class library Object file converter and disassembler Subroutine library ForwardCom: An open standard instruction set for high performance microprocessors Test programs for measuring clock cycles in C++ and assembly code Floating point exception tracking through NAN propagation CPUID manipulation program Links Optimization manuals This series of

      • PlayStation Programming with MIPS Assembly and C

        This course is a deep dive into the world of PlayStation programming! We'll explore the PS1 hardware, understand its sub-components, and learn how to code games using MIPS assembler & the C programming language. We'll also learn how to use a PS1 SDK library paired with a modern development toolchain to be more productive and push fast polygons out of our console. We are about to enter the 5th gene

          PlayStation Programming with MIPS Assembly and C
        • GitHub - nanochess/bootLogo: Logo language in 508 bytes (x86 boot sector)

          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

            GitHub - nanochess/bootLogo: Logo language in 508 bytes (x86 boot sector)
          • 【特集】 驚異の1,000円で買える12コア「Xeon E5-2650 v4」と最新GeForceでゲームがどこまで動くのか?

              【特集】 驚異の1,000円で買える12コア「Xeon E5-2650 v4」と最新GeForceでゲームがどこまで動くのか?
            • 【特集】 そろそろ年末年始。不要なパソコンを「自宅にいながら無料で」回収してくれる2つの方法を紹介

                【特集】 そろそろ年末年始。不要なパソコンを「自宅にいながら無料で」回収してくれる2つの方法を紹介
              • 関数の定義位置により結果が変わるコード

                はじめに 少し前、こんなポストをしました。 これは、C言語において、関数の宣言よりも前に関数呼び出しがあり、かつ引数の型が異なる場合、結果が想定の逆になってしまう、というものです。 この現象の本質は、暗黙のプロトタイプ宣言とABIにあり、以下の記事で説明は尽きています。 Cの可変長引数とABIの奇妙な関係 ですが、先のポストへの反応を見ていると、いまいち何が起きているかが伝わっていないようだったので、簡単に説明しようと思います。 以下、使用コンパイラはGCC 9.3.0、環境はWSL上のUbuntu 20.04です。 現象 まず、この現象はprintf関数が本質ではありません。それを見るため、以下のようなコードを書いてみましょう。

                  関数の定義位置により結果が変わるコード
                • GitHub - fuzzballcat/milliForth: A FORTH in 386 bytes — the smallest real programming language ever as of yet.

                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                    GitHub - fuzzballcat/milliForth: A FORTH in 386 bytes — the smallest real programming language ever as of yet.
                  • x86-64機械語入門

                    この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDのAMD64 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機械語入門
                    • RISC-V Assembly Programming

                      RISC-V Assembly Programming This website contains a set of resources to support learning/teaching assembly programming using the RISC-V ISA.

                      • {n} times faster than C - part one

                        Sometimes humans can spot optimization opportunities that a compiler can’t doesn’t. In this post, we start with a loop generated from C code by clang, and tweak it in various ways, measuring the speedup. 📢 This post was on the front page of HN. You can join in the discussion there. Disclaimer: I’m not an optimization expert, by any means, in fact my expertise is in high-level, purely-functional l

                        • Learn x86-64 assembly by writing a GUI from scratch

                          Published on 2023-05-31. Learn x86-64 assembly by writing a GUI from scratch Most people think assembly is only to be used to write toy programs for learning purposes, or to write a highly optimized version of a specific function inside a codebase written in a high-level language. Well, what if we wrote a whole program in assembly that opens a GUI window? It will be the hello world of the GUI worl

                          • 【特集】 不要になったHDDを手放す場合の処理方法まとめ。譲渡に際してのデータ完全消去から物理的な破壊まで

                              【特集】 不要になったHDDを手放す場合の処理方法まとめ。譲渡に際してのデータ完全消去から物理的な破壊まで
                            • 6502 アセンブラ プログラミング入門 / 新山 祐介

                              概要: この記事では 8ビット CPU 6502 を 使ったアセンブラプログラミングを紹介する。 「アセンブラプログラミング」とは、プログラミング言語を使わず、 CPU のネイティブ命令列を直接書くプログラミング方法である。 6502 はいまから約50年前に開発され、 ファミコンや Apple II など多くのハードウェアで利用された。 しかし、その原理は今日のコンピュータとほとんど変わっていない。 ここでは 6502 のプログラミングを通して、コンピュータの本質を学ぶ。 6502 プログラミング入門 コンピュータの原理 レジスタとは 16進数とは 6502エミュレータを使った演習 メモリに値を格納する メモリの値を増加させながらループする アセンブラを使ったプログラミング 最初のプログラム (改良版) アセンブラを使ったジャンプ命令 差分アドレッシング 条件分岐 条件分岐 その2 16ビ

                              • Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」

                                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。monochrome氏は、Ruby処理系「monoruby」について発表しました。 高速な実行が可能なRuby処理系「monoruby」 monochrome氏(以下、monochrome):monochromeといいます。今日は「機械語で書くRuby処理系のその後」ということで、前回の発表のその後を報告いたします。 自己紹介です。monochromeといいます。(スライドを示して)Twitterはこれです。最近、Twitterは治安が悪いので、Mastodonにアカウントを作りました。RustでRubyの処理系を作っています。プログラミング処理系、言語処理系が好きな人の集まりのSlackとか、最近はこの「Zulip」というアプリに移動して、こ

                                  Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」
                                • JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita

                                  CRuby(3.2.0-preview3)およびCRubyの新しいJITコンパイラ・モジュールであるYJITを有効にした場合と、monoruby(JITあり・なし)の単位時間当たりの実行回数をbenchmark-driver.gem を用いて比較しています。数字が大きい方が速いです。ベンチマークの種類によりますが、YJITと比較しても高速、特に浮動小数点演算を多数実行するso_mandelbrotやso_nbody、app_aobenchでは数倍高速となっています。インタプリタもCRuby(JITなし)と遜色ない速度になっています。 以下、設計と実装について紹介していきますが、その前に必要な基礎知識をおさらいしておきます。 基礎知識 JITコンパイラは実行時に対象言語のプログラムを機械語へコンパイルするモジュールですが、一般的な実装ではインタプリタと並存して動きます。プログラムは抽象構文木

                                    JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita
                                  • GitHub - pkivolowitz/asm_book: A book teaching assembly language programming on the ARM 64 bit ISA. Along the way, good programming practices and insights into code development are offered which apply directly to higher level languages.

                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                      GitHub - pkivolowitz/asm_book: A book teaching assembly language programming on the ARM 64 bit ISA. Along the way, good programming practices and insights into code development are offered which apply directly to higher level languages.
                                    • Rustによる言語内x86_64アセンブラのAPIデザインと実装

                                      概要 Rustでx86_64アセンブラを実装しました。JITコンパイラの実装での利用を想定しているため、アセンブリコードを文字列として入力に取るのではなく、 静的に型付けされたRustプログラム上にアセンブリコードを記述できるライブラリ として実装しています。例えばフィボナッチ数を計算するアセンブリコードを以下のように記述し、付属のJITエンジンを用いて実行できます: fn fib_object() -> io::Result<Object> { let mut w = Writer::new(); let fib = w.get_label("fib"); let l1 = w.issue_label(); let l2 = w.issue_label(); w.define(fib, true); w.cmpl(Edi, 1i8)?; w.jle(Short(l2))?; w.movl

                                        Rustによる言語内x86_64アセンブラのAPIデザインと実装
                                      • Rust enum-match code generation

                                        Note: A 64-bit discriminator might seem wasteful here. Due to padding rules, a smaller discriminator would not have saved any memory. Rust does switch to a smaller discriminator when reducing the size permits addition of smaller fields. Overview of the generated code Before we dig deep into the assembly, let's get an overview of the generated code via the following flowchart. The code branches bas

                                        • GitHub - Zeal8bit/Zeal-8-bit-OS: An Operating System for Z80 computers, written in assembly

                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                            GitHub - Zeal8bit/Zeal-8-bit-OS: An Operating System for Z80 computers, written in assembly
                                          • 自作言語のコンパイラにオレオレアセンブリではなくx86_64アセンブリを生成させる(関数呼び出しと足し算だけ) - Qiita

                                            自作言語とそのコンパイラを Ruby で作って(一応 x86風のつもりの)オレオレVM向けにオレオレアセンブリ・オレオレ機械語を出力するということをこれまでやってきたのですが、今回はこれを改造して本物の x86_64 アセンブリを出力させてみます。 x86_64 アセンブリを触るのは今回が初めてで、ちゃんとやろうとすると大変そうなのでハードルを下げます。あんまりがんばらなくて済むようにしたい。 関数呼び出しと足し算だけ 正常系1パターンだけ動けばOK 「x86_64アセンブリとツールまわりを軽く触ってみた」の実績解除ができればOK 細かいところまで理解してなくてもOK 細かいところに深入りしない。深入りしないぞ! なんとなく雰囲気が分かればOK 今回のスコープはここまで。 これを改造します <自作言語処理系(Ruby版)の説明用テンプレ> 自分がコンパイラ実装に入門するために作った素朴なト

                                              自作言語のコンパイラにオレオレアセンブリではなくx86_64アセンブリを生成させる(関数呼び出しと足し算だけ) - Qiita
                                            • Compiling a subset of JavaScript to ARM assembly in Haskell - Micah Cantor

                                              A toy compiler for a subset of JavaScript to ARM assembly, using Haskell. Published: May 29, 2022 I recently got a copy of the book Compiling to Assembly from Scratch by Vladamir Keleshev, which details how to write a compiler for a subset of JavaScript to 32-bit ARM assembly code. The choice to use ARM assembly is mainly for its simplicity in comparison to x86. Keleshev elects to use TypeScript t

                                                Compiling a subset of JavaScript to ARM assembly in Haskell - Micah Cantor
                                              • NVMe SSDの歴史を振り返ろう、2015年の「Samsung SSD 950 PRO」登場から大幅進化した最新SSD 2015年の登場から速度や容量は倍以上に text by 坂本はじめ

                                                  NVMe SSDの歴史を振り返ろう、2015年の「Samsung SSD 950 PRO」登場から大幅進化した最新SSD 2015年の登場から速度や容量は倍以上に text by 坂本はじめ
                                                • Seasonic電源でRTX 3000シリーズを使うとPCが落ちる不具合。主にRTX 3080以上のハイエンド帯で発生。Seasonic OEM電源も対象 | ニッチなPCゲーマーの環境構築Z

                                                  GeForce RTX 3080やRTX 3090など、主にGeForce RTX 3000シリーズのハイエンド帯において、Seasonicの電源(PSU)と組み合わせて使用すると、相性問題によりゲーム中やアイドル時などにPCの電源が唐突に落ちるという不具合が発生しています。 この不具合は、グラボから発生する高周波ノイズの影響により電源の保護回路を担うICが誤作動してPCが落ちるとされています。 ほとんどの電源はノイズをフィルタリングしたり、正しい信号と区別できるよう設計されていますが、Seasonicのエンジニアはこの点を考慮せずに設計してしまったのではないかと言われています。 GeForce RTX 3000シリーズで発生するノイズ [Source: jonnyGURU 1 / 2] なお、すべてのSeasonic電源でこの不具合が発生するわけではなく、発生しない場合もあります。また、

                                                    Seasonic電源でRTX 3000シリーズを使うとPCが落ちる不具合。主にRTX 3080以上のハイエンド帯で発生。Seasonic OEM電源も対象 | ニッチなPCゲーマーの環境構築Z
                                                  • 【Hothotレビュー】 試して分かった!「Ryzen 7 5800X3D」が世界最高のゲーム向けプロセッサである理由

                                                      【Hothotレビュー】 試して分かった!「Ryzen 7 5800X3D」が世界最高のゲーム向けプロセッサである理由
                                                    • WD80EAZZ(WD Blue 8TB)レビュー:安いのにHGST製でCMR方式のHDD | ちもろぐ

                                                      CMRとSMRの違いをざっくりとまとめました。 CMRは従来型磁気記録方式と呼ばれ、SMRが登場する前から使われている古い技術です。小細工を一切せず、データをそのままディスク上に書き込み記録します。 SMRは瓦磁気記録方式と呼ばれ、HDDの低価格と大容量化に大いに貢献しています。一方で、瓦のようにデータを重ねて記録するため、いったん書き込んだデータをあとから書き換える動作に弱いです。 空き容量が少ない状態で容量の大きいファイルを上書きしたり、NASをリビルドするときに、瓦のように重ねたデータが仇となって異常なほど遅い性能に落ち込みます。 「CMR」は割となんでも使える「SMR」はほぼデータ倉庫向けCMRはSMRのデメリットがないので、SMRよりも対応できる用途が多いです。 どうせ安く大容量HDDを買うなら、SMR方式よりもCMR方式を選んだほうがコストパフォーマンスが良いのは言うまでも無い

                                                        WD80EAZZ(WD Blue 8TB)レビュー:安いのにHGST製でCMR方式のHDD | ちもろぐ
                                                      • Lanai, the mystery CPU architecture in LLVM | q3k writes

                                                        Lanai, the mystery CPU architecture in LLVM. Disclaimer: I have had access to some confidential information about some of the matter discussed in this page. However, everything written here is derived form publicly available sources, and references to these sources are also provided. Some of my recent long-term projects revolve around a little known CPU architecture called 'Lanai'. Unsurprisingly,

                                                        • SNES Development Part 1: Getting Started

                                                          I fell down the rabbit hole making a homebrew SNES game a few days ago, and since I couldn't find many good resources, I figured I'd write something of a tutorial. There are lots of resources out there for writing NES games, but way fewer for SNES games — I think there are a few reasons for this. First, the NES is much simpler than the SNES — this is true of both the NES hardware itself, but also

                                                          • HDD故障率のメーカー・モデル別統計データ2021年版、故障率が最も高かったのは?

                                                            クラウドストレージサービスを提供するBackblazeが、自社のデータセンターで使用している20万台以上ものHDDの故障率をまとめたデータの2021年版を公開しました。 Backblaze Drive Stats for 2021 https://www.backblaze.com/blog/backblaze-drive-stats-for-2021/ Backblazeは2021年だけで4万460台もの新たなHDDを追加し、2021年12月31日の時点で合計20万6928台ものHDDを管理していたとのこと。このうち、ブートドライブとして使用されていたものやテスト用に使用されたものを除いた、合計20万2759台のデータドライブに焦点を当てて、BackblazeはHDDの故障率を算出しました。 2021年1月1日~2021年12月31日のHDD故障率をモデル別で示したものがこれ。運用してい

                                                              HDD故障率のメーカー・モデル別統計データ2021年版、故障率が最も高かったのは?
                                                            • CMR採用8TB HDDの新モデル「WD Blue WD80EAZZ」を買ってみた、コスパは最強? 実売は1万4千円前後、安価な8TB HDDの新モデル text by 瀬文茶

                                                                CMR採用8TB HDDの新モデル「WD Blue WD80EAZZ」を買ってみた、コスパは最強? 実売は1万4千円前後、安価な8TB HDDの新モデル text by 瀬文茶
                                                              • 機械語手書きから言語処理系をブートストラップする - Qiita

                                                                この記事は言語実装のカレンダー | Advent Calendar 2021 - Qiita https://qiita.com/advent-calendar/2021/lang_dev の4日目の記事です。 はじめに 昔、アセンブリ言語のみから出発し、GC・継続・オブジェクトシステムなどを持つ比較的高級な言語までブートストラップするということをやりました。いつか再挑戦してみたいと思っていて、正月休みにやりましたら思いのほか動くものになりましたが、死蔵させたまま1年経ってしまいました。勿体無いのでこの機会に紹介して供養します。 前回作ったAmberという処理系はこちら - リポジトリ: https://github.com/nineties/amber 今回はアセンブリ言語じゃなく ELFファイルの手書き から出発してみたいと思います。ただのお遊びで、そんなことしても役には立ちません。が

                                                                  機械語手書きから言語処理系をブートストラップする - Qiita
                                                                • GitHub - tenderlove/asmrepl: A REPL for x86-64 assembly language

                                                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                    GitHub - tenderlove/asmrepl: A REPL for x86-64 assembly language
                                                                  • Faster software through register based calling

                                                                    Posted on November 23, 2021 The release notes for Go 1.17 mention an interesting change in the Go compiler: function arguments and return values will now be passed using registers instead of the stack. The proposal document for the feature mentions an expected 5-10% throughput improvement across a range of applications which is significant, especially for no effort on the developers part aside fro

                                                                    • GitHub - bytedance/sonic: A blazingly fast JSON serializing & deserializing library

                                                                      goversion: 1.17.1 goos: darwin goarch: amd64 cpu: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz BenchmarkEncoder_Generic_Sonic-16 32393 ns/op 402.40 MB/s 11965 B/op 4 allocs/op BenchmarkEncoder_Generic_Sonic_Fast-16 21668 ns/op 601.57 MB/s 10940 B/op 4 allocs/op BenchmarkEncoder_Generic_JsonIter-16 42168 ns/op 309.12 MB/s 14345 B/op 115 allocs/op BenchmarkEncoder_Generic_GoJson-16 65189 ns/op 199.96 MB

                                                                        GitHub - bytedance/sonic: A blazingly fast JSON serializing & deserializing library
                                                                      • 【笠原一輝のユビキタス情報局】 なぜM1 ProとM1 Maxにはバリエーションが存在するのか?MacBook Pro選びを考える

                                                                          【笠原一輝のユビキタス情報局】 なぜM1 ProとM1 Maxにはバリエーションが存在するのか?MacBook Pro選びを考える
                                                                        • Turing Complete on Steam

                                                                          © Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries. Privacy Policy |  Legal |  Steam Subscriber Agreement |  Refunds

                                                                            Turing Complete on Steam
                                                                          • アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)

                                                                            GNU Assembler互換(サブセット)のアセンブラをGo言語でフルスクラッチで作ってみました。 開発22日目で自作Goコンパイラ(をセルフホストしたときに出力される20万行のアセンブリ)をアセンブルすることに成功しました。 どうやって作ったかというと、小さいコードを GNU Assembler (以下 as) に食わせて出力されたバイナリを観察する、を繰り返して中のロジックを推定し再現しました。as の実装は見ていません。(一瞬見たけど巨大すぎて何もわからなかった) アセンブラ自作は、やってみるとコンパイラ自作よりだいぶ簡単でハマりポイントも少ないので、学習テーマとしてはおすすめです。2箇所ほど難所(命令エンコーディングのルールを理解するのと、ジャンプ命令の最適化)がありましたがそれ以外はさくさく楽しく作れました。 作ってみた結果、アセンブリ言語の理解が深まったのはもちろんのこと、E

                                                                              アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
                                                                            • Reversing for dummies - x86 assembly and C code (Beginner/ADHD friendly) · 0x41.cf

                                                                              Context Before I got into reverse engineering, executables always seemed like black magic to me. I always wondered how stuff worked under the hood, and how binary code is represented inside .exe files, and how hard it is to modify this ‘compiled code’ without access to the original source code. But one of the main intimidating hurdles always seemed to be the assembly language, it’s the thing that

                                                                              • 週刊Railsウォッチ: ruby-spacyで自然言語処理、Ruby製x86-64アセンブラ、『タイムゾーン呪いの書』ほか(20210713後編)|TechRacho by BPS株式会社

                                                                                週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 ruby-spacy: 自然言語処理ライブラリspaCyのRuby版 自然言語処理ライブラリspaCyをRubyでも使えるようにしたいと思

                                                                                  週刊Railsウォッチ: ruby-spacyで自然言語処理、Ruby製x86-64アセンブラ、『タイムゾーン呪いの書』ほか(20210713後編)|TechRacho by BPS株式会社
                                                                                • GitHub - VitorVilela7/wide-snes: Super Mario World (SNES) Widescreen Project

                                                                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                    GitHub - VitorVilela7/wide-snes: Super Mario World (SNES) Widescreen Project