We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
我认为组装的标准指南是 组装的艺术。它是在线且免费的。
I think the standard guide to assembly is The Art of Assembly. It's online and free.
如果您对 x86 汇编和所有指令的操作码感兴趣,请尝试英特尔手册(免费下载)。如果您想了解如何使用汇编程序进行编程,请使用 Seth 的推荐卡内基。另一个下载是 32 位版本。
If you are interesed in x86 assembly and the opcodes for all instructions, try the Intel manuals (free download). If you want to know how to program in assembler, use the recommendation by Seth Carnegie. Another download would be the 32 bit edition.
我从 Matt Pietrek 的 Just Enough Assembly Language to get By< /a> 和其续集。这是专门为想要读取编译器在调试器中发出的内容的 C 或 C++ 程序员而设计的。
皮特雷克的材料是毫无疑问的,他写得清晰且有趣。不过,它是针对 Windows 平台量身定制的。
I learned much of what I know about assembly language from Matt Pietrek's Just Enough Assembly Language to Get By and its sequel. This is especially made for C or C++ programmers wanting to read what the compiler emits in their debugger.
Pietrek's material is above any doubt and he writes clear and entertaining. It's tailored to the Windows platform, though.
这是一种不同的方法。我最近发布了通过示例学习汇编的初稿。但它不是故意的 x86 汇编。首先学习更好、更容易理解的指令集,将使您了解基本概念,然后从其他指令集(包括 x86)开始,通常需要下载所需处理器的指令集参考。 https://github.com/dwelch67/lsasim
通常谷歌搜索 xyz 指令集会给你带来很多点击(而不是 xyz 选择您感兴趣的,arm、avr、6502 等)。理想情况下,您需要通常免费的供应商文档。不同公司对 x86 进行了如此多的变体,这使得情况变得更加混乱。不过,网上有很多很好的参考资料。对于其他系列,msp430、avr、arm、mips、pic等,您可以经常去(核心处理器)供应商网站找到很好的参考。如果您对 LSA 不感兴趣,msp430、arm 和thumb 也是不错的初次指令集。 mips 或 dlx 也是如此,不幸的是我被告知我还没有学会这些。 avr 和 x86 等你先学了别的东西之后。 Pic 有几种风格,非 mips 传统 pic 指令集在其简单性和方法方面无疑具有教育意义,可能是 x86 的垫脚石(我也不一定推荐 pic 作为第一个指令集)。我建议首先学习一些非 x86 指令集。我建议先学习 8088/86 指令,我可以给你一个原始英特尔手册的 ISBN 号,可能可以在二手书店(在线)花几美元找到。许多网站也定义了 x86 指令集,我强烈建议在尝试硬件之前首先使用可见的模拟器,这将使生活更轻松......例如,qemu 不是很明显也不容易可见。 gdb 的模拟器可能至少可以单步执行并转储内容。
This is a different approach. I recently released a first draft of learning assembly by example. It is not x86 assembly though, on purpose. Learning a better and easier to understand instruction set first, will get you through the basic concepts, from there other instruction sets, x86 included are often a matter of downloading an instruction set reference for the desired processor. https://github.com/dwelch67/lsasim
Normally googling xyz instruction set will get you a number of hits (instead of xyz choose the one you are interested in, arm, avr, 6502, etc). Ideally you want the vendors documentation which is usually free. There have been so many variations on the x86 by different companies that it adds to the mess. There are a lot of good online references though. For other families, msp430, avr, arm, mips, pic, etc, you can often go to the (core processor) vendors site to find a good reference. msp430, arm and thumb are also good first time instruction sets if you are not interested in the lsa thing. mips or dlx as well so I am told unfortunately I have not learned those yet. avr and x86 after you have learned something else first. Pic has a few flavors, the non-mips traditional pic instruction set is certainly educational in its simplicity and approach, might be a stepping stone to x86 (I dont necessarily recommend pic as a first instruction set either). I recommend learning a couple of non-x86 instruction sets first. And I recommend learning the 8088/86 instructions first, I can give you an ISBN number for the original intel manuals, can probably be found for a few bucks at a used book store (online). Lots of websites have the x86 instruction set defined as well, I highly recommend a visible simulator first before trying on hardware, will make life easier...qemu for example is not very visible nor easy to make visible. gdb's simulators might be as you can at least step and dump things out.
我真的很喜欢《Programming From the Ground Up》,这是一本免费的书,旨在以一种非常容易理解的方式教您 ASM 编程的基础知识。您可以在这里查看:
从头开始编程
I really liked Programming From the Ground Up, a free book which aims to teach you the basics of ASM programming in a pretty easy to understand way. You can check it out here:
Programming from the Ground up