gpt4 book ai didi

assembly - 使用虚拟机学习汇编

转载 作者:行者123 更新时间:2023-12-03 06:26:56 25 4
gpt4 key购买 nike

我正处于学习汇编语言的计划阶段,希望从 x86 汇编开始,但我周围的计算机配备 64 位处理器(i7、i5 和 Core 2 Duo)和操作系统。由于我使用现有的机器进行工作,并且不希望在学习/练习时出现问题,因此我一直计划使用我可能找到的一些旧硬件购买或构建一个便宜的 32 位系统。但在此之前,我想知道是否可以使用虚拟机来达到同样的目的。执行的机器指令是否仅限于虚拟机,或者它们是否会与虚拟机的主机(即我的计算机本身)交互?

我环顾四周,看看是否有人已经尝试过这样的事情,但似乎没有人尝试过 - 所以,如果我的问题很天真,我很抱歉,因为我对组装一无所知。但如果有人能够阐明这个主题,并为像我这样想要在安全和隔离的环境中学习汇编的人提供一些指导,那就太好了。

最佳答案

我强烈建议:

1)使用指令集模拟器(与您所要求的一致)。更好的可见性和更大的成功机会,更少的挫败感,更少的放弃机会。

2) 不要先学习 x86 汇编。 (拥有硬件并不是先学习 x86 的糟糕借口)。非常糟糕的架构,首先学习一个好的架构,然后如果您费心学习 x86,稍后学习它,然后首先使用众多模拟器/仿真器之一学习 8088/86。

3)学习一些指令集,如果你从一个好的指令集开始,那么所有其他指令集甚至编程语言都是语法的小问题。

4)你不是在学习系统调用,这是学习汇编的不好方法,学习指令集以及如何用它编程,系统调用是在你学习了汇编并选择继续在其中编写应用程序之后。

msp430(或 pdp11/lsi11)、arm、thumb、avr、mico8 和其他一系列要好得多。在您学习了一些之后,请保存 mips,它具有不常见的功能,可能会让您对其他架构产生错误的思维方式。

如果您的编程技能已经很强,那么您可以在几天内学会汇编,并在几周内掌握几个到多个指令集。如果您按照本指南学习一些不相关(彼此)(好的)指令集,然后开始研究 x86,您就会明白为什么我建议最后学习或从不学习它。与 6502 和 pic 以及其他一些产品一样,它具有历史教育值(value),但由于该系列历史的性质,您无法从调优/编程的角度从中获得太多信息。实际上,我建议阅读 The Zen of Assembly,并记住,即使在编写时,它也是关于如何思考一般性能编码,而不是关于 8088/86 性能调优。

真正学习汇编的一个好方法是编写反汇编程序,问题是大多数指令集都是可变字长的,而可变字长反汇编程序是一个高级编程问题。 ARM 和thumb(不是thumb2)的字长是固定的,非常容易编写反汇编程序。

关于assembly - 使用虚拟机学习汇编,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com