- Mastering Assembly Programming
- Alexey Lyashko
- 324字
- 2021-08-20 10:23:30
Microsoft Macro Assembler
As the name of this assembler states, it supports macros and has a nice set of built-in ones. However, it is hard to find a more or less valuable assembler without this feature today.
The first assembler I ever used was Macro Assembler (MASM) (I do not remember which version) on DOS installed on a Sony laptop with 4-MB RAM and a 100-MB hard disk (ah, good old times), and MS-DOS edit.exe was the only IDE. Needless to say, the compilation and linking was performed manually in the command line (as if DOS had any other interface).
In my opinion, this is the best way to learn Assembly or any other programming language--just a simple editor with as few features as possible (however, syntax highlighting is a great advantage, as it helps in avoiding typos) and a set of command-line tools. Modern integrated development environments (IDEs) are very complex, yet very powerful tools, and I am not trying to underestimate them; however, it is much better to use them once you understand what happens behind this complexity.
However, the intent behind this book is to learn the language the CPU speaks, not a specific Assembly dialect or specific assembler command-line options. Not to mention the fact that the currently available Microsoft Visual Studio 2017 Community (the easiest way to get MASM is to install Visual Studio 2017 Community--free and convenient) comes with several assembler binaries:
- A 32-bit binary that produces 32-bit code
- A 32-bit binary that produces 64-bit code
- A 64-bit binary that produces 32-bit code
- A 64-bit binary that produces 64-bit code
Our goal is to know how the CPU thinks rather than how to make it understand our thoughts and how we can find the location of libraries and executables installed on the system. Therefore, if MASM is your choice, it's good to use Visual Studio 2017 Community, as it will save you a lot of time.
- C程序設計簡明教程(第二版)
- Java 開發從入門到精通(第2版)
- SOA實踐
- Vue.js入門與商城開發實戰
- Python高效開發實戰:Django、Tornado、Flask、Twisted(第3版)
- Unity 5.x By Example
- INSTANT Passbook App Development for iOS How-to
- Keras深度學習實戰
- Getting Started with LLVM Core Libraries
- Lighttpd源碼分析
- C#程序設計教程(第3版)
- Android驅動開發權威指南
- Domain-Driven Design in PHP
- 3ds Max印象 電視欄目包裝動畫與特效制作
- GitHub入門與實踐