我想开始学习机器语言,你知道0010011类型的语言。如果有什么程序,我可以用机器语言编写吗?拜托,我知道你们会告诉我“那里有更好的语言,或者你为什么要学习那种”评论。我知道这一点,所以请不要发表任何评论。感谢。
答案 0 :(得分:4)
好极了!我是一位历史悠久的ASM程序员,也是最后一个嘲笑你非常有价值的项目的人。我仍然知道CALL的Z-80操作码真的是0xC9(或者你可能会说,1100 1001)。在我看来,你将从练习中受益。
但我建议,不是从比特开始,而是从汇编代码开始。然后,当您感到舒服时,它会迅速转向机器语言。您可以使用任何版本的Visual Studio轻松完成此操作,我认为可以使用任何合理的IDE。
编辑很抱歉:我应该说“任何将您的程序编译成机器代码的Visual Studio版本”,至少意味着VS for 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并使用调试器来试验该部分。
是的,我说你会从练习中受益,但我并没有说这很容易 - 这很难:你必须学习很多关于什么是幕后的。该课程可以合理地为一学期课程。
但你可以随着时间的推移坚持下去。这正是利益所在。
去吧!
答案 1 :(得分:3)
你不写00010010。 你需要研究特定CPU的汇编程序,然后找到该cpu的汇编程序,如果你没有这个cpu - 一个模拟程序来运行汇编代码。
答案 2 :(得分:2)
人们(通常)不用机器语言编写,他们用汇编助记符编写并让汇编程序生成相应的机器代码。如果您真的想编写机器语言,请选择适用于您的处理器的开发人员手册,例如英特尔开发人员手册。
如果您想学习使用汇编,请选择一本书,例如Wrox的Professional Assembly Programming。您将了解何时通过更高级别的语言选择汇编是有用的。
答案 3 :(得分:1)
我认为你的意思是汇编语言。给自己一个PSOC板和谷歌的ARM汇编语言教程。一旦你习惯了,装配就会非常有趣,但是如果你有多个内循环,调试它可能会很痛苦。