首页 > 编程语言 >汇编基础

汇编基础

时间:2024-04-28 12:22:23浏览次数:14  
标签:汇编 Intel 基础 处理器 指令集 寄存器 CPU

CPU结构和指令集

CPU是名称为中央处理单元,简称处理器,主要的作用是从内存中读取指令,然后解码和执行。
CPU架构就是CPU内部设计的结构,是一堆硬件组成,用于实现指令集所规定的操作

指令集包含了一系列的操作码(opcode),以及特定的CPU执行的基本命令。如果想要设计CPU,就得先解决使用什么样的指令集,然后设计硬件的电路。根据现在指令集的特征,可以分为两类:CSSCRISC

由于指令集是一堆二进制数据,不方便阅读和理解,于是就有了汇编语言(Assembly language),汇编语言就是类似人类语言的方式对执行集进行描述,每个汇编指定都会对应的机械执行。再往后就有了C/C++等高级语言

指令集架构

  • CISC: 复杂指令集计算机,代表的是x86处理器
  • RISC: 精简指令集计算机,典型代表是ARM处理器

需要注意的一点是RISC可以完全使用寄存器来传递参数,而CISC只能使用栈,或者是栈和寄存器结合起来使用

x86/x64汇编基础

我们主要以了解x86的汇编语法来了解汇编语言
x86汇编主要的语法有两种风格: AT&TIntel风格

通常在Linux中见到的AT&T的风格比较多,常见的GCC、GDB、objdump都是使用的AT&T风格,他们两个之间语法有一些简单的区别,我们主要了解Intel风格

有很多细节的不同,AT&T的特征是寄存器和数字的前面通常会加入% $的符号,Intel没有,十六进制使用的是0xIntel使用的是后方计入h

寄存器

寄存器从8位到16位,在到32位以及64为处理器,寄存器的名称有一些变化。

您想要一个从8位到64位寄存器名称变化的表格。以下是一个简单的表格,显示了不同位数寄存器的常见名称。请注意,这只是一个基本的示例,实际的寄存器名称可能因处理器架构、设计或特定应用而有所不同。

位数 寄存器名称示例
8位 AL, AH, BL, BH, CL, CH, DL, DH
16位 AX, BX, CX, DX, SP, BP, SI, DI
32位 EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI
64位 RAX, RBX, RCX, RDX, RSP, RBP, RSI, RDI

标签:汇编,Intel,基础,处理器,指令集,寄存器,CPU
From: https://www.cnblogs.com/Junglezt/p/18163488

相关文章

  • 01-linu核心基础-03操作系统基础
    在PC领域,苹果在2005年之前采用IBMPowerPC芯片,从2005-2020年采用Intelx86芯片,最近则新发布了苹果M1芯片。M1是一款基于ARM架构的苹果自研芯片。本文简单介绍苹果M1芯片及新产品布局对ARM生态影响windwos电脑是x86架构的Macosm芯片是基于arm架构的GPU(GraphicsProcessingUn......
  • 零基础手搓自己的专属AI应用
    https://mp.weixin.qq.com/s/8Hg42KyW1Xklw-8gkDvjmw  ONE.如何入门? 大模型编程通常使用以下两种方法:通过大模型发布的API,您将根据官方文档的调用格式,将提示词通过网络发送给大模型。 通过一些封装好的框架进行调用。Langchain/LlamaIndex。Langchain支持......
  • Mybatis入门——基础操作
    介绍什么是Mybatis?Mybatis是一款优秀的持久层框架,用于简化JDBC的开发。Mybatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了goolecode,并且改名为Mybatis,2013年11月迁移到GitHub。官网:https://mybatis.org/mybatis-3/zh_CN/index.html快速入门使用......
  • xml基础
    简介XML被设计用来传输和存储数据。HTML被设计用来显示数据。XML指可扩展标记语言(eXtensibleMarkupLanguage)。XML是各种应用程序之间进行数据传输的最常用的工具。树结构上图表示下面的XML中的一本书:<bookstore><bookcategory="COOKING"><titlelan......
  • Linux系统基础
    目录Linux学习大纲命令提示符命令的格式路径的分类文件的分类目录的结构一些快捷键Linux学习大纲命令提示符通常情况下,我们使用Linux都是在命令行环境下,所以学习Linux的第一步需要了解Linux的命令提示符。Linux命令提示符通常由用户名、主机名和当前工作目录组成。[use......
  • xml基础
    简介XML被设计用来传输和存储数据。HTML被设计用来显示数据。XML指可扩展标记语言(eXtensibleMarkupLanguage)。XML是各种应用程序之间进行数据传输的最常用的工具。树结构上图表示下面的XML中的一本书:<bookstore><bookcategory="COOKING"><titlelan......
  • 模块的基础知识点
    一:模块的定义模块:就是一系列功能的集合体,分为三大类1.内置(就是解释器里自带的)2.自定义:可以是任何语言写的(py文件本身就是一个模块,文件名叫xx.py,模块名就叫xx)3.第三方:既不是自带的,也不是自己写的,是别人的直接拿过来ps:模块分为四种形式......
  • Hadoop集群模式的搭建之二:配置Hadoop平台基础环境
    在进行Hadoop集群的安装部署之前,需要对虚拟机进行一些基础环境配置。例如,为了在集群中识别主机,需要配置主机和IP地址的映射关系;为了使用Web相关的服务和访问连接,需要在集群中关闭并禁用防火墙功能;为了减少节点之间访问时人工输入用户密码,需要配置SSH免密登录;为了集群节点的时间能......
  • 深入理解Python协程:从基础到实战
    title:深入理解Python协程:从基础到实战date:2024/4/2716:48:43updated:2024/4/2716:48:43categories:后端开发tags:协程异步IO并发编程Pythonaiohttpasyncio网络爬虫第1章:协程基础1.1协程概念介绍协程(Coroutines)是一种特殊的软件构造,它允许程序在执......
  • 01-linu核心基础-02运维基础重要概念
    ip地址IPv4(第四版本的IP协议)是构成现今互联网技术的基石协议查看自己的IP(公网)访问该网址、即可得知自己在互联网中的IP地址。http://www.net.cn/static/customercare/yourip.aspIP地址理解Ip地址由两部分组成,网络部分+主机部分网络部分指的是同一个网段、好比咱们这间教室......