タグ

asmに関するir9のブックマーク (15)

  • 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機械語入門
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • はじめての80386記号プログラミング - Articles Advent Calendar 2010 Sym

    こんにちは。id:TAKESAKOです。 そろそろ単純な「Hello, world!」に飽きてきた頃なので、フィボナッチ数列を数えるプログラムをC言語で書いてみたいと思います。 C言語でフィボナッチ数列を数える それではまず最初に、Cの文字列領域にフィボナッチ数列を数えるx86の32bit実行コードを書いて、それを無理やり関数呼び出しの形式にして実行してみたいと思います。 #include <stdio.h> char x86[] = { 0x8B, 0x4C, 0x24, 0x04, // mov ecx,[esp+0x4] 0x31, 0xC0, // xor eax,eax 0x99, // cdq 0x49, // dec ecx 0x7F, 0x04, // jg 0xe 0xE0, 0x01, // loopne 0xd 0x40, // inc eax 0xC3, // re

    はじめての80386記号プログラミング - Articles Advent Calendar 2010 Sym
  • Assembler/なぜx86ではMBRが"0x7C00"にロードされるのか?(完全版) - Glamenv-Septzen.net

    どの世代でも、当時のマシンに搭載されていた標準的な物理メモリを越えた場所を指している。 これは割り込みベクタの影響でアドレス0を使えない為と、最初の命令フェッチから始まる初期化プログラムをなるべくアドレスの高位に配置することで、一般的なプログラムの使えるアドレス空間を邪魔しないようにとの意図らしい。 BIOSが格納されたROMは、電子回路のレベルでこれら高位アドレスにマッピングされるよう調整されている。 IBM PC 5150 ではROM BIOSがFE000以降にロードされるようになっており、丁度 FFFF0H に、BIOSコードの先頭へJMPする機械語コードが配置されている。(後述) ※1 : 80286は24bitのアドレスバスを持つが、リアルモードでは20bitしか使われない。A20-A23はリセット後は1になっている。そのため、CSこそ"F000H"になっているが、もう4bit

  • MYCOMジャーナル - エンタープライズ - コラム - コンピュータアーキテクチャの話

    新着記事一覧 【コラム】3Dグラフィックス・マニアックス 第32回 ジオメトリシェーダ(3)〜ジオメトリシェーダのアクセラレーション的活用(3) [17:30 9/26]  グリーンNTT格活動開始 - 、2012年度までに5MW規模の発電を目指す [17:27 9/26]  韓国大手のGmarketを米eBayが買収 - オンラインショッピングに変革 [16:56 9/26]  吉田カバンがコンランショップとコラボ! - 機能的なビジネスバッグ登場 [16:43 9/26]  IBM、世界4カ所にクラウド・コンピューティング・センターを開設 [16:17 9/26]  こんにゃくセラミドと物繊維10,000mg配合の機能性飲料発売 - JT [16:11 9/26]  日IBM、最小で20万円を切るセキュリティアプライアンスを発表 [15:53 9/26]  S3 Graphic

  • アセンブリ言語の教科書

    アセンブリ言語の教科書
  • プログラマの隠れ里〜プログラミング初心者のサイト〜

    [Contents]- トップページ - 自己紹介 - ダウンロード - プログラマ度診断 - リンク - ゲストブック - 質問BBS [Programming] - VB 2005 - C 言語 - アセンブラ - Windows - Win2K Apache - Java3D - ヒント - 書籍紹介 News (Last modified - 2006.11.28) 11.28,2006 : 掲示板を一時閉鎖+ゲストブック再開->目を離したらすごいことになってたので一旦閉鎖します これで様子を見ます。 06.20,2006 : Link を追加 04.12,2006 : Visual Basic 2005 入門追加 04.02,2006 : リンク追加、Windowsプログラミング移行完了、Visual Basic 2005 入門作成 12.11,

  • 名無し沢村の大ページ

    名無し@沢村こと、肥し@ほんたまの趣味のページ ↓魅力あるコンテンツの数々 ソフトウェア 『肥桶』 (C言語似の高級言語によるWindowsソフト開発環境) のダウンロード ソフトウェア 『Pancyan』 (ロープレ制作ソフト&ロープレ実行ソフト) のダウンロード アスキーアートギャラリー (おまけ) マイ 思い出のドラマ (おまけ) 掲示板 (新設!)

  • Windows実行ファイルのバイナリ概要:CodeZine

    はじめに アプリケーションを起動させるEXEファイルを、普段何気なく実行していることと思います。皆さんは、このEXEファイルの中身について考えてみたことはありますか? 連載は、そのEXEファイルの内部構造がどのようになっているのかを解説していくものです。 EXEファイルには具体的に、どのような情報が格納されているのでしょうか。通常、Visual C++やVisual Basic、Delphiなどのコンパイラが自動的に生成してくれるので、考えることはありませんが、今回はこの疑問に真っ向から勝負を挑んでいきます。EXEは魔法の箱? 筆者は「ActiveBasic」というネイティブコンパイラ搭載型の統合開発環境を開発しています。コンパイラ開発イコール、EXEファイルの仕様をかなり細かい部分まで理解しなければならないという状況に置かれることを意味します。 Javaや.NETが騒がれる昨今、あえて

  • Assemble Programming

    各説明 Masm(16bit)プログラミング MS-DOS(16bit Real Mode)でのMasmプログラミングについての解説。 Masm(16bit)プログラミング例題 MS-DOS(16bit Real Mode)での例題プログラミング。 Masm(Win32)プログラミング MasmでWin32プログラミングをしてみるための解説。

  • fnami: Hobby Page

    fnamiの趣味のページ 引っ越し後の整理があまり進んでいないので、まだ不整合な部分があります。 更新情報 趣味のプログラミング(古い) MS-DOSとWindows(古い) NEC PC-9800シリーズに関するQ&A(古い) アセンブラでの高速化(2017-3-5更新) Pentiumでの高速化(2006-9-30更新) AMD64での高速化(2011-8-21更新) HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR(非常に古い) HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR(古い) GPCC (Games and Puzzles Competitions on Computers)(2023-11-21更新) PC-A801エミュレータ(開発予告)(2007-6-11更新) プログラミングに関するその他の話題(2

  • fnami: Pentium

    Pentiumでの高速化 「アセンブリ言語でガチガチにコーディング」などと表現する人がいますが、そういうプログラムが当に高速であることは少ないのです。よく書かれたアセンブリ言語のプログラムは、高速なのはもちろん、使われているテクニックを簡潔で美しく記述しており、かなりの程度の変更に対応できます。 一方、高級言語で書かれたプログラムでもよく工夫すれば、アセンブリ言語と同じくらい高速にすることはできます。もちろん、インラインアセンブラなどを使わずに、高級言語のメリットを保ったままでです。しかし、アセンブリ言語の速さ以上になることはまれですし、サイズで下回ることはまずありません。また、コーディングの際に、その高級言語の仕様、対象CPUでの実装、場合によっては機器の構成についての十分な知識を必要とします。 抽象化と高速化を簡単に両立させることはできません。あなたならどちらを選びますか。 Pent

  • fnami: Assembler

    アセンブラでの高速化 はじめに 共通/80286以前 80386以降 80486以降 Pentium PentiumPro以降 Pentium4 高速化の例 主な命令一覧 参考文献 はじめに アセンブリ言語でプログラムを書くということは、プログラムに最高の自由度と性能を与えるということである。アセンブリ言語ではコンピュータの持つ機能をすべて使えるので、高級言語では不可能だった処理が可能になるし、高級言語からは見えないCPUの機能を利用してプログラムを高速にしたり、プログラムを小さくしたりすることができる。特にインテルの8086とその後継プロセッサ(86系プロセッサ)の場合、アセンブリ言語で書き直すだけでプログラムが大幅に小さく、そして速くなることは多い。しかし、ただ単純にアセンブリ言語で書いただけでは、コンピュータはその来の力を発揮しているとは言い難い。コンピュータには、もっと速く実行す

  • HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR

    HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR (In Japanese) Original (in English): http://announce.com/agner/assem/assem.html Copyright (c) 1996, 1997 by Agner Fog. Last modified 1997-08-19. このページは、Agner Fogさんによる同名のマニュアルの、藤波順久による日語訳です。原文(英語)の著作権はAgner Fogさんにあります。また、日語訳中の「私」とは、Agner Fogさんのことです。原文は http://announce.com/agner/assem/assem.html を参照してください。 このページは、現在更新中であり、原文の古い版(1997-03-16)に基づいている章がいくつかありま

  • CPUID命令によるプロセッサ環境の判別:CodeZine

    Brand Srting = [AMD Athlon(tm) 64 X2 Dual Core Processor 3800+] Total processor = [2] Physical Processor number = [1] Multicore Processor number = [2] HTT Processor number = [0] はじめに この記事は、現在動作しているプロセッサが論理プロセッサ(ハイパースレッディングまたはデュアルコア・マルチコア)なのか、物理プロセッサ(マルチプロセッサ)なのかを検出する方法について検討します。 方針としては、特権命令(RDMSRなど)は使用せず、通常のアプリケーションからも呼び出し可能なCPUID命令を利用します。対象読者前回投稿した『ハードウェアDEP機能の調査』や『CPUID命令によるCPUの性能・機能の把握』に興味

    ir9
    ir9 2006/01/17
  • 1