Questions tagged «assembly»

汇编语言是用于计算机,微控制器或其他可编程设备的低级编程语言,其中每个语句对应于一条机器代码指令。


7
程序员如何使用高级语言处理低级软件开发?
我对编程有些陌生,而提出这个问题的最佳方法是举一个例子。 我知道如何用Java和C#做基本的事情。诸如小型Windows窗体应用程序之类的东西或使类成为通用类。我基本上一直在学习,并且还没有尝试做任何大的事情。无论如何,我一直很好奇事情在幕后的完成方式,我想你会说。 我知道所有内容都归结为1和0,并且汇编语言基本上为1和0的模式提供命令,但是似乎从那里跳到了:为此使用一个库作为该库。在我看来,没有库就可以执行的所有C#操作都是算术和二进制逻辑。要获取输入或输出,请使用库等。 我知道这个问题对某些人来说似乎很明显,我知道我有很多东西要学,但我什至不知道从哪里开始这样的问题。谢谢。 所以我的问题是这样的: 如果有人要制作虚拟机或Playstation仿真器,操作系统或驱动程序,或将mp3支持添加到媒体播放器,或者制作自己的文件类型,等等。我看不到用C#或Java来完成的方式。 换句话说,如果我读WROX的《 Professional C#》或OReilly的《 Programming C#》之类的书,我会知道该怎么做吗?还是您必须学习汇编语言或诸如C ++这样的低级语言?

6
大会仍然有意义吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 在编码和/或管理项目方面,汇编语言和高级语言之间是否有主要区别?显然,与大多数其他语言相比,用汇编语言执行特定的操作要花费更多的语句,但是是否存在差异会影响基于目标汇编语言(特别是x86 / x64汇编语言)运行项目(或应该)运行项目的方式? 就汇编语言和其他语言之间的差异而言,可以合理地猜测,其中至少有一些是其他语言的优势。谁能指出汇编语言的特定缺点以及减轻这些缺点的方法吗? 一个具体的例子是人员的可用性。是否有人在寻找经验丰富的汇编语言程序员时遇到麻烦,如果可以,可以采取哪些步骤来减轻此问题?
18 assembly  kernel 

5
为有抱负的学生提供有关构建自己的内核的建议[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我是一个非常有野心的大学生,希望学习几乎所有有关计算机的知识(如果有需要,请抨击我,我喜欢学习)。最近,我认为设计和构建自己的内核是一个有趣的项目(尽管是一个漫长的项目)。 我掌握了一些基本信息,并且已经积累了一些需要掌握Assembly和C / C ++才能真正完成此工作的信息。当我从事这些工作时,我想从编程的角度学习内核实际上是如何工作的。我已经花了几个小时浏览Linux内核的代码,但这只能带您到现在为止。 构建内核的基本步骤是什么?您需要解决的问题?命令还是做事?我知道我很讨厌,但我决心要应付。
18 c  assembly  kernel 


4
我们如何从汇编到机器代码(代码生成)
有没有一种简单的方法可以可视化将代码组装到机器代码之间的步骤? 例如,如果您在记事本中打开有关二进制文件的文件,则会看到机器代码的文本格式表示形式。我假设您看到的每个字节(符号)都是对应的ascii字符,因为它是二进制值? 但是我们如何从汇编程序转换为二进制程序,幕后发生了什么?

8
逆向工程:它真正有什么好处?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我有一些无辜/初学者的问题: 逆向工程有什么用? 作为程序员,我应该学习逆向工程的技巧吗? 对于有经验的程序员有什么好处?

7
使用C而不是Assembly有哪些优点/缺点?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我目前正在研究电信和电子领域的工程学,我们已经从微处理器编程的汇编程序迁移到了C语言。我怀疑这是个好主意。与汇编相比,C有哪些优缺点? 我看到的优点/缺点是: 优点: 我可以说C语法比汇编器语法更容易学习。 使用C可以更轻松地制作更复杂的程序。 学习C比学习汇编器更有效率,因为围绕C的开发工作比汇编器要多。 缺点: 汇编器是比C更底层的编程语言,因此它非常适合直接对硬件进行编程。 暗示您可以使用内存,中断,微寄存器等的灵活性更高。
15 c  low-level  assembly 

8
我应该在汇编语言中包含“ assembly”作为编程语言吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 在回答一个问题时,有人写道assembly is not a language, it's a process。我倾向于同意,因为程序集的“语言”取决于它将运行的体系结构,这在一个CPU与另一个CPU之间可能有很大的不同。 因此,如果您已经为一种体系结构编写了汇编程序,是否意味着您可以仅将其assembly与其他编程语言一起包含在CV中?还是您明确地说您已经为该特定体系结构编写了汇编程序? 编辑:将“涉猎”更改为“书面”。英语不是我的母语,我误解了这个词,认为它意味着您已经使用很多而不是仅仅使用了一点。

7
x86汇编中NOP指令和align语句的目的
自从我上一次组装课以来已经有一年左右的时间了。在该课程中,我们将MASM与Irvine库一起使用,以使其易于编程。 在我们完成了大多数指令之后,他说NOP指令实际上什么也不做,不用担心使用它。无论如何,这大约是期中考试,他有一些示例代码无法正常运行,因此他告诉我们添加一条NOP指令,它可以正常工作。我问我下课后为什么做,实际上做了什么,他说他不知道。 有人知道吗
15 assembly  x86 

2
“真正的程序员可以用任何语言编写汇编代码”是真的吗?
真正的程序员可以用任何语言编写汇编代码。 (拉里·沃尔)。 据我所知,拉里·沃尔(Larry Wall)先生想对一个真正的程序员说,任何一种语言都可以具有与ASM相同的功能。但是我严重不明白。如何使用Perl,Python,Java和C#等高级语言编写汇编代码?像Perl和Python这样的语言甚至没有指针。还是他有其他意思?沃尔先生实际上想说什么?

7
我们如何准确地从二进制/十六进制转换为汇编指令集?
因此,我最近一直在这里尝试学习一些嵌入式/汇编编程,并且甚至尝试学习最低级别的知识(门等)。 不过,有一件事使我感到困惑……是如何“获得”指令集。我在某种程度上了解gates / TTL等的工作原理,但是我看不到如何从中获取mov,add,clr等...? 这可能是一个愚蠢的问题....但是我的意思是我回想起第一个微处理器/控制器,并认为..他们究竟是如何设计指令集并使之工作的? 编辑:我想为清晰起见,假装我在谈论第一个微处理器,它们是如何从二进制转换为实际创建指令集的?

9
用C ++重写IBM汇编器+ COBOL
我是一家汽车租赁公司的出租代理/经理,该公司在1972年编写的出租系统上运行。我决定也许是时候进行更新了。作为一点背景,下面是我们每天必须从此程序中处理的疯狂的简短示例: 租赁代理商必须记住,在一个屏幕上进行打印时,在ACT字段中使用“ MXC”(所有内容均基于短代码),这令人困惑地表示“在合同上显示最大数量”,而在另一个屏幕上则需要PR(对于PRint)。 ACTION字段,但有几个屏幕在PT(对于PrinT)字段中使用Y,而另一个屏幕在PRT(对于PRinT)字段中使用Y,而另一个屏幕要求用户点击Enter(但不点击字母,因为这是换行符,必须是数字键盘上的回车键),然后是F8,一个不同但相关的屏幕仅需F8,某些屏幕上有一个标有PRT的字段,该字段应用于PRinT,但实际上该字段什么也不做,经过几次提示后,打印会自动完成,还有更多屏幕带有标有PRINT Y / N的字段,对于其他地点已经交付文书工作的操作,默认为Y;对于其他经销商将需要文书工作的操作,默认为N。 我决定可以做得更好,因此我决定与公司中的负责该更新的人联系。我最终与负责该计划的IT副总裁取得了联系。我从他那里得到了一些信息,并且得知我的汽车租赁公司的租赁程序是用IBM大型机组装程序编写的,其中混入了一些COBOL。他说,目前没有职位空缺,但是我应该无论如何,请给他发送我的简历给他(以防万一)。 这使我想到了我的问题。 首先是技术。考虑到将来改善可维护性的想法,我的想法是用比汇编语言更高级的语言来重写它。我的经验领域是C ++,因此这对我来说是显而易见的选择。该公司迫切需要一种更简便的方法来更新程序,正如我最近读到一篇文章时所引用的,当时与我交谈的那个人说,该团队工作很努力,他们很自豪地宣布该程序现在支持5位数字的位置代码(而不是4)和8位的车号(而不是7)。我的更新哲学,即使在这种可怕的情况下,也符合乔尔的观点:http : //www.joelonsoftware.com/articles/fog0000000069.html简而言之,重写应该是渐进式的,而不是扔掉以前的一切然后重新开始。 有没有一种简便的方法可以将IBM Assembly与C ++集成在一起,如果可以,该怎么办?我隐约知道了asm关键字,但是我不知道最好使用它还是做其他事情。这样的计划不明智吗?我在使用g ++和GNU make的Linux上完成大部分工作,因此欢迎您回答特定的答案,但绝对不需要(因为我不知道它们没有哪种构建系统,但我怀疑几乎没有)。 第二个问题更具政治性。我应该如何说服该公司他们需要进行转换?理论上的成本节省是巨大的(根据我的估计,该公司每年在浪费额外的百万美元左右,仅是增加了学习如何与该程序交互的培训成本),但是我建议的更改可能会将所有当前的程序员失业,应该将他们制定出来,因此存在很大的结构性变革阻力。 编辑:我应该解释为什么我修改公司已经拥有的东西对我来说似乎是最好的解决方案。我仍然愿意接受其他建议,因为这是程序的庞然大物。我以前从未从事过编程工作,因此请对我可能给出的任何错误分析进行更正。 首先,有现成的解决方案。 从我与几位中层管理人员的讨论中,切换到新系统的主要问题之一是,许多忠诚的员工已经在公司工作了数十年,并且对系统很满意。 。如果我有能力修改已有的内容,则可以将当前接口保持为某种“兼容模式”。用户已经必须登录才能使用当前系统,因此我可以添加在用户首次登录(在我进行此更改之后)时激活设置的功能,在此用户可以选择使用“经典”界面或“新”界面。我无法找到一种现成的解决方案来实现这一目标, 我公司还拥有我们使用的软件;我们不许可。这意味着我正在与之交谈的管理层实际上是可以授权我进行更改的同一个人。使用第三方解决方案,除了获得开发我们所使用产品的公司的必要权利外,我还必须获得公司的批准,这增加了另外的障碍。这还需要说服公司放弃“他们的”产品并购买其他产品,这似乎比尝试更新我们现有的产品更大的障碍,但是在这个问题上我很可能是错误的。 最后,展望未来,我不仅要改善用户界面并修复一些错误。在更新了这些“紧急”问题之后,我希望更新与技术相关的公司运营的基本方式。在这类问题上花了1-2年的时间后,我的计划是回到管理层并提出更重大的变化。公司目前有很多方法可以通过根本不使用的技术从根本上加以改善。例如,每个区域几乎都以相同的方式运行。当地的主要机场是分发汽车的中央枢纽。它们主要按需要发送。但是,机场被用作所有行动的基地。他们会用一辆车派两个人到我的位置,从我们这里接我们不需要的车,然后带着他们进来的汽车返回机场,再加上他们要收回的东西(我们距机场32英里)。然后,他们将乘坐两辆车到达距离我们5英里的位置,将其中一辆降下,然后将另一辆车返回机场。即使我们退还的汽车与他们在我们附近所需的汽车相同,他们也会这样做。我已经在该公司工作了大约两年,而我似乎只在最极端的汽车短缺紧急情况下才偏离了这一点(大约有过三次)。我将用一个自动调度系统代替在每个地区工作的4个人,该系统可以确定要去哪辆汽车,并尝试找到所需的时间最少的里程+里程+驾驶员来将所有汽车交付到需要的位置。我希望有一天可以添加更高级别的修复示例。 但是,在我提出所有建议之前,我认为通过执行较小的任务(例如更新接口)来了解公司和代码库将很有帮助。诸如外包或其他方式的解决方案将消除这种可能性。

6
“用C语言编写一个汇编程序。” 为什么要用高级语言编写用于低级语言的机器代码翻译器?
我的微处理器班老师给了我们一个作业,说: “用C语言编写一个汇编程序。” -我亲爱的教授 所以对我来说似乎有点不合逻辑。 如果我没搞错,汇编语言是从机器代码到高级语言之旅的第一步。我的意思是C是比汇编语言更高级的语言。那么,用C编写汇编语言有什么意义呢?在没有C语言的情况下,他们过去在做什么?他们是用机器代码编写汇编程序吗? 对我来说,用高级语言为低级语言编写机器代码翻译器没有任何意义。 假设我们已经创建了一个全新的微处理器架构,该架构甚至没有C编译器。用C编写的汇编程序能否模拟新架构?我的意思是没用吗? 顺便说一下,我知道GNU汇编器和Netwide汇编器是用C编写的。我也想知道为什么它们是用C编写的? 最后,这是我们的教授提供给我们的简单汇编程序的示例源代码: // to compile, gcc assembler.c -o assembler // No error check is provided. // Variable names cannot start with 0-9. // hexadecimals are twos complement. // first address of the code section is zero, data section follows the code section. //fout …

2
根据汇编语言,OOP如何在内存中组织“对象”和“类”?
内存中的对象如何组织? 例如,我知道一个函数是内存中的一段代码,它期望通过堆栈和/或寄存器的参数并处理它自己的堆栈帧。 但是对象的结构要复杂得多。他们是如何组织的?每个对象都具有与方法的“链接”,并将地址自身传递给该方法吗? 很高兴看到这个主题的很好的解释。 UPD。我提出的问题更加精确,并且我主要对静态键入语言感兴趣。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.