计算机指令考前小记

news2024/10/6 16:20:56


RTL寄存器传送语言:简化对指令功能的说明

  • R[r]:存储器r的内容
  • M[addr]:存储单元addr的内容
  • M[R[r]]:寄存器r的内容所指的存储单元的内容

汇编指令movw 4(%ebp),%ax的RTL语言为:R[ax] <- M[R[ebp]+4]

  • 将寄存器EBP的内容和4相加得到的地址对应的两个连续存储单元中的内容送到寄存器AX中

汇编助记符:汇编语言中的英文单词或其缩写、标号、变量名称
汇编程序:将汇编指令翻译为机器指令
反汇编程序:机器指令翻译为汇编指令
机器级语言:机器语言和汇编语言
机器级程序:用机器指令表示的机器语言程序和由汇编指令表示的汇编语言程序

指令集体系结构ISA

机器语言级虚拟机:将物理上的计算机硬件抽象成一个逻辑上的虚拟计算机。
GCC:GNU C语言编译器
GCC生成的很多汇编指令助记符结尾有lw等长度后缀。l表示操作数为双字32位,w表示操作数为单字16位。
在IA-32中,大多数操作数都是32位,所以通常省略后缀l
AT&T:

  • b表示操作数长度为字节8位,w表示字16位,l表示双字32位,q表示四字64位。
  • 寄存器操作格式:%+寄存器名
  • 存储器操作数形式:偏移量(基址寄存器,变址寄存器,比例因子)

GCC生成的汇编代码中的指令助记符大部分都有长度后缀。
微软MASM工具生成的Intel汇编格式不用长度后缀,而是通过寄存器名称和长度指示符PTR区分。

寄存器组织

IA-32指令中操作数有三类:立即数、寄存器操作数、存储器操作数。
image.png
ESP是栈指针寄存器
EBP是基址指针寄存器
EFLAGS标志寄存器:记录机器的状态和控制信息
条件标志存放运行的状态信息,由硬件自动设定,也被称条件码:

  • OF:溢出标志
  • SF:符号标志
  • ZF:零标志
  • CF:进/借位标志

OF和SF对无符号数运算没有意义,CF对有符号数运算没有意义。
控制标志由软件设定,用于中断响应、串操作、单步控制:

  • DF:方向标志
  • IF:中断允许标志
  • TF:陷阱标志

寻址方式

立即寻址:指令中直接给出操作数
寄存器寻址:指令中给出操作数所存放的寄存器的编号
其他寻址方式下的操作数都在存储单元中,称为存储器操作数
image.png
比例变址:变址值等于变址寄存器内容乘以比例系数S
非比例变址:相当于比例系数为1的比例变址。变址值就是变址寄存器的内容
寻址方式中,最适合按下标顺序访问一维数组元素的是:变址寻址。
课本上的比较粗糙,需要结合考题。

还是得多做几道题,靠做题来学

Movw (%ax), %cx,源操作数寻址方式为寄存器间接寻址;RTL语言:R[CX]←M[R[AX]]
movw 4(%ax, %dx), %cx,源操作数寻址方式为基址+变址+位移寻址;RTL语言:R[CX]←M[R[AX]+R[DX]+4]
movw (%ax, %dx, 3), %cx,源操作数寻址方式为基址+比例变址寻址;RTL语言:R[CX]←M[R[AX]+R[dX]*3]
movw 0xC(%dx, %ax, 2), %cx ,源操作数寻址方式为基址+比例变址+位移寻址
movw ( , %ax, 4), %cx,源操作数寻址方式为比例变址寻址
movw (%ax, %dx), %cx,源操作数寻址方式为基址+变址寻址

传送指令

这一块目前就发现就这一个需要分辨的问题:mov和leal的区别
mov:一般的数据传送指令

  • movl 8(%ebp),%edxR[edx] <- M[R[ebp]+8]

leal:加载有效地址

  • leal (%edx,%eax),%eaxR[eax] <- R[edx]+R[eax]

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

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

相关文章

【C++】【Opencv】minMaxLoc()函数详解和示例

minMaxLoc&#xff08;&#xff09;函数 是 OpenCV 库中的一个函数&#xff0c;用于找到一个多维数组中的最小值和最大值&#xff0c;以及它们的位置。这个函数对于处理图像和数组非常有用。本文通过参数和示例详解&#xff0c;帮助大家理解和使用该函数。 参数详解 函数原型…

CSS特效007:绘制3D文字,类似PS效果

css实战中&#xff0c;怎么绘制3D文字呢&#xff1f; 实际上理论很简单&#xff0c;使用text-shadow&#xff0c;根据需要调整阴影的颜色、大小、偏移量等参数&#xff0c;以达到你想要的立体效果。下面是一个简单的示例。关键点就是知道如何设置text-shadow。 效果图 源代码 …

Scikit-LLM:一款大模型与 scikit-learn 完美结合的工具!

Scikit-LLM 是文本分析领域的一项重大变革&#xff0c;它将像 ChatGPT 这样强大的语言模型与 scikit-learn 相结合&#xff0c;提供了一套无与伦比的工具包&#xff0c;用于理解和分析文本。 有了 scikit-LLM&#xff0c;你可以发现各种类型的文本数据中的隐藏模式、情感和上下…

python类中的抽象函数,以及继承后子类的比较

抽象函数的定义方式 导包 from abs import ABCMeta,abstractmethod声明抽象类 class Area(object):abstractmethoddef area(self):pass在抽象类中&#xff0c;不用写构造函数&#xff0c;抽象类不能进行实例化 继承抽象类的子类必须将抽象类中的函数进行重写&#xff08;不重…

Mathtype公式自动转Word自带公式

Mathtype公式自动转Word自带公式 前言/word技巧探索过程参考资料&#xff08;有效与无效&#xff09;全自动方案/代码/教程 前言/word技巧 word公式 用ALT号可以输入简单latex显示公式&#xff1b;复杂度&#xff0c;需要引入latex包的不行&#xff1b;显示不出来的话按一下en…

3分钟带你了解前端缓存-HTTP缓存

前情提要 前端缓存分为下面三大类&#xff0c;本文主要讲解HTTP缓存~ 1. HTTP缓存 强缓存协商缓存 2. 浏览器缓存 本地小容量缓存本地大容量缓存 3. 应用程序缓存 HTML5应用程序缓存 缓存作用 减少了冗余的数据传输减少服务器的负担提高了网站的性能加快加载网页速度 …

初阶JavaEE(17)Linux 基本使用和 web 程序部署

接上次博客&#xff1a;初阶JavaEE&#xff08;16&#xff09;博客系统&#xff08;Markdown编辑器介绍、博客系统功能、博客系统编写&#xff1a;博客列表页 、博客详情页、实现登录、实现强制登录、显示用户信息、退出登录、发布博客&#xff09;-CSDN博客 目录 Linux 基本…

Unity中Shader雾效的实现方法一

文章目录 前言一、在片元着色器中使用如下公式计算最终的颜色 lerp(雾效颜色&#xff0c;物体颜色&#xff0c;雾效混合因子)1、获取雾效颜色2、物体的颜色一般通过纹理采样得到&#xff0c;此处用 1 代替测试3、获取 雾效混合因子&#xff08;由 雾的距离 和 雾的浓度决定&am…

生成式AI - Knowledge Graph Prompting:一种基于大模型的多文档问答方法

大型语言模型&#xff08;LLM&#xff09;已经彻底改变了自然语言处理&#xff08;NLP&#xff09;任务。它们改变了我们与文本数据交互和处理的方式。这些强大的AI模型&#xff0c;如OpenAI的GPT-4&#xff0c;改变了理解、生成人类类似文本的方式&#xff0c;导致各种行业出现…

mysql主从复制-使用心得

文章目录 前言环境配置主库从库 STATEMENTbinloggtidlog-errorDistSQL总结 前言 mysql 主从复制使用感受&#xff0c;遇到一些问题的整理&#xff0c;也总结了一些排查问题技巧。 环境 mysql5.7 配置 附&#xff1a;千万级数据快速插入配置可以参考&#xff1a;mysql千万数…

把字符串转换为整数函数atoi

今天我们来认识一个函数&#xff0c;叫atoi&#xff0c;我们开始研究它吧&#xff01; 1.认识atoi 1.函数功能&#xff1a;将字符串转换为整数 只能将整数字符串转换为整数&#xff0c;不能转换字符字符串 2.头文件&#xff1a;#include<stdlib.h> 3.使用格式&#xff1a…

从0到0.01入门React | 001.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

sqli-labs关卡12(基于post提交的双引号闭合的字符型注入)通关思路

文章目录 前言一、回顾第十一关知识点二、靶场第十二关通关思路1、判断注入点2、爆显位个数3、爆显位位置4、爆数据库名5、爆数据库表名6、爆数据库列名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的…

数据代理机制

目录 前言 Object.defineProperty() 语法 第三个参数配置项 数据代理机制的实现 MVVM分层思想 前言 本文介绍Vue的数据代理机制&#xff0c;也就是通过vue实例对象来代理data对象中的属性的操作 Object.defineProperty() 在介绍vue的数据代理机制前&#xff0c;我们需要…

Java --- JVM的执行引擎

目录 一、执行引擎概述 1.1、执行引擎的工作过程 二、Java代码编译和执行的过程 三、解释器 3.1、解释器工作机制 3.2、解释器分类 3.3、解释器现状 四、JIT编译器 五、热点代码及探测方式 六、方法调用计数器 6.1、热点衰减 七、回边计数器 八、HotSpot VM设置程序…

MyBatis——查询

1 查询所有结果 MyBatis完成操作需要三步&#xff1a;编写接口方法->编写SQL->执行方法 2 查看详情 参数占位符&#xff1a; #{}&#xff1a;会将其替换为 &#xff1f; &#xff0c;为了防止SQL注入 ${}&#xff1a; 进行sql拼接&#xff0c;会存在SQL注入问题 使用时…

ChatGPT 4 分析天猫双十一历年成交额趋势情况

收集历年的双十一成交额数据如下: 年份成交额:亿元20090.520109.362011

阿里云国际站:全球加速GA

文章目录 一、前言 二、阿里云全球加速的概念 三、阿里云全球加速的功能优势 四、阿里云全球加速的原理 五、阿里云全球加速的应用场景 六、写在最后 一、前言 随着互联网的快速发展&#xff0c;网站速度已经成为了用户访问体验的一个重要指标。阿里云加速作为一种新的技…

Linux 之 MakeFile

MakeFile 前言MakeFile基本介绍MakeFile介绍MakeFile文件命名Makefile编写规则MakeFile的执行步骤 MakeFilemakefile组成元素makefile显示规则makefile隐晦规则伪目标(标签与文件冲突问题) makefile变量定义makefile中的运算符和特殊变量 makefile文件指示makefile注释 makefil…

海康Visionmaster-Qt+VS 二次开发环境如何配置?

1 新建 Qt 工程&#xff0c;添加 Qt 模块 Core、GUI、Active Qt 和 Container Widgets 2 拷贝 DLL:VM\VisionMaster4.0.0\Development\V4.0.0\ComControl\bin\x64 下的所有拷贝到项目工程输出目录下&#xff0c;如下图所示&#xff0c;项目的输出路径是 Dll 文件夹。 3 第一…