紹介
 
  Many remember assembler as a complex and tedious necessity when a high level language failed to deliver in terms of capacity or performance yet it has always been capable of writing full size applications in elegant and efficient ways. MASM has the capacity to write proper modular code which becomes a necessity as a project becomes larger.

   多くの人はアセンブラのことを難しいもの、そして 容量やパフォーマンスの点において高級言語での納品に失敗した時ぐらいにしか必要に迫られない 退屈でやむを得ないものと理解している。 しかし、アセンブラはフルサイズのアプリケーションを簡潔で効率的な方法で記述することにおいて 常に有能であったため、 MASMは無駄のない実行コードを記述することができ、 そのような実行コードはプロジェクトが大きくなるにつれて必要となってくる。

  Assembler has the freedom to write code ranging from the self imposed structural approach to unrestrained freestyle code, each having their respective advantages. Self imposed modular coding has the advantage of organisation, particularly with larger projects where freestyle has its advantages in close range loop optimisation code.

   規則を設けて書くスタイルから、全くの自由奔放な書き方まで、 アセンブラにおけるコーディング方法の自由度は非常に高く、 それらのコードの記述方法はどちらが良いとは言えない。 規則に則って構造化された実行コードは組織だって開発する時、 とりわけ、ループ最適化コードといった局所的な範囲において フリースタイル方式が有利となるような大きなプロジェクトでは有効な方法となる。

  Performance to size ratio assembler code uses both approaches which takes advantage of many of the higher level language's efficiency techniques such as code reuse while being able to specifically target speed critical code where it is necessary.

   アセンブラコードは、パフォーマンスに重点を置く書き方もできるし コードサイズを優先させるコーディングスタイルをとることもできるので、 処理速度が求められるところには、処理速度を高めることを可能にしながらも、 また一方ではコードの再利用といった高級言語の効率的なテクニックを活用する

  32 bit assembler is both clearer and simpler than the DOS and 16 bit Windows code and is not cursed with the complexity of segment arithmetic. You no longer have to deal with AX:DX pairs for long integers and there is no 64k boundary imposed by the segmented structure of 16 bit software.

   32bit アセンブラはDOSや16bitウィンドウズプログラムより明確で簡単であり、 セグメント演算と言う複雑さとは無縁だ。 もう long integer のために AX:DX という書き方をしなくてよくなったし、 16bit アプリケーションで使われていたセグメントという概念により制約のあった 64K の壁も無くなった。

  The complexity of writing 32 bit Windows software is related to the structure of Windows and the sheer range of functions in the API set. It differs from DOS code only in so far as the parameters are passed on the stack rather than in registers as in the DOS interrupts.

   32bitウィンドウズアプリケーションの複雑性はWindowsのアーキテクチャと、 WindowsAPI 関数郡が非常に多いことに関係が有る。 32bitウィンドウズアプリケーションとDOSアプリケーションにおけるコーディングの相違点は、 DOSではパラメータの受け渡し方法がレジスタだったのに対し、 Windowsではスタックで行うという点だけだ。

  While the sheer range of functions in Window can be a bit intimidating, it also puts in the hands of the assembler language programmer, a massive set of capacities that were never available in DOS.

   Windowを制御する関数の多さにはいささか閉口するかもしれないが、これらの関数のおかげで、 DOSでは決して得ることのできなかった能力をアセンブラプログラマに与えることになる。

  One of the advantages of writing in assembler is that it comfortably handles the "C" format of the Windows APIs with no difficulty. Zero terminated strings, structures, pointers, data sizes etc... are all part of writing assembler.

   アセンブラで書くメリットの1つはCフォーマットで作成されたWindowsAPIを簡単に使えることだ。 ナル文字('\0')で終了する文字列、構造体、ポインタ、データサイズ、その他もろもろの全ては アセンブラで記述する場合に必要なものとなっている。