是否可以在MSVC ++中创建,编辑,链接,编译(编译单词?)等汇编代码?
另外,如果不可能,我怎样才能用纯文本创建.exe文件,即:将文本转换为使用汇编代码所需的任何格式,然后将汇编代码转换为.exe。 (我会说编译,但我不认为这是正确的词。)
最后,有什么好的地方可以开始学习汇编代码?写作的方式是经验不足的人可以使用。
我知道其中一些问题可能非常愚蠢,但我绝对没有汇编代码的经验,也不确定从哪里开始。
答案 0 :(得分:8)
在x86上,是的。您可以使用__asm关键字将汇编内联放入标准源文件中,并使用常规的MS编译/链接工具将所有内容编译在一起。
在x64(或x86)上,您可能需要使用ML and ML64命令行编译器进行汇编。
答案 1 :(得分:3)
Visual Studio提供了__asm关键字,用于在c和c ++中编译内联汇编。关于inline assembly的使用,这里也有很好的讨论。但是,如果你只是在谈论自己编译程序集,我不确定Visual C ++是否是正确的工具,但是我很确定visual studio附带了MASM汇编程序。
答案 2 :(得分:1)
简而言之,是的。
根据Wikipedia,MASM已经提供了所有版本的Visual C晚于VC6,并且也可以在Windows驱动程序开发工具包中找到。支持16位实模式和受保护模式,32位和64位的版本。
答案 3 :(得分:1)
您可以使用__asm关键字编写内联汇编。
pcasm-book(pdf)是一个很好的教程,可以启动汇编代码编程。
答案 4 :(得分:1)
是的,有点儿。
C:\Program Files\Microsoft Visual Studio 9.0\vc\bin>ml
Microsoft (R) Macro Assembler Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info
您将使用宏汇编程序。我不知道Visual Studio是否会使用.asm文件自动“做正确的事”,但你可以使用它编辑它们并用ml.exe组装它们。
开始学习汇编语言的好地方实际上可能是通过学习逆向工程。
答案 5 :(得分:0)
查找有关C ++'asm'关键字的信息。它可能是特定于编译器的,但我知道VC ++支持它。