Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何执行机器代码(学习汇编)_Assembly_Emulation - Fatal编程技术网

Assembly 如何执行机器代码(学习汇编)

Assembly 如何执行机器代码(学习汇编),assembly,emulation,Assembly,Emulation,我想尝试一下学习汇编,并可能编写我自己的简单汇编程序(我最近读了一篇关于如何创建操作系统的有趣文章,并很快意识到对汇编有一定的熟悉会对我有很大帮助) 问题是,尽管我确信我在寻找汇编语言/机器代码的文章和指南时不会遇到任何问题,但我倾向于边做边学,我真的很想尝试一下执行我的代码。我想我有两个选择: 了解如何创建windows可执行文件 使用某种虚拟机/仿真器 第二个选项对我来说更合适,因为它可以防止我犯下潜在的愚蠢错误,而且可能更接近于我在编写操作系统时所处的环境,但我也不确定如何做到这一点。

我想尝试一下学习汇编,并可能编写我自己的简单汇编程序(我最近读了一篇关于如何创建操作系统的有趣文章,并很快意识到对汇编有一定的熟悉会对我有很大帮助)

问题是,尽管我确信我在寻找汇编语言/机器代码的文章和指南时不会遇到任何问题,但我倾向于边做边学,我真的很想尝试一下执行我的代码。我想我有两个选择:

  • 了解如何创建windows可执行文件
  • 使用某种虚拟机/仿真器

第二个选项对我来说更合适,因为它可以防止我犯下潜在的愚蠢错误,而且可能更接近于我在编写操作系统时所处的环境,但我也不确定如何做到这一点。

从一些教程开始


看看FASM或MASM。你没有说你对哪个处理器感兴趣,这是非常重要的。 但是,假设采用intel x86系列,则有相当多的模拟器可以让您在计算机上安全地运行代码
桌面,例如。谷歌搜索“8086模拟器”了解更多信息。

学习x86 windows汇编编程的好地方是传奇

您还可以找到MASM工具


如果你有耐心,我建议你学习RISC汇编而不是CISC;您需要学习的说明会更少,您可以练习构建更多更高级别的构件。我第一次学习MIPS assembly是因为它有一个很棒的免费仿真器()和教科书,我很遗憾忘记了它的名字,但它有一个老式的编织装订,是奶油色的。

你可能会想读这篇精彩的文章:

我还没有决定,我想我可能会尝试某种嵌入式系统,但我觉得在这个阶段这没什么大不了的,因为在我看来,技能和概念在架构之间是可以转换的。基本概念是的,但熟练掌握一个特定的架构可能需要相当长的时间——我曾经是一个相当好的Z80程序员,但即使如此,我也花了几个月的时间才成为一个平均6502人。而现代的体系结构比这两种要复杂得多。我参加了一门教授MIPS汇编程序和使用SPIM的课程。它让我想起了很多Applesoft Basic(如果/那么/否则,goto,gosub,基础数学)。我希望我能给这本书的每一个背书都比a+1多得多