教 程 目 录
汇编编程教程
汇编语言是计算机或特定计算机专用的其他可编程设备的低级编程语言与大多数高级编程语言相比,这种架构通常可以跨多个系统移植.汇编语言由被称为NASM,MASM等汇编程序的实用程序转换为可执行机器代码.
Audience
本教程有专为那些想要从头学习汇编编程基础知识的人而设计.本教程将为您提供有关汇编编程的充分理解,您可以从中获得更高级别的专业知识.
先决条件
在继续本教程之前,您应该对计算机编程术语有基本的了解.对任何编程语言的基本理解将帮助您理解汇编编程概念并快速开始学习.
本文地址:https://itbaoku.cn/tutorial/assembly_programming-index.html
相关问答
推荐答案1 参考人类可读 编程 language 包含与A CPU体系结构的指令集,您将使用以下术语之一: 汇编语言 ( 首选 并用于大多数现代权威来源) 汇编语言(非正式的语,较少使用,很少在权威来源中使用) asm(非正式的速记符号) 参考转换 的程序,该程序翻译 汇编语言源代码进入机器语言对象代码,您将使用以下术语: assembler 一个汇编器是一个与编译器相似的程序,除了其输入是汇编语言(低级语言)源代码,而不是高级语言sour CE代码.汇编程序的输出,像编译器一样,是机器语言对象代码. 因此,总而言之,编程语言为 汇编语言 ,以及将汇编语言源代码转换为机器语言对象代码的程序为 汇编器 .一个汇编器将汇编语言源代码转换为机器语言对象代码. 有些人懒惰地将汇编语言源代码称为汇编器,如在"我将其中的大部分写在 汇编 中."这种用法是不精确的,可能导致混乱.您在 汇编语言 中编写代码,然后使用 issembler (program)将其转换为机器语言. 推荐答案2 与上下文有很多关系.多年来,我已经看到这两个术语都用来删除本质上是机器语言指示的人类形式的语言.机器语言实际上只是一个二进制代码,可以通过逻辑电路来解释以执行任务.为了使人类了解正在做的事情,汇编语言与计算机理解的说明相对应.意识到,在人类可以遵循的实际说
)
推荐答案1 这确实取决于您正在学习的特定组装语言(每个处理器架构独有),无论是CISC还是RISC架构,您的目标是什么,您对计算机的工作方式的先前了解,以及您对编程的先验知识.根据这些因素的组合,学习汇编语言可能比学习C更难或可能需要相同的努力. 在任何汇编语言中,您都会去必须注意低级细节,例如注册分配,CPU标志,寻址模式,程序堆栈管理,呼叫会议等 - 使用高级语言时不必经常考虑的事情.汇编语言在概念上很简单,但可以为您提供许多要处理的选择和详细信息. 如果您的目标是编写高度优化的汇编语言代码,则可以竞争或超过该语言代码执行高度优化的编译器生成的代码,然后您必须超越学习汇编语言,并深入研究缓存,排序执行,指令管道等的细节.为了加快已经内置在现代编译器的优化器中的所有"知识". 如果您的目标只是了解真正发生的事情,可以提高您的指导级调试技能,请访问无法从高级语言等无法访问的处理器功能,然后您不必深入研究其他架构元素. 推荐答案2 汇编的学习非常小. > 机器语言监视器 ).您最多有256个OP代码要记住,因此记住LDX,LDY,LDA等的A0/A2/A4真的很微不足道.或直接跳跃的4C,间接跳动的6c. 推荐答案3 为什么我们不能开发比C或诸如汇编等旧语言更好的性能的编程语言? 这是不可能的.您会看到, 汇编 基本上只是分配给直接C
)
推荐答案1 尝试.学.实践.重复. 组装编程没有什么神奇的. I/O可能具有挑战性,但是如果您满足于在调试器中看到代码执行,那是相当可行的. ,您的汇编器的怪癖以及您正在进行的架构.在某些情况下,从更简单的处理器(例如8080,Z-80,6502)开始的模拟器开始更容易,然后在无聊时向前工作. 推荐答案2 当然是可能的. 人们在广泛可用的高级语言编译器或口译员之前就学习和使用了汇编语言.实际上,人们在汇编器中广泛使用之前就已经学习并使用了机器语言二进制序列. 但是,尽管没有学习汇编语言的具体先决条件,但确实有帮助以至少一种通用高级语言进行编程.这种经验使您可以更好地了解编程的基本控制结构和概念,并使您对高级语言编译器和口译员的更加欣赏. 推荐答案3 no. 这就像学习在带有双重声明的1910年汽车上行驶,每十英里都必须加载散热器.这是学习硬件实际工作原理的好方法,但这是学习编程技能,系统设计的非常糟糕的方法. 所有人的核心问题计算机系统是复杂性.小节目,例如一个屏幕,很容易.程序越大,就越难.编程的技能不是单个陈述,而是您结合起来的方式.单个屏幕汇编器几乎什么也没做.单个python可以做一个小但有用的工作. 推荐答案4 这不是常见的,但是那里 是 全职编程的人. 我有机会与最近的一个人交谈,他的工作涉及
)
我在雪豹(10.6.3)的Mac上.我听说我使用的汇编语言必须与您使用的芯片组有效.我完全是新手的,我在C和Objective-C编程方面具有基本背景,并且在PHP中几乎具有强大的背景.我一直想看看集会的全部内容. 我将要查看的教程是VTC 我想知道的是:我要与我拥有的Mac上的汇编版本兼容的教程? 我是这种语言的新手,尽管我确实回想起在过去的时间里研究了一些方法.我确实有Xcode,我想知道的是我在Xcode中打开哪种文档以与汇编合作,并且Mac是否有一个内置的十六进制编辑器(何时需要它)? 解决方案 您使用的汇编语言不取决于您的操作系统,而是您的CPU指令集.从您的Mac版本来看,我会说您正在使用Intel处理器 - 因此您想学习X86或AMD64汇编. 其他解决方案 接收组装的一种好方法是让自己成为一个嵌入式设备. TI has some nice, inexpensive devkits 玩.我已经使用了Chronos套件(50美元)的戳戳,该计算机套件的数字手表带有可编程的MSP430微控制器,并带有无线链接到您的计算机.太好了. 更新:我忘了提及其他解决方案 汇编语言是指导体系结构的特定于指令.芯片是指导体系结构的实例化. 我认为,最好通过获得Textwrangler并直接使用GCC来为您提供服务. 您要寻找的文件扩
)
大家好, 我很担心这门课,因为这是我的学期.所以请告诉我入门的基本知识.请告诉我要使用什么软件,以及任何简单的基本说明. 感谢和问候, Ravindra Bisht 解决方案 没有“简单的基本注释".你需要学习 CPU,不管它是什么.还有更多.让我们看看. 您需要了解它的架构、模式、寄存器、典型用途、一些基本说明,还需要确保您可以在参考书中找到与您的目的相关的说明并清楚地理解它们的描述.您需要清楚地了解 CPU 如何与它所嵌入的系统的内存和端口一起工作.您甚至需要至少大致了解不同类型操作的时间安排. 在架构部分,除了CPU的纯形式架构外,还需要学习一些基本的数据结构和对它们的操作.在大多数系统中,这是 stack,几乎所有架构中最基本的结构,但它可以是其他东西.如果这是 x86/IE32/IE64 体系结构,它们非常复杂,很难从各个方面理解.我想在所有模式下以足够的细节水平学习所有这些内容,以进行实际工作可能需要 2-4 个学期,如果不是更多的话.如果您的学校仅提供 1 个学期关于此主题的课程,那么您学习的只是基础知识或相对简单的东西. [编辑] 我刚刚看到你的下一个问题并将其删除 - 你不应该重新发布问题.除了这个问题之外,唯一的细节是:CPU 是 8086.嗯,这是一个相对复杂的处理器,但是比 x86 简单的数量级或数量级.实际上,x86
)
推荐答案1 汇编器是一个程序.汇编是一个概念 - 有不同的汇编语言. (一个CPU可以有多个汇编语言,但是一个CPU的组装对于另一种CPU是没有用的.) 推荐答案2 是或两者兼而有之.由于您将资本的汇编程序作为一个适当的名词,因此我声称您将其表示为一种计算机程序,该程序从符号源代码生成机器代码.但是,"汇编器"一词通常用作汇编语言的速记的形容词,例如引用汇编代码时; 汇编器 通常与单词 汇编 互换.因此,答案完全取决于应用的上下文. 推荐答案3 汇编是一种语言 汇编器是一个汇编语言的程序.一个组装曾经是一个将A程序从组装语言转换为机器代码的人,而当计算机首次不这样做时,稍后让人类更便宜. 推荐答案4 除了极少的例外,写作 任何 汇编语言中的程序都比以合理的更高级别的语言编写它需要更多的努力. 包括编码汇编器. 我说"合理",因为有很多不合理的更高级别的语言.不要要求我在Intercal或Befunge上写一个汇编器,甚至8位Microsoft Basic.对硬件非常严格的控制. 99.99944%的程序不需要. 尤其是汇编器. 推荐答案5 汇编语言是语言,而不仅仅是一种语言.有很多很多汇编语言,每个处理器架构至少一种,对于流行的体系结构,通常会有几种. 汇编器是使汇编语言进入的原因可执行计算机可以运行的
)