当前位置: 首页 > 编程笔记 >

Intel x86 Assembly& Microarchitecture x86汇编语言

汪安然
2023-03-14
本文向大家介绍Intel x86 Assembly& Microarchitecture x86汇编语言,包括了Intel x86 Assembly& Microarchitecture x86汇编语言的使用技巧和注意事项,需要的朋友参考一下

示例

x86汇编语言家族代表了最初的Intel 8086架构数十年来的进步。除了基于所使用的汇编器的几种方言外,多年来添加了附加的处理器指令,寄存器和其他功能,同时仍然向后兼容1980年代使用的16位汇编。

使用x86程序集的第一步是确定目标是什么。例如,如果要在操作系统中编写代码,则将要确定是否选择使用独立汇编程序还是使用高级语言(例如C)的内置内联汇编功能。希望在没有操作系统的情况下编写“裸机”代码,只需安装所需的汇编程序,并了解如何创建可转换为闪存,可启动映像或以其他方式加载到内存中的二进制代码。开始执行的适当位置。

NASM(Netwide汇编程序)是在许多平台上都得到很好支持的一种非常流行的汇编程序,可以从http://nasm.us/获得。在NASM站点上,您可以继续下载适用于您平台的最新版本。

视窗

Windows可以使用32位和64位版本的NASM。NASM附带了一个方便的安装程序,可以在Windows主机上使用该安装程序来自动安装汇编程序。

的Linux

您的Linux版本上可能已经安装了NASM。要检查,执行:

nasm -v

如果找不到该命令,则需要执行安装。除非您做的事情需要先进的NASM功能,否则最好的方法是对Linux发行版使用内置的软件包管理工具来安装NASM。例如,在Debian衍生的系统(例如Ubuntu等)下,从命令提示符处执行以下命令:

sudo apt-get install nasm

对于基于RPM的系统,您可以尝试:

sudo yum install nasm

Mac OS X

OS X的最新版本(包括优胜美地和El Capitan)预装有较早版本的NASM。例如,El Capitan安装了0.98.40版。尽管这几乎可以用于所有正常目的,但实际上它已经很老了。在撰写本文时,NASM版本2.11已发布,并且2.12具有许多可用的候选发布版本。

您可以从上面的链接获取NASM源代码,但是除非有特殊需要从源代码安装,否则从OS X发行目录下载二进制软件包并将其解压缩要简单得多。

解压缩后,强烈建议您不要覆盖NASM的系统安装版本。相反,您可以将其安装到/ usr / local:

 $ sudo su
 <user's password entered to become root>
 # cd /usr/local/bin
 # cp <path/to/unzipped/nasm/files/nasm> ./
 # exit

此时,NASM已在/usr/local/bin,但它不在您的路上。现在,您应该在个人资料末尾添加以下行:

 $ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile

这将添加/usr/local/bin到您的路径中。nasm -v现在,在命令提示符下执行应显示正确的较新版本。

 类似资料:
  • 机器语言 机器语言是指令的集合。 汇编语言 汇编语言的主体是汇编指令。 存储器 随机存储器RAM,可读可写,必须带电存储,关机后存储的内容丢失 只读存储器ROM,只读,关机后其中的内容不丢失 装有 BIOS (基本输入输出设备)的ROM 接口卡上的RAM:显存 外存(storage,磁盘)和内存(memory,主存,高速缓存) 内存地址空间 存储单元:1个字节(byte) 总线 地址总线:CPU是

  • 《汇编语言》(Assembly Language)是计算机专业中一门重要的基础课程,是一种面向机器的低级语言。它依赖于硬件,能通过巧妙的程序设计充分发挥硬件的潜力。汇编语言程序产生的代码运行效率高。因此,到目前为止,许多软件系统(例如操作系统等)的核心部分仍然用汇编语言来编写。

  • 能跑就行,不行加机器。——rfyiamcool & 爱学习的孙老板 跟对人,做对事。——Rhichy Go语言中很多设计思想和工具都是传承自Plan9操作系统,Go汇编语言也是基于Plan9汇编演化而来。根据Rob Pike的介绍,大神Ken Thompson在1986年为Plan9系统编写的C语言编译器输出的汇编伪代码就是Plan9汇编的前身。所谓的Plan9汇编语言只是便于以手工方式书写该C语

  • 本文向大家介绍什么是汇编语言,包括了什么是汇编语言的使用技巧和注意事项,需要的朋友参考一下  汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器

  • 上面介绍的在Solidity中嵌入的内联汇编语言也可以单独使用。实际上,它是被计划用来作为编译器的一种中间语言。在这个目的下,它尝试达到下述的目标: 使用它编写的代码要可读,即使代码是从Solidity编译得到的。 从汇编语言转为字节码应该尽可能的少坑。 控制流应该容易检测来帮助进行形式验证与优化。 为了达到第一条和最后一条的目标,Solidity汇编语言提供了高层级的组件比如,for循环,swi

  • 为了更加深入理解C语言的本质,我们需要学习一些汇编相关的知识。作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但是非常重要。因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而

  • 本文向大家介绍汇编语言学习心得,包括了汇编语言学习心得的使用技巧和注意事项,需要的朋友参考一下 汇编语言 汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。

  • 汇编语言的真正威力来自两个维度:一是突破框架限制,实现看似不可能的任务;二是突破指令限制,通过高级指令挖掘极致的性能。对于第一个问题,我们将演示如何通过Go汇编语言直接访问系统调用,和直接调用C语言函数。对于第二个问题,我们将演示X64指令中AVX等高级指令的简单用法。 3.7.1 系统调用 系统调用是操作系统为外提供的公共接口。因为操作系统彻底接管了各种底层硬件设备,因此操作系统提供的系统调用成