64ビットCPU(AMD64+EM64T)でのアセンブリ言語プログラミング

64ビットCPU(AMD64+EM64T)で
アセンブラ

 Assembly language programming for 64bit-CPU(AMD64+EM64T)
 

かなり前に購入したHP 2133 Mini-Note PCの熱に悩まされ続け、 Atom N450ネットブックが欲しくなってきた今日この頃。 Intel 64にも対応しているけれど、ネットブックに64ビットOSがプリインストールされることになるのかどうか。 別サイトMiscellaneous種々雑多なサイトを作ったので、よろしければどうぞ。

 

Last Updated: 2010/02/09

目次

プログラミングメモ
リンク集
ブログ
メモ
管理人宛メール

ソフトウェア

Turbo Factorial (x64/AMD64/EM64T対応、ベンチマークにどうぞ。)
ソフトウェア一覧

更新履歴

はじめに

当サイトは、Athlon64/Turion64/Opteronなどの64ビットCPUをアセンブラ(アセンブリ言語)を用いたプログラミングで堪能することを目的としています。 通常のプログラミングでアセンブラを使うことはほとんどなくなりました。デバイスドライバもC言語で記述する時代です。 でも、アセンブラを用いてCPUを直接操作する楽しみは不滅です。 64ビット用のVisual C/C++ではインラインアセンブラが使えなくなりましたが、単体のアセンブラ(MASM)は64ビットでも健在です。 「CPUを堪能する」をキャッチフレーズに、楽しみましょう。

方針

当サイトで扱うのは、x64(x86-64)でのアセンブラです。 すなわち、AMDのAMD64アーキテクチャ(Athlon64, Turion64, Opteronなど)やインテルのEM64Tアーキテクチャ (IA32eとも表記する, Prescottコア以降の一部のPentium4, PentiumD, Noconaコア以降のXeonなど)の CPUで稼動する64ビットOS上でのアセンブリ言語プログラミングです。 Alpha, SPARC64, MIPS64, SH-5などは対象外です。 IA64(Itanium Processor Family, 略してIPF)は原則は対象外ですが、とても興味深いので扱うことがあるかもしれません。

OS環境としては、x64用のWin64(Windows XP x64 Edition, Windows Server 2003 x64 Editionなど)を想定しています。 IA64用のWin64(Windows Server 2003 for 64-Bit Itanium-based Systemsなど)は原則は対象外ですが、扱うことがあるかもしれません。 Windows以外のOSは対象外です。

プログラミングスタイルとしては、プログラムの大部分をC/C++で作り、一部のルーチンのみをアセンブリ言語で作成する形になります。 アセンブラだけでWindowsプログラムを作ろうという(過激な)スタイルもありますが、面倒で生産性が低いので、私はやりません。

サイト名は64ビットを謳っていますが、Win32などの32ビット環境を扱うこともあります。

リンク

CrystalCPUID
Fab51
PINUPS - 上田新聞blog版
Hammer-Info
AMD64 Architecture Tech Docs
Intel 64(旧 EM64T)
MSDN
Copyright(C) 毛流麦花
 Copyright(C) 2004-2010 毛流麦花. All rights reserved. リンクは全頁ご自由にどうぞ。(事前・事後の連絡不要)