Linux操作系统汇编语言基础知识(图文代码)

news2024/11/19 5:37:58

1、什么是汇编语言,它在计算机语言中的地位?

汇编语言是程序设计语言的基础语言,是唯一可以直接与计算机硬件打交道的语言

2、汇编语言与源程序、汇编程序、汇编的关系?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、汇编语言的特点

  • \1) 汇编语言与机器指令一一对应,可充分理解计算机的操作过程汇编语言指令是机器指令的符号表示
  • \2) 汇编语言是靠近机器的语言编程时要求熟悉机器硬件系统,可充分利用机器硬件中的全部功能,发挥机器的特点在计算机系统中,某些功能由汇编语言程序实现:实时过程控制系统、系统初始化、实际的输入输出设备操作
  • \3) 汇编语言程序的效率高于高级语言效率,指的是用汇编语言编写的源程序在汇编后所得的目标程序效率高时间域的高效率:运行速度快;空间域的高效率:目标代码占用存储空间少

4、汇编语言与高级语言的比较

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5、进制转换

(略)

6、数据组织单位

\1) 位(bit)
是计算机中表示信息的最小单位,符号b,是一个二进制位,每一位用0或1表示
\2) 字节(Byte)
8位二进制数为一个字节
\3) 字(Word)
若干个字节为一个字,一般一个字包含两个字节
范围0000H~FFFFH
\4) 双字(Double Word)
两个字节为一个字,四个字节为连个字,称为双字
范围00000000H~FFFFFFFFH
\5) 字长
机器字的长度为字长,即计算机中每个字所包含的位数,由机器数据总线数决定
例如,数据总线数为64位,机器字长为64位,即每个字有8个字节
\6) 数据字与指令字
数据字:在存储单元中存储的是数据
指令字:在存储单元中存储的是指令
无论是数据字还是指令字,在存储单元中都是以二进制的形式存放的

7、BCD码

两种存储方式:组合型(1个字节表示2个BCD码);非组合型(1个字节表示1个BCD码)

8、80X86计算机组织结构

微型计算机的硬件系统主要由3个主要部分组成:

  • 1)中央处理器CPU(运算器、控制器、寄存器)
  • 2)输入输出设备
  • 3)存储器

9、80X86 CPU的寄存器

寄存器分为3类:

  • 1)通用寄存器
  • 2)控制寄存器
  • 3)段寄存器

8个8位通用寄存器:AL,AH,BL,BH,CL,CH,DL,DH

8个16位通用寄存器:AX,BX,CX,DX,SI,DI,BP,SP

8个32位通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

说明:1)指针寄存器(SP,ESP,BP,EBP)
SP,ESP为堆栈指针寄存器,存放当前堆栈段栈顶的偏移地址,
是根据指令自动移动的,要想随机读取

堆栈段中的数据,必须通过BP或EBP基址指针寄存器来读取。
2)控制寄存器(IP,EIP,FLAGS,EFLAGS)
IP,EIP为指令指针寄存器,用于存放当前正在执行的指令的
下一条指令的偏移地址,该寄存器所指的为代码段的偏移地址。
FLAGS为标识寄存器,表示程序运行时的状态和一些特殊控制

3)段寄存器

代码和数据是分开存放,代码存放在代码段,数据存放在数据段

10、内存组织结构

1)内存的地址
在存储器中内存单元的基本单位是字节,每个字节都有一个唯一的地址

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2)存储单元的内容

一个存储单元存放的信息为存储单元的内容

  1. 分为:字节单元、字节单元、双字单元
  2. 双字:需要两个16位寄存器,通常为DX:AX,DX高位,AX低位

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3)堆栈
堆栈是内存中一块特定的区域,其中数据按照*先进后出*原则
作用:暂存数据、子程序调用与返回、调用中断处理程序、从中断处理程序返回
位置:堆栈段地址存放于SS寄存器中,偏移地址存放在堆栈指针寄存器(SP(16)/ESP(32)),
他们永远指向栈顶
	初始化:堆栈的初始化时通过设置SS及SP/ESP值来完成的,可以由编译系统自动完成,也可以在程序
中通过伪指令显示地定义

11、实模式

1)介绍
	
	只有8086/8088工作在实模式下;
	80286以上的微处理器工作在实模式和保护模式下;
	在实模式下微处理器只能寻址1MB的存储空间;
	80286以上系统的微处理器在加点或复位时都以实模式方式开始工作

2)内存地址的分段

	*为什么要分段?*
	8086/8088地址总线为20根,可访问的地址为:2^20=1048576=1M
	8086/8088内部寄存器都是16位的,可以直接处理16位长度的存储地址,16位地址的寻址2^16=64K
	为了把寻址范围扩大到1MB,实模式存储器地址均采用存储空间的分段技术来解决寻址1MB的存储空间
	提出了段地址和偏移地址合成20位物理地址的概念
	
	*分段方法?*
	16位段地址+16位段内地址--->20位物理地址
	地址的组合:物理地址=段地址*16D(10H)+偏移地址,(段地址*16D--二进制段地址左移4位)
	存放段地址:16位段地址寄存器(CS、DS、SS、ES)
	存放偏移地址:16位指针寄存器(IP、SP)
	在1MB存储器中可以有64K个段,每个段最多64KB,最小为16KB
	

	*物理地址、段地址、段内地址、逻辑地址的区别?*
	物理地址:与内存单元一一对应的20位二进制数,1MB=00000H~FFFFFH
		    每个物理地址代表一个唯一的内存单元
	
	段地址:将1MB的内存空间分为长64KB的程序区和数据区称为段
		  每个段用116位二进制地址表示
		  段地址存放在段寄存器中
		  代码段:用于存放源程序的二进制程序代码,该段的段地址放在CS中
		  数据段:存放操作数据的,该段的段地址放在DS中
		  堆栈段:堆栈用的存储区,该段的段地址放在SS中
		  附加段:该段的段地址放在ES中
	
	段内地址:16位二进制段内地址为偏移地址
   (偏移地址)不同段内的偏移地址存放在不同的寄存器中,段寄存器与装偏移地址的寄存器按一定要求组合

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

逻辑地址:用段地址和偏移地址来表示内存单元的地址为逻辑地址,例如,段地址:偏移地址
	*逻辑地址与物理地址的换算关系?*
	物理地址 = 段地址*16D(10H)+偏移地址
	逻辑地址 = 段地址:偏移地址
	例子:逻辑地址,1111H:2222H
物理地址,1111H*10H+2222H = 13332H
假设1111H为代码段地址,2222H在指针寄存器IP中,示意图如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

内存分配方法?

代码段、数据段、堆栈段的大小,是以节为最小单位分配内存区域的16字节=2个字=1节,节的边界地址就是能够被16整除的地址偏移地址(段内地址)是从0000H开始的例子:假设程序分配的内存区从6100H开始,程序长度1020字节,操作数510字节,堆栈段250字节则代码段长度为1024D=400H,数据段长度为512D=200H,堆栈段长度为256D=100H

示意图如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

段与段之间的关系?

8088/8086 CPU把1MB的存储空间划分成若干逻辑段每个段的起始地址必须是能够被16整除的数逻辑段的最大长度为64KB 1MB的存储空间最多可以分成64K个逻辑段,当每个逻辑段为16KB时段与段之间可以相邻、分离、重叠、部分重叠

12、保护模式

1)保护模式存储器寻址机制
	在保护模式下,逻辑地址=选择符+偏移地址
	与实模式不同,实模式的段寄存器存放段基地址,而保护模式的段寄存器存放选择符
	保护模式下,通过选择描述符表中的描述符,间接地形成段基地址
	保护模式的偏移地址最大可以是32位,最大段长可以从16KB扩展到4GB
2)描述符
	描述符包括,段在寄存器中的位置,段的长度,访问权限
	由基地址、段界限、访问权限、附加字段组成
		基地址:指定段的起始地址
		段界限:存放该段的最大偏移地址
		访问权限:说明该段在系统中的功能和一些控制信息
		附加字段:描述该段的一些属性
	描述符的内容是由系统自动设置的
	由于段寄存器是16位的,描述符是64位的
	故将64位的段描述符放按顺序存放形成一个段描述符表,放在内存中
	而在段寄存器中实际存放的是要选择的段描述符表的序号,类似于数组中的下标

13、存储器管理机制

1)分段管理机制
		①虚拟存储器:在有限的物理存储器上获取更大的使用空间
			*虚拟存储器是如何实现存储的?*
			在程序执行期间的任意时刻,虚拟存储器系统自动吧程序分成许多小块即程序段
			将某个程序段存放到物理存储器中,其他程序段放在磁盘中
			当程序要访问到哪个程序段时,就把哪个程序段引导到物理存储器中
		
		②分段管理:将4GB的存储空间分成若干独立的受保护的存储空间块
			每个应用程序可以使用这些存储空间块
	
	2)分页管理机制
①线性地址空间:每个进程都有相同大小的4GB线性空间
用分段管理机制实现虚拟地址空间到线性地址空间的映射,实现把二维的
虚拟地址转换为一维的线性地址

②分页存储管理:把线性地址空间和物理地址空间分别划分为大小相同的块,每块长为4KB
这样的块称为页,通过分页管理机制实现线性地址空间到物理地址空间的
映射,实现线性地址到物理地址的转换

受保护的存储空间块
每个应用程序可以使用这些存储空间块

2)分页管理机制

①线性地址空间:每个进程都有相同大小的4GB线性空间
用分段管理机制实现虚拟地址空间到线性地址空间的映射,实现把二维的
虚拟地址转换为一维的线性地址

②分页存储管理:把线性地址空间和物理地址空间分别划分为大小相同的块,每块长为4KB
这样的块称为页,通过分页管理机制实现线性地址空间到物理地址空间的
映射,实现线性地址到物理地址的转换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1856767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

头歌——机器学习——集成学习案例

第1关:基于集成学习模型的应用案例 任务描述 本次任务我们将会使用银行营销数据集(来源于UCI数据集:UCI Machine Learning Repository ),该数据集共45211条数据,涉及葡萄牙银行机构的营销活动,通过一些与…

人工智能机器学习算法总结偏差和方差

1.定义 在机器学习中,偏差(Bias)和方差(Variance)是评估模型泛化能力的重要概念。它们描述了模型在训练数据上的表现以及对新数据的适应能力。 偏差(Bias) : 偏差是指模型的预测值与…

Redis之短信登录

文章目录 基于 Session 实现发送验证码登录校验验证码登录拦截器注册拦截器 基于 Redis 实现发送验证码登录校验登录拦截器登录拦截器优化 基于 Session 实现 发送验证码 /*** 发送手机验证码*/ PostMapping("code") public Result sendCode(RequestParam("pho…

BUCK电路布线规则、EMI分析

电源系列文章目录 本系列文章为博主在学习工作过程中的心得记录,欢迎评论区交流讨论。 BUCK电路工作原理、参数计算及工作模式分析BUCK电路布线规则、EMI分析电源电路中肖特基、续流二极管要求 目录 电源系列文章目录一、PCB布线规则1、输入电感与肖特基摆放2、输…

Avalonia 常用控件二 Menu相关

1、Menu 添加代码如下 <Button HorizontalAlignment"Center" Content"Menu/菜单"><Button.Flyout><MenuFlyout><MenuItem Header"打开"/><MenuItem Header"-"/><MenuItem Header"关闭"/&…

降重工具革命:如何使用AI技术优化论文原创性

论文降重一直是困扰各界毕业生的“拦路虎”&#xff0c;还不容易熬过修改的苦&#xff0c;又要迎来降重的痛。 其实想要给论文降重达标&#xff0c;我有一些独家秘诀。话不多说直接上干货&#xff01; 1、同义词改写&#xff08;针对整段整句重复&#xff09; 这是最靠谱也是…

【GD32F303红枫派使用手册】第二十四节 DHT11温湿度传感器检测实验

24.1 实验内容 通过本实验主要学习以下内容&#xff1a; DHT11操作原理 单总线GPIO模拟操作原理 24.2 实验原理 HT11是一款已校准数字信号输出的温湿度一体化数字传感器。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点信号&#xff0c;传输距离可达20米以…

【人工智能】百度文心一言智能体:AI领域的新里程碑

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

关于正点原子stm32f103精英板v1的stlink通信失败问题解决方案

由于最新的固件不适配&#xff0c;我们要想其工作要下载007的固件。 https://www.st.com/en/development-tools/stsw-link007.html?dlredirect 版本选择最低的。然后选择windows文件夹&#xff0c;更新程序 然后进keil就能正常识别到了

ICMAN液位检测之WS003B管道检测模组

ICMAN液位检测之WS003B管道检测模组 体积小&#xff0c;成本低&#xff0c; 液位检测精度高&#xff0c; 有水输出低电平无水高电平&#xff0c; 适用于饮水机、咖啡机、扫地机器人、洗地机等。 有需要朋友快联系我吧&#xff01;

Flex 布局教程:语法篇

网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 20

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”&#xff0c;意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相…

java基于ssm+jsp 美食推荐管理系统

1前台首页功能模块 美食推荐管理系统&#xff0c;在系统首页可以查看首页、热门美食、美食教程、美食店铺、美食社区、美食资讯、我的、跳转到后台等内容&#xff0c;如图1所示。 图1前台首页功能界面图 用户注册&#xff0c;在注册页面可以填写用户名、密码、姓名、联系电话等…

cpci和ei会议哪个好?

目前国际学术会议出版的会议论文集有两种收录方式&#xff0c;一是cpci数据库收录&#xff0c;另一个是ei数据库收录&#xff0c;那么两者都是会议论文&#xff0c;哪个好一些?下面学术顾问在这里做出全面的分析&#xff0c;帮助作者能够选择到适合自己的会议论文。 EI(CA)与…

【数据分析实战】—预测宠物收养状况数据分析

文章目录 数据集数据集描述特征用途注意 宠物收养预测环境准备探索数据帧数据预处理机器学习数据预处理&#xff1a;模型培训和评估&#xff1a;合奏学习&#xff1a; 添加底部名片获取数据集吧&#xff01; 数据集 数据集描述 宠物收养数据集提供了对各种因素的全面调查&…

工程文档CAD转换必备!在 Java 中将 DWG 转换为 JPG

Aspose.CAD 是一个独立的类库&#xff0c;以加强Java应用程序处理和渲染CAD图纸&#xff0c;而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose AP…

众所周知,配置即代码≠基础设置即代码

​前段时间翻到几条留言&#xff0c;问&#xff1a; “配置即代码和基础设施即代码一样吗&#xff1f;” “配置即代码是什么&#xff1f;怎么都是基础设施即代码&#xff1f;” 我们都是知道&#xff0c;DevOp的快速发展&#xff0c;让服务器管理与配置的时间大大减少&#x…

AI入门系列:工具篇之ChatGPT的优秀的国内替代品

文章目录 一&#xff0c;智谱清言(ChatGLM)1&#xff0c;智谱清言简介2&#xff0c;[智谱清言地址&#xff0c;点我开始用吧](https://chatglm.cn/) 二&#xff0c;Kimi智能助手1&#xff0c;Kimi简介2&#xff0c;[Kimi地址&#xff0c;点我开始用吧](https://kimi.moonshot.c…

VPDBVE16E、VPDBVE32A、VPDBVE32B比例控制阀放大器

VPDBPC06A、VPDBPC06B、VPDBPC06C、VPDBPC06D、VPDBPC06E、VPDB08PC06100、VPDB08PC06200、VPDB08PC06315、VPDBVE16A、VPDBVE16B、VPDBVE16C、VPDBVE16D、VPDBVE16E、VPDBVE32A、VPDBVE32B、VPDBVE32C、VPDBVE32D、VPDBVE32E、VPDM2VE16A、VPDM2VE16B、VPDM2VE16C、VPDM2VE16D…

HTTP3(QUIC)详解

文章目录 一、HTTP3简述二、为什么不升级改造TCP而使用UDP&#xff1f;三、QUIC的实现四、HTTP3改进详解1. 快速连接建立(1-RTT初次建立&#xff0c;0-RTT恢复&#xff09;2. 无队头阻塞&#xff08;Head-of-Line Blocking&#xff09;重传机制HTTP/2 中的流HTTP/3 中的流 3. 移…