我想开始学习机器语言,你知道0010011类型的语言。如果有什么程序,我可以用机器语言编写吗?拜托,我知道你们会告诉我“那里有更好的语言,或者你为什么要学习这种语言”之类的评论。我知道这一点,所以请不要发表任何这些评论。谢谢。
4 回答
太棒了!我是一位资深的 ASM 程序员,也是最后一个嘲笑你非常有价值的项目的人。我仍然知道 CALL 的 Z-80 操作码实际上是 0xC9(或者,你可能会说,1100 1001)。在我看来,你将从练习中受益。
不过,我建议不要从位开始,而是从汇编代码开始。然后,当您感到舒适时,可以快速转向机器语言。您可以使用任何版本的 Visual Studio 轻松完成此操作,我认为使用任何合理的 IDE 都可以。
编辑很抱歉:我应该说“将您的程序编译为机器代码的任何版本的 Visual Studio”,这意味着至少 VS 用于 C/C++。我对 C# 知之甚少,但我的印象是 C# 编译器会以一种称为“中间语言”(IL) 的方式发出您的代码的翻译版本。因此(当我读到它时)没有干净的方法可以在 C# 源程序中包含汇编语言源代码。这里讨论了如何从 C# 程序调用 DLL:
http://www.codeproject.com/KB/cs/unmanage.aspx
您最简单和最好的选择(也许是您唯一的选择)是安装 Visual Studio Express for C/C++,然后探索该.asm
指令的使用:
http://msdn.microsoft.com/en-us/library/aa258994%28v=vs.60%29.aspx。
坚持C语言;暂时忽略 C++ 语言。您必须学习足够的 C 才能输入、编译和运行一个小型 C 语言演示程序(按照惯例和历史,这是一个hello.c
您可以在任何地方找到的程序)。然后,您可以插入 .asm 的一部分并使用调试器来试验该部分。
是的,我说你会从练习中受益,但我并没有说这很容易——这很困难:你必须了解很多关于幕后的知识。该主题可以合理地是一个学期的课程。
但是你可以做到,随着时间的推移坚持不懈。这正是好处所在。
去吧!
您不写 00010010。您需要研究特定 CPU 的汇编程序,然后找到该 CPU 的汇编程序,如果您不拥有该 CPU - 一个模拟器来针对它运行您的汇编代码。
人们(通常)不使用机器语言编写,他们使用汇编助记符编写并让汇编器生成相应的机器代码。如果您真的想编写机器语言,请为您的处理器选择开发人员手册,例如英特尔开发人员手册。
如果您想学习使用汇编,请拿起一本书,例如 Wrox 的 Professional Assembly Programming。您将了解何时选择汇编而不是高级语言是有用的。
我认为您的意思是汇编语言。给自己一个 PSOC 板和谷歌的 ARM 汇编语言教程。一旦你习惯了组装,它会非常有趣,但调试它可能会让人头疼,尤其是当你有多个内循环时。