|
|
1
10
嗯,大多数RISC非常相似,所以如果你很了解PPC,那么转换到ARM、MIP或SPARC将是一个很好的选择。我实际上是先学了SPARC,然后在几个小时内学会了MIPS和PPC。 使x86如此混乱的不是它的汇编语言,而是处理器的设计。人们往往会挂断电话:
所以,为了适应x86,分而治之:选择其中一个点,学习它是如何工作的,然后继续下一个点。首先学习调用约定可能会有所帮助,因为这将使引用堆栈指针的所有其他指令更有意义。 |
|
|
2
4
如果没有“简单”的定义,我相信大多数人都会同意x86指令集对于主流流行的CPU来说是最糟糕的。 如果要编写一个在设计指令集时应该遵循的良好或最佳实践的列表,x86将是所有相反的一个很好的例子。
|
|
|
3
3
我想你应该给“简单”下定义。 我宁愿从正交性的角度来判断机器语言(意思是:指令的任何部分都可以被替换,并且仍然可以给出有效的指令)
以及指令的能力/复杂性
以及其他。 也许您应该举例说明与其他体系结构相比,您认为x86的哪些部分“不容易”,以及原因。 |
|
|
4
3
ARM,从某个人的角度来说,这是在编写汇编程序的最后阶段。这里是 Architecture Reference Manual 开始吧。 编辑:出于某种原因,我认为你的意思是机器代码格式。x86程序集很容易-将其组装为机器代码…不太容易。 |
|
|
5
3
我认为你正在经历的现象是第二汇编语言(再次)很难学习(我假设在你开始学习PPC的时候,那时候学习PPC也是很困难的)。你熟悉的新架构越多,它就越容易——在某个时候,你会 享受 找到一些您以前从未见过的体系结构(MIS)特性。 第二个体系结构的问题是,您还不清楚什么是通用实践,什么是第一个体系结构特有的。因此,您希望某些事情在x86上的处理方式与在PPC上的处理方式相同,而事实上,x86有自己的(甚至可能更优雅)处理方式。 |
|
6
3
我学会了手臂组装,发现它非常容易和强大。我不认为擦鞋的动作和这样的事情令人困惑。至少因为我先学了ARMASM,然后我读了一些关于x86 ASM的东西。 我发现x86上缺少的大多数功能都是ARM的优势,例如多寄存器存储/读取和条件执行。pl.us,我发现有这么多寄存器非常有用。 我认为这是通常的“宗教战争”RISC对CISC,ARM对x86。imho过于主观,不可能成为一个普遍的原则。例如,Martin v.L_¶wis发现ARM没有长腿,而我发现它比x86更优雅。 我还试了一下微控制器ASM(德州仪器公司的仪器,不记得确切的型号名称),发现它很不合适,而其他许多人可能会发现它是“完美的”ASM。 |
|
|
7
2
挽臂而行。在做了20多年的软件工程师之后,我每天都为各种平台编写汇编程序,但从不需要编写x86汇编程序。一部分是因为它很糟糕,另一部分是因为我永远不会嵌入x86,所以我只运行带有x86和C的台式机/笔记本电脑,或者你想在Linux/Windows上运行的任何东西都是低级别的。 |
|
|
8
2
魔鬼的拥护者捍卫x86架构我不会为 MS x86 assembler itself, but see here 我的意见。(你可能想和GNU一起去,可能是通过 Cygwin 当然,寄存器的缺乏,大多数寄存器的特殊用途,以及整件事情的奇怪的、扭曲的、非正交的组织,似乎代表了一个经典。 别这样做 例子。哦,等等,那就是那些没有人想要或曾经真正使用过的史诗般复杂的极其复杂的功能呢?你知道分割单元吗? 关于学习的困难,我认为 乐趣 要编写x86程序集,尽管我不能完全理解这是为什么。没有一个指令集体系结构真的那么复杂,所以我认为你可以用相当小的工作量理解x86,尽管我同意它肯定比RISC ISA有更多的元素。但它是 乐趣 ,一些异常细分的寄存器,一些其他特殊用途的寄存器,以及一些指令格式,但大多使用相同的1.5地址格式。 回到防守:
关于缺少寄存器
:这最终没关系。即使是
关于复杂ISA :Intel一直在处理这一问题,一开始使用蛮力高级处理技术(286当时速度相当快),今天通过翻译:RAM中的x86操作码被转换为 micro-ops 因为它们被读取到缓存中,从而将CPU核心与x86隔离!如今,x86是一种“指令压缩”方案,只是一种随着CPU读取程序代码而分解的编码。有些东西他们分割指令,有时他们结合连续的,有时他们只是翻译它们。 |
|
|
9
0
也许值得一看 RISC-V . 它是一个开放源码指令集,设计为易于实现,并对现实硬件有用。 它被设计成模块化和可扩展的,“核心”指令集只处理整数,比如浮点是扩展。 它支持32位、64位甚至128位指令。还有一个16位的“压缩”变体(尽管目前正在开发中)。默认情况下,您会得到32个寄存器。 这里是 specs . 还有不错的软件支持。例如linux、gcc、qemu。 目前有多个不同供应商的实施正在进行中,并且正在看到来自 Google, HP and Oracle . 芯片和FPGA有开源设计。 当然,如果你从职业生涯的角度来看,RISC-V在这一点上还处于起步阶段。但由于它是开放的,它可以相当快地增长。 |