【汇编先导】-- 2

news2024/11/15 4:45:07

汇编先导

6. 寄存器

  • 存储数据:CPU > 内存 > 硬盘(固态、机械)

CPU还可分为:

  1. 32位CPU 8 16 32

  2. 64位CPU 8 16 32 64(增加了寻址能力)

  • 通用寄存器
# 32位的通用寄存器只有8个
# 可以在任意软件的底层看到
# 通用寄存器可以存储任何值

图1

存值的范围:0~FFFFFFFF

计算机如何向寄存器中存值呢?对于二进制来说,直接在对应的内存地址修改值即可。

  • mov指令
mov 存的地址 存的值
mov 存的地址1 存的地址2

mov指令:可以将数值写入寄存器;将寄存器中的数值写到寄存器

  • 计算机中不同的寄存器:
8个F		4个F		2个F 	# 1个F即4个1,1111
32168(L代表低8位,H代表高8位)
EAX		 AX		  AL
ECX		 CX		  CL
EDX		 DX		  DL
EBX		 BX		  BL
ESP 	 SP		  AH
ENP		 NP		  CH
ESI		 SI		  DH
EDI		 DI		  BH

除了上述这些通用寄存器之外,计算机中还存在许多其他寄存器,每一位都有其相应的特定功能!

7. 内存

寄存器相对来说比较小,故需用到内存来存放数据。

每个应用程序都有4GB的内存空间,但实际上这只是一种“空头支票”的说法,程序在真正运行时才会用到物理内存。

图2

1B = 8 bit

1 KB = 1024 B

1 MB = 1024 KB

1 GB = 1024 MB

所以4G的内存,最终计算为位可存储的最大容量约有三百多亿位的空间,即计算机中内存地址很多。

  • 内存地址

计算机中内存地址很多,空间很大,需要给每个空间分配一个地址,名字

图3

上图所示给内存起的编号,就是所谓的内存地址。–> 由32位8个16进制的值构成

这里的32位代表了寻址能力!FFFFFFFF

  • 内存如何存值?

数据宽度:byte word dword

地址位置:0xFFFFFFFF(注意并非任意地址都可以进行存值,只有程序申请过的内存地址才可以使用)

# 汇编如何向内存中写值
mov 数据宽度 内存地址, 1

mov byte ptr ds:[0x19FF70], 1

# 传递的值的大小一定要和数据宽度相等

此外,内存有多种写法。

ds:[0x19FF70+4]	# 内存地址偏移
ds:[eax]	# 寄存器
ds:[eax+4]	# 寄存器偏移

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

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

相关文章

【动态规划】08路径问题_下降路径最小和_C++(medium)

题目链接:leetcode下降路径最小和 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求通过 matrix 的下降路径 的 最小和 由题可得: 在下一行选择的元…

【职言】三年功能测试,一些测试工作的“吐槽”

以下为作者观点: 概述 作为功能测试,我也分享下日常工作中功能测试值得吐槽的问题,由于工作时间不长且未进过大厂,不了解大公司的工作模式和流程,所以自己的方法和理解都是基于中小公司的工作经验总结,应…

【Linux】Linux基础命令

写在前面: 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事…

flask 之上传与下载

from flask import Flask, render_template, request, send_from_directory, redirect, url_for import osapp Flask(__name__)# 上传文件存储路径 UPLOAD_FOLDER uploads app.config[UPLOAD_FOLDER] UPLOAD_FOLDERapp.route(/) def index():# 确保上传文件夹存在if not os.…

小程序中实现长按二维码图片识别

本文使用小程序提供的imae组件实现二维码的识别,在小程序官方文档中给出了该组件一个用于识别图片的属性show-menu-by-longpress。 属性说明:长按图片显示发送给朋友、收藏、保存图片、搜一搜、打开名片/前往群聊/打开小程序(若图片中包含对应…

Ubuntu-20.04.2 mate 上安装、配置、测试 qtcreator

一、从repo中安装 Ubuntu-20.04.2的repo中,qtcreator安装包挺全乎的,敲完 sudo apt install qtcreator 看一下同时安装和新软件包将被安装列表,压缩包252MB,解压安装后933MB,集大成的一包。 sudo apt install qtcrea…

【从服务器获取共享列表失败】【无法与设备或资源通信】解决方案!

【从服务器获取共享列表失败】背景: 某项目搭建有samba共享,使用一段时间后,不知何种原因,客户端链接共享时报:从服务器获取共享列表失败,无效的参数。 可参考解决方案A: 银河麒麟samba共享文…

【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 快慢指针 移动零 class…

分段函数1_分支结构 C语言xdoj112

题目描述: 编写程序计算分段函数f(x)的值。 输入格式&#xff1a;输入实数x的值 输出格式&#xff1a;输出f(x)的值&#xff0c;结果保留两位小数。 示例&#xff1a; 输入&#xff1a;4 输出&#xff1a;2.00 #include <stdio.h> #include <math.h>//分段函数1_分…

如何入门 GPT 并快速跟上当前的大语言模型 LLM 进展?

入门GPT 首先说第一个问题&#xff1a;如何入门GPT模型&#xff1f; 最直接的方式当然是去阅读官方的论文。GPT模型从2018年的GPT-1到现在的GPT-4已经迭代了好几个版本&#xff0c;通过官方团队发表的论文是最能准确理清其发展脉络的途径&#xff0c;其中包括GPT模型本身和一…

【3D数据读取】利用JAVA读取GLB(GLTF)文件数据

了解GLB和GLTF&#xff1a; GLB和GLTF是用于共享3D数据的标准化文件格式。GLB是GLTF的二进制格式&#xff0c;而GLTF基于JSON&#xff0c;一种基于文本的数据格式。 GLB文件&#xff1a; 由一个头部和一个二进制数据块组成。头部包含文件的元数据&#xff0c;例如文件版本、文件…

w3af安装(处理python2和3,pip2和3混乱的问题)

git clone --depth 1 https://github.com/andresriancho/w3af.git cd w3af ./w3af_gui报错 打开w3af_gui看一下 要求必须是python2 但我的/usr/bin/env中的python是python3 我们将/usr/bin/env中的python换成python2 which python2 #/usr/bin/python2rm /usr/bin/pythonsud…

网络安全-零信任安全

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 零信任的概念 零信任技术体系是一种安全架构和策略&#xff0c;其核心理念是不信任任何用户或设备&#…

科聪控制系统典型应用车型 —— 料箱机器人

料箱机器人即料箱AGV是一种智能化物流搬运设备&#xff0c;它可以代替人力完成出库入库和搬运工作&#xff0c;可根据出入库生产出货需求&#xff0c;将货物从起点运送到终点&#xff0c;自动柔性完成货到人货到点的操作。 提升仓储和物流效率的自动化利器 料箱机器人的投用能…

查询后矩阵的和

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 问题描述 给你一个整数 n 和一个下标从 0 开始的 二维数组 queries &#xff0c;其中 queries[i] [t…

【小白专用】php pdo sqlsrv 类,php连接sqlserver

1.找到自己版本&#xff0c;我的程序是64位的。 注意&#xff1a;ts与nts的区别&#xff0c;查看phpinfo信息&#xff0c;如下 <?phpecho phpinfo();?> 2.运行后&#xff0c;可以查看到如下数据&#xff1a; ① PHP 的版本是8.2.13&#xff1b; ② 属于线程安全版 ts…

gitcode邀请协作人员

项目首页 点击项目设置 点击项目成员设置--生成邀请链接 设置权限、是否需要审核、成员有效时间、邀请链接有效时间&#xff08;不设置时间就是永久有效&#xff09; 点击创建链接 点击复制分享给别人加入即可

CSharp中Blazor初体验

Blazor 是一个由微软开发的开源 Web 框架&#xff0c;用于构建富客户端 Web 应用程序使用 C# 语言和 .NET 平台。Blazor 允许开发人员使用 C# 语言来编写前端 Web 应用程序&#xff0c;而不需要像传统的 JavaScript 框架&#xff08;如 Angular、React 或 Vue.js&#xff09;那…

【SpringBoot快速入门】(1)SpringBoot的开发步骤、工程构建方法以及工程的快速启动详细讲解

目录 SpringBoot简介1 SpringBoot快速入门1.1 开发步骤1.1.1 创建新模块1.1.2 创建 Controller1.1.3 启动服务器1.1.4 进行测试 2 对比3 官网构建工程3.1 进入SpringBoot官网3.2 选择依赖3.3 生成工程 4 SpringBoot工程快速启动4.1 问题导入4.2 打包4.3 启动 之前我们已经学习的…

鸿蒙原生应用再添新丁!喜马拉雅入局鸿蒙

鸿蒙原生应用再添新丁&#xff01;喜马拉雅入局鸿蒙 来自 HarmonyOS 微博12月20日消息&#xff0c; #喜马拉雅正式完成鸿蒙原生应用版本适配#&#xff0c;作为音频业巨头的喜马拉雅 &#xff0c;将基于#HarmonyOS NEXT#创造更丰富、更智慧的全场景“声音宇宙”&#xff01;#鸿…