#contents
----
アセンブリ言語に関するリンク集
-&topicpath;

*''情報'' [#Info]

**技術情報
-国内
:[[Technical Assembler:http://www.e-net.or.jp/user/missing-link/assembler/menu.html]]|
:[[64ビットCPU(AMD64+EM64T)でアセンブラ:http://www.marbacka.net/asm64/]]|
:[[Iimori's Home Page:http://www.bekkoame.ne.jp/~iimori/]]|PowerPC向けに最適化した ANSI strlen() / memchr()のコード等。
:[[猫耳通信社 > Programming講座:http://tmhiko.hp.infoseek.co.jp/nekomimi_com/Pro_tips/assem/]]|
:[[カレー温泉 > 最適化の為のアセンブラ入門:http://ray.sakura.ne.jp]]|
:[[目指せプログラマー:http://www5c.biglobe.ne.jp/~ecb/]]|x86系(8086系)アセンブラ入門

-海外
:[[Agner Fog Research > Assembly resources:http://www.agner.org]]|
:[[Optimizing assembly code:http://www.agner.org/assem/]] / [[日本語訳:http://hp.vector.co.jp/authors/VA003988/how_to_o.htm]]|
:[[With Unz - an Advanced Optimization for x86-CPU -:http://homepage1.nifty.com/herumi/]]|introduction to x86-assembler
:[[3D Buzz > Vector normalization done fast:http://www.3dbuzz.com/vbforum/showthread.php?t=104753&page=1]]|SSE3が利用可能か判定する方法等。
:[[chris wright > SIMD Instruction Sets:http://softpixel.com/~cwright/programming/simd/]]|CPUIDの取得等。
:[[HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR (In Japanese):http://hp.vector.co.jp/authors/VA003988/pentopt.htm]]|このページは、Agner Fogさんによる同名のマニュアルの、藤波順久による日本語訳です。

***MASM
:[[プログラマの隠れ里:http://www7.plala.or.jp/keny01/]]|[[雑文の部屋:http://www7.plala.or.jp/keny01/sub/]]にもリンク集がある。
:[[Iczelion's Win32 Assembly Homepage:http://spiff.tripnet.se/~iczelion/tutorials.html]]|Tutorial

***NASM
:[[Jun's Homepage > Linux でアセンブリプログラミング:http://www.nk.rim.or.jp/~jun/lxasm/asm00.html]]|アセンブラを使って Linux のプログラミングで遊んでみます.アセンブラには NASM を使用して,カーネルを直接利用することにします.

***as/gas/GCC inline asm
:[[GCCでインラインアセンブリを使用する方法と留意点等 for x86:http://www.mars.sannet.ne.jp/sci10/on_gcc_asm.html]]|以下の情報はあまり過度に信用しないで下さい。より正確な情報は、asやgccのinfoから得て下さい。個々のプロセッサ命令の解説はここでは述べません。そのような技術資料は、インテルやAMDのウェブサイトのDeveloper向けのページからpdf形式で入手できます。 
:[[altanativeマクロで学ぶgas入門:http://mkosaki.blog46.fc2.com/blog-entry-166.html]]|
:[[memologue > インラインアセンブラを試してみた:http://d.hatena.ne.jp/yupo5656/20040601/p1]]|注意事項等。
:[[Jun's Homepage > Linux Zaurusでアセンブリプログラミング:http://www.nk.rim.or.jp/~jun/slasm/arm_idx.html]]|ARMプロセッサ向け情報。
:[[Linux Assembly:http://asm.sf.net]]|If you are looking for information on assembly programming under UNIX-like operating systems (Linux/BSD/BeOS/etc), this is the right place to be.

**仕様/規格
:[[Intel® Pentium4® プロセッサ関連マニュアル:http://developer.intel.com/design/Pentium4/documentation.htm]]|
:[[Intel® Pentium® プロセッサ関連マニュアル:http://developer.intel.com/design/pentiumiii/documentation.htm#man]]|
:[[Intel® Pentium® プロセッサ関連マニュアル:http://developer.intel.com/design/archives/processors/index.htm]]|
:[[AMD64 Architecture Tech Docs:http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_739_7044,00.html]]|
:[[3DNow!™ Technology Tech Docs:http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_739_1102%5E1144,00.html]]|
:[[AMD-K6™ Processor Tech Docs:http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_739_1102,00.html]]|
:[[Sony Computer Entertainment Inc. > Cell Broadband Engine:http://cell.scei.co.jp/j_download.html]]|Cell Broadband Engine™ (CBE) 公開情報/ダウンロード
:[[Power.org:http://www.power.org]]|IBM has announced plans to make the specifications of the PowerPC 405 core freely available to the academic and research community.
:[[AMD 128-Bit SSE5 Instruction Set:http://developer.amd.com/sse5.jsp]]|

-規格情報
:[[HERO'S Download:http://reef.path.ne.jp/~hero/hero.htm]]|各種データシートのDownload。
:[[Ando's Processor Information Page:http://www.geocities.jp/andosprocinfo/]]| Web内で公開されているマイクロプロセサ関係のデータシートやマニュアル,論文等の若干の解説とリンク集です。解説は日本語ですが,リンクは大半が米国のものなのでリンク先のドキュメントは殆ど英語です。
:[[ASCII24 > Akiba2Go! > 【最新パーツ性能チェック(Vol.23)】いよいよプレスコット登場(PART2)!:http://akiba.ascii24.com/akiba/column/latestparts/2004/03/01/648472-000.html]]|SSE3の神髄に世界で初めて触れる!
:[[紫川 > x86CPUの数値演算機構:http://homepage3.nifty.com/murasakigawa/tech/x86arith/]]|
:[[DDJ Microprocessor Center:http://x86.ddj.com]]|海外サイト。

-SIMD(Single Instruction/Multiple Data) CPUIDs
~MMX/SSE/SSE2/SSE3/SSE4
 CPUID.01H:EDX.MMX  [bit 23] 
 CPUID.01H:EDX.SSE  [bit 25]
 CPUID.01H:EDX.SSE2 [bit 26]
 CPUID.01H:ECX.SSE3 [bit 0]
 CPUID.01H:ECX.SSE4 [bit 9]
3DNow!/Enhanced 3DNow!
 CPUID.80000001H:EDX.3DNow!  [bit 31] 
 CPUID.80000001H:EDX.E3DNow! [bit 30]

*''Assembler'' [#Assembler]
:[[gas(GNU assembler):http://www.gnu.org/software/binutils/]]|
:[[NASM(The Netwide Assembler):http://sf.net/projects/nasm]] <LGPL>|NASM is an 80x86 assembler designed for portability and modularity. It supports a range of object file formats including Linux a.out and ELF, COFF, Microsoft 16-bit OBJ and Win32.
:[[MASM(Microsoft Macro Assembler):http://msdn.microsoft.com/ja-jp/library/afzk3475.aspx]]|[[DDK(Device Driver Development Kit)>Microsoft VisualC++#DDK]]に付いてくる。
:[[MASM32:http://www.masm32.com]] / http://www.movsd.com <[[URL:http://www.masm32.com/mlicence.htm]]>|MASM32 version 9 is a working development for programmers who are interested in either learning or writing 32 bit Microsoft assembler (MASM). 
:[[NWSA(NOWSMART ASSEMBLER):http://www.vector.co.jp/soft/win95/prog/se183316.html]]|MASM Ver 5.00 に準拠したアセンブラです。
:[[FASM(flat assembler):http://www.flatassembler.net]] / http://sf.net/projects/fasm <BSD>|Fast and efficient self-assembling 80x86 assembler for DOS/Win32/Linux; with 8086-80486/Pentium/MMX/SSE/SSE2/SSE3 instructions support, 16-bit/32-bit code, binary/MZ/PE/COFF/ELF output formats.
:[[Adebug/Assemble:http://sf.net/projects/adebug]] <GPL>|Adebug/Assemble is a pair of Debugger/Assembler for the MC68Xxx family running on Atari and Amiga computers. Years ago commercial product, now GPL.
:[[The Yasm Modular Assembler Project:http://www.tortall.net/projects/yasm/]] <BSD>|Yasm is a complete rewrite of the NASM assembler under the "new" BSD License (some portions are under other licenses, see COPYING for details). It is designed from the ground up to allow for multiple assembler syntaxes to be supported (eg, NASM, TASM, GAS, etc.) in addition to multiple output object formats and even multiple instruction sets. Another primary module of the overall design is an optimizer module. 
:[[LZASM(Lazy Assembler):http://lzasm.hotbox.ru]]|LZASM is an x86 assembler for DOS and Windows that handles the TASM (Turbo Assembler) IDEAL mode and produces OMF OBJ files. Support MMX, SSE, SSE2, SSE3 (PNI), 3DNow!Pro instructions.

*''Library'' [#Library]
:[[MASMライブラリ:http://www.vector.co.jp/soft/dos/prog/se010298.html]]|これはマイクロソフトのマクロアセンブラ(V5.1以上)用に作った関数のライブラリで,MS-DOS上で走るアセンブラプログラムの開発を支援するためのものです。
:[[libASM:http://www.fowelin.de/christian/computer/]] <LGPL>|This is the libASM. It is for all you assembly freaks, who want to write pure assembly under the best OS (Linux) using the NASM.
:[[AsmXml:http://mkerbiquet.free.fr/asm-xml/]] <BSD>|AsmXml is a very fast XML parser and decoder for x86 platforms. It achieves high speed by using the following features:
++Support of an XML subset only
++Written in pure assembler
++Optimized memory accesses
++Parsing and decoding at the same time
:[[Xbyak - x86, x64 JIT assembler -:http://homepage1.nifty.com/herumi/soft/xbyak.html]] <BSD>|Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算).
:[[The SSE'''Plus''' Project:http://developer.amd.com/cpu/Libraries/sseplus/Pages/default.aspx]] / http://sf.net/projects/sseplus <Apache License V2.0>|SSEPlus is a SIMD function library. It provides optimized emulation for newer SSE instructions. It also provides a rich set of high performance routines for common operations such as arithmetic, bitwise logic, and data packing and unpacking. 

-SDK(Software Development Kit)
:[[Intel SDK for 45nm Next Generation Intel&reg; Core&trade;2 Processor Family and Intel&reg; SSE4 (Penryn SDK):http://softwarecommunity.intel.com/articles/eng/1193.htm]]|Windows環境向けのSSE4エミュレータDLLや、VisualStudio 2005のMASM向けのSSE4マクロが付属する。

*''Tool'' [#Tool]
:[[HLA(High Level Assembly Language):http://freshmeat.net/projects/hla]]|The HLA (High Level Assembly) language was developed as a tool to help teach assembly language programming and machine organization to University students at the University of California, Riverside. The basic idea was to teach students assembly language programming by leveraging their knowledge of high level languages like C/C++ and Pascal/Delphi.
:[[AsmSrc:http://sf.net/projects/asmsrc]]|asmsrc generates assembler assembler source files from Linux executables. Library calls are detected along with symbols and other information found in ELF executable files. Generated source file is in nasm format.
:[[Intel2GAS:http://www.niksula.hut.fi/~mtiihone/intel2gas/]]|Intel2GAS is a converter that will convert assembler source files written for NASM to files that can be assembled using the GNU Assembler (GAS), on the i386 platform. It provides support for basic MMX instructions as well.
:[[ロードレイテンシ・帯域計測ツール:http://www.geocities.co.jp/SiliconValley-Oakland/8071/loadbench.html]]|PC/AT互換機MS-DOS用 Intel P6系, Pentium4, AMD Athlon向けのロードレイテンシ、ロード帯域、ストア帯域を計測するツールです。

*''参考書籍'' [#Books]

**和書
:&amazon(4774114421,title);|
:&amazon(4756144667,title);|
:&amazon(4798008532,title);|実践的な内容。著者は [[やねうらお:http://yaneu.com]]氏
:&amazon(4887188293,title);|
:&amazon(479810955X,title);|
:&amazon(4797332816,title);|
:&amazon(4789833429,title);|
:&amazon(4839918201,title);|
:&amazon(4839920230,title);|
:&amazon(4798017051,title);|
:&amazon(4048675095,title);|
:&amazon(4798022543,title);|
:&amazon(4774138428,title);|

-MASM
:&amazon(4874083838,title);|
:&amazon(4871483134,title);|
:&amazon(4877832114,title);|[[サポートページ:http://www.cutt.co.jp/book/978-4-87783-211-7.html]]

-SIMD
:&amazon(4877831398,title);|
:&amazon(487783169X,title);|[[サポートページ:http://www.spacesoft.co.jp/Books/books.html]]
:&amazon(4877831703,title);|[[サポートページ:http://www.spacesoft.co.jp/Books/books.html]]
:&amazon(4877832440,title);|

-プロセッサ関連
:&amazon(4756102131,title);|
:&amazon(4789833291,title);|
:&amazon(4789833577,title);|
:&amazon(4789833518,title);|
:&amazon(4274063763,title);|
:&amazon(4774127353,title);|

-買ったら駄目本
:&amazon(4839912025,title);|【警告】内容にデタラメが多いことで有名な悪書。
:&amazon(4839917183,title);|
:&amazon(4757211511,title);|【警告】改造ツールの説明書以下の内容で役に立たない。

**洋書
:&amazon(1886411972,title);|
:&amazon(0130879401,title);|
:&amazon(1592003516,title);|インラインアセンブラによるSSEの実装コード等。
:&amazon(0130491462,title);|