当前位置: 首页 > news >正文

一些寄存器相关的知识

考试要求:

只需关注x86汇编语言

题目给出的某段简单程序的C语言,汇编语言,机械语言表示,能结合c语言看懂汇编语言的关键语句

汇编语言机器语言一一对应,结合汇编语言分析机器语言指令的格式,寻址方式

不会考:将c语言人工翻译成汇编语言或机器语言

ARM和MIPS不考

x86架构cpu利有哪些寄存器

每个寄存器都是32bit,E代表Extended X代表未知

EAX

可以拆分 EAX 并只使用最低的16bit;AX也可以拆分为AHAL

EBX

同理

ECX

同理

EDX

同理

上面这四个寄存器是通用寄存器,什么都可以存


I代表Index,S代表source,D代表destination

ESI

EDI

这两个是变址寄存器,用于处理线性表,字符串


BP代表Base Pointer; SP代表Stack Pointer

EBP

ESP

堆栈寄存器,用于实现函数的调用

但是变址寄存器和堆栈寄存器就不可拆分了,必须使用32bit

以mov指令为例

mov 目的操作数d,源操作数s

如果mov后方的值是E开头的,代表寄存器

如果是直接的数字,那就是一个立即数

如果是 byte ptr [af965h] 那就代表内存地址为[af965h]的字节

一些例子

mov eax ,dword ptr[ebx] #将 ebx所指地址的32位复制到eax

mov dword ptr[ebx] ,eax #将eax的内容,复制到ebx所指的主存地址的32bit

mov eax, byte ptr [ebx] #将ebx所指的8位复制到eax

mov eax ,[ebx] #若未指明主存读写长度,默认32bit

mov [af955h],eax#将eax的值复制到af955h所指的地址(如果没指名长度就是32bit

mov eax,dword ptr [ebx+8] #将ebx+8 所指的地址的32位复制到eax

mov eax,dword ptr [af996-12h] #将af996-12所指的地址的32位复制到eax

http://www.wxhsa.cn/company.asp?id=5686

相关文章:

  • Redis常用命令
  • 力扣42题 接雨水,力扣84题 柱状图中最大的矩形,力扣739题 每日温度
  • 使用HTTPS 服务在浏览器端启用摄像头的方式解析
  • 5分钟SAE极速部署Dify,高效开发AI智能体应用
  • .NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)
  • 事件轮循机制EventLoop
  • ruoyi-vue初步接触
  • AT_arc180_c [ARC180C] Subsequence and Prefix Sum
  • 如何快速看懂「祖传项目」?Qoder 强势推出新利器
  • 测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
  • 大模型与知识图谱驱动测试公开课
  • 上位机项目展示
  • 美化自己的Github主页-Github profile页面仓库使用指南
  • 充气泵方案:充气泵用数字传感器有什么好处?
  • windows系统下anaconda的安装和使用
  • Lock分析:systemstate分析row cache lock
  • mysql查看连接数,从查询到优化
  • 遗传算法与偏最小二乘结合的化学光谱变量选择方法
  • 云剪贴板
  • 读书笔记:Oracle数据库的水位线秘密:为什么空表查询还很慢?
  • AI测试平台自动遍历:低代码也能玩转全链路测试
  • 0代码5分钟一键生成Springboot+Vue后台管理系统
  • nvm与node.js的安装指南
  • 故障处理:2分钟处理Oracle RAC中OCR磁盘组丢失磁盘的故障
  • Saga分布式事务框架执行逻辑
  • 在Android开发中实现两个Intent跳转及数据交换的方法
  • ARC188 做题记
  • AT_arc145_d [ARC145D] Non Arithmetic Progression Set
  • Microsoft AI Genius | 第三集实战课正式开启:用 Copilot Studio 定制你的专属智能体
  • C# 多线程编程核心要点:不只是Thread和lock