“mov (%ebx,%eax,4),%eax”如何工作? [复制]

2024-05-11

一直在从事装配作业,并且在很大程度上我对装配非常了解。或者至少对于这项任务来说足够好。但这个 mov 的声明让我很困惑。如果有人能解释这个 mov 语句如何操作寄存器值,我将非常感激。

mov (%ebx,%eax,4),%eax

附:我无法通过基本搜索找到这种特定类型的 mov 语句,因此,如果我错过了它并重新提出问题,我深表歉意。


AT&T汇编中完整的内存寻址方式格式为:

offset(base, index, width)

所以对于你的情况:

offset = 0
base = ebx
index = eax
width = 4

这意味着该指令类似于:

eax = *(uint32_t *)((uint8_t *)ebx + eax * 4 + 0)

在类似 C 的伪代码中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“mov (%ebx,%eax,4),%eax”如何工作? [复制] 的相关文章

  • 是否可以在VM内使用VMX CPU指令?

    VM guest 内部的进程是否有可能使用 VMX AMD V VT x CPU 指令 然后由外部 VMM 处理而不是直接在 CPU 上处理 Edit 假设外部VM使用VMX本身来管理其虚拟客户机 即它在Ring 1中运行 如果可能的话 是
  • 在 x86 程序集中存储大量布尔值的最佳方法是什么?

    最近我一直在处理充满布尔值的大型数组 目前 我将它们存储在 bss部分有一个 space指令 它允许我创建字节数组 但是 由于我只需要存储布尔值 因此我希望从数组中逐位读取和写入数据 目前 我能想到的最好方法是有一个 space指令所需存储
  • LC3 LEA指令和存储的值

    我对这个问题感到困惑 指令后寄存器0中存储的值是多少 LEA R0 A 被处决了吗 为什么答案是x370C 我认为应该将A的地址加载到R0中 如果是这样我们怎么知道地址 有人可以帮忙吗 非常感谢 ORIG X3700 LEA R0 A LD
  • 何时可以重用avx指令中的源寄存器

    在 avx 指令中用作源的寄存器何时可以在指令开始处理后重用 例如 我想使用vgatherdps该指令消耗两个 ymm 寄存器 其中之一是位移索引 我意识到vgatherdps由于数据的局部性较差 因此需要花费大量时间来收集 位移索引寄存器
  • movzbl(%rdi, %rcx, 1), %ecx 在 x86-64 汇编中意味着什么?

    我想我明白 movzbl rdi rcx 1 ecx 意思是 将零扩展字节移至长整型 并表示将 ecx 扩展为 32 位 但我不完全确定语法 rdi rcx 1 指的是什么 我在某处看到该语法指的是 Base Index Scale 但我找
  • 无法识别的仿真模式:MinGW32 上的 elf_i386

    我正在尝试制作内核 但无法链接C与程序集一起输出 这ld 我收到错误 无法识别的仿真模式 elf i386 我正在使用 Windows 10 专业版以及 MinGW32 和 MSYS 我正在使用的代码 link ld link ld OUT
  • CISC 机器 - 它们不只是将复杂指令转换为 RISC 吗?

    也许我在架构上存在误解 但如果机器有 比如说 乘法指令 该指令是否未转换为更小的指令 或者过于复杂以至于最终与等效的 RISC 指令具有相同的速度 乘法是一个不好的例子 它在两种体系结构中都是一条指令 将上面的 乘法 替换为 CISC 中更
  • 将 C 代码转换为 x86-64 汇编

    我正在尝试将 C 代码转换为 x86 64 我的目标是反转链表 传入的两个参数是 head ptr 和 offset to 以获取指针字段的地址 即指向列表中下一个节点的指针 据我了解 head ptr是通过rdi寄存器传入的 offset
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 一个地址有多少字节? [复制]

    这个问题在这里已经有答案了 在64位机器上 我们知道一个地址是8个字节 然而 我并不完全清楚一个地址中有多少字节的信息 虚拟内存中的每个字节都有一个地址吗 或者内存中的每 64 位都有一个地址 还是取决于架构 如果这取决于架构 那么我应该如
  • 无法在 64 位 Linux 上从汇编 (yasm) 代码调用 C 标准库函数

    我有一个函数foo以汇编语言编写 并在 Linux Ubuntu 64 位上使用 yasm 和 GCC 编译 它只是使用以下命令将消息打印到标准输出puts 如下所示 bits 64 extern puts global foo secti
  • 在 x86 程序集中打印寄存器值的简单方法

    我需要在 8086 Assembly 中编写一个程序 接收来自用户的数据 进行一些数学计算并在屏幕上打印答案 我已经编写了程序的所有部分并且一切正常 但我不知道如何打印号码显示到屏幕上 在我所有计算结束时 答案是 AX 它被视为无符号 16
  • 64 位 Windows 汇编器

    我想对 64 位 Windows 程序集进行编程 最好使用 NASM 我在 google 上查了一下 但似乎找不到 64 位 Windows 编译器 有些网站提到了ml64 但它似乎不再包含在VC 中 我尝试过 32 位程序集 但显然它在我
  • 如何计算汇编中的内存位移?

    我一直在研究 yasm 汇编语言 并生成了一个包含以下内容的列表文件 我需要帮助理解第一列中的内存位移是如何计算的 提前致谢 1 line 1 1 memory asm 2 section data 3 00000000 04000000
  • 为什么前向引用 ADR 指令在 Thumb 代码中以偶数偏移进行汇编?

    To bx对于 Thumb 函数 需要设置地址的最低有效位 GNU 作为文档states https sourceware org binutils docs as ARM Opcodes html当地址是从一个生成时这是如何工作的adr伪
  • 为什么 LED 保持亮起而不是闪烁?

    这是使用 pic16f676 中的 TIMER0 中断使 LED 闪烁的 MPASM 代码 端口 A 的引脚 0 RA0 未切换至关闭位置 请帮忙 我是图片组装的新手 我想掌握图片 有没有高手帮我学习一下 我需要以 1 秒的间隔眨眼 代码是
  • 如何将 asm 着色器编译为 fxo 文件?

    我有一个已编译的 fxo 着色器 我正在尝试对其进行稍微编辑 仅调整一些常量 使用 fxdis https code google com archive p fxdis d3d1x https code google com archiv
  • 处理器在操作码​​和数据之间有何不同? [复制]

    这个问题在这里已经有答案了 我正在尝试编写一个反汇编程序 我想知道处理器如何区分操作码和数据字节 例如 这是 Hello World 的字节表示 0x48 0x65 0x6c 0x6c 0x6f 0x20 0x57 0x6f 0x72 0x
  • 微软怎么能说WinAPI中一个字的大小是16位呢?

    我刚刚开始学习WinAPI 在MSDN中 对WORD数据类型提供了以下解释 WORD16 位无符号整数 范围是十进制 0 到 65535 该类型在 WinDef h 中声明如下 typedef 无符号短 WORD 很简单 而且它与我一直在使
  • 跳转目的地太远:3 个字节

    我的循环有问题 其中包含的代码很长并且给了我错误jump destination too far by 3 byte s 当我删除时 mov edx offset str1 call writestring 这部分位于主过程下方 它不会给出

随机推荐

  • Django:如何判断 post_save 信号是否在新对象上触发?

    我需要对 Django 中新创建的对象进行一些后台后处理 此后处理只能在新对象上运行 而不是在刚刚更新的对象上运行 我知道在 pre save 中我可以检查该对象是否有 id 如果没有则它是一个新对象 但问题是在后处理中我需要访问id 以便
  • 如何确定 SQLite 索引是否唯一? (使用 SQL)

    我想通过 SQL 查询找出索引是否是唯一的 我正在使用 SQLite 3 我尝试了两种方法 SELECT FROM sqlite master WHERE name sqlite autoindex user 1 这将返回有关索引的信息 t
  • 在 Go 中生成随机、固定长度的字节数组

    我有一个字节数组 固定长度为4 token make byte 4 我需要将每个字节设置为随机字节 我怎样才能以最有效的方式做到这一点 这math rand就我而言 方法不提供随机字节函数 也许有一种内置的方法 或者我应该生成一个随机字符串
  • 失败 INSTALL_FAILED_MEDIA_UNAVAILABLE

    我已经为 Visual Studio 2010 安装了 JDK Android SDK 和 Mono Android 我创建了一个空的解决方案 并且使用 Android 2 3 3 启动并运行了模拟器 到目前为止一切顺利 当我尝试将应用程序
  • C# 计算元音

    我正在学习 C 编程 并且正在尝试计算元音 我让程序循环遍历句子 但它不返回元音计数 而是仅返回字符串的长度 任何帮助将不胜感激 static void Main int total 0 Console WriteLine Enter a
  • 保护 JSF 应用程序的安全

    我的一位自由职业者朋友邀请我加入他的 JSF 2 0 项目 我正在慢慢加快速度并将各个部分整合在一起 来自 Windows Forms NET 世界 至少可以说 我还有很多东西需要学习 我主要担心的是对于如何保护 JSF 应用程序缺乏明显的
  • 聚合物嵌套应用程序路由未正确映射

    我正在努力找到一些正确的基本路线 我正在使用 Polymer 1 5 0 但在使用嵌套路由时遇到问题 我正在使用应用程序路由0 9 2 As 这篇文章建议 https www polymer project org 1 0 blog rou
  • 如何在正则表达式之后打印单词但不打印相似的单词?

    我想要一个 awk 或 sed 命令来打印正则表达式之后的单词 我想找到一个单词后面的单词 但不是看起来相似的单词 该文件如下所示 somethingsomething X Windows Icon xournal somethingsom
  • “npm”不被识别为内部或外部命令、可操作程序或批处理文件

    我对 Nodejs 完全陌生 我正在尝试让 nodejs 在我的 Windows 2008 机器上工作 以便安装 Karma 我将使用它来 TDDing 我的 AngularJs 代码 到目前为止我已经完成了以下步骤 使用 Chocolat
  • 是否有用于 AES 的纯 Perl 模块?

    是否有用于 AES 的纯 Perl 模块 地穴 Rijndael PP http search cpan org dist Crypt Rijndael PP Rijndael 是底层算法AES https secure wikimedia
  • 如何在 Scala 中编写 Pig UDF

    我正在尝试在 Scala 中编写 Pig UDF 使用 Eclipse 我已将 pig jar 添加为 java 构建路径中的库 这似乎解决了以下 2 个导入问题 导入 org apache pig EvalFunc 导入 org apac
  • Docker:通过 CLI 使用 --password 是不安全的。使用--密码-stdin

    当我在持续集成 CI 过程中登录注册表时 出现以下警告 WARNING Using password via the CLI is insecure Use password stdin 我应该更换吗 password with passw
  • 在布局中添加空格

    我正在尝试在 android 中创建空行 这就是我一直在做的事情 android layout width fill parent android layout height wrap content android text n n 我想
  • 从 exe 文件中获取汇编级代码?

    我当时正在做linux汇编编程 在过去的几天里我已经转而学习windows汇编编程 我在用ml作为我的汇编器和golink作为我的链接器 我有我的汇编代码并已获得我的exe从中 现在我需要取回它的十六进制 xff xab x55等等 在li
  • 删除 Swift 3 中 Core Data 实体中的所有数据

    有没有办法批量删除核心数据中所有实体中存储的所有数据 我在某处读到 在 iOS 9 或 10 中 苹果引入了一种批量删除的方法 但我似乎找不到任何关于它的好信息 最终 我只需要一个遍历实体并删除其中所有数据的函数 看起来它应该很简单 但事实
  • 如何在 Debian 上编译 DOS 程序?

    在我的汇编语言课程中 我们使用 DPMI 编写 DOS 程序 不幸的是 我无法一直使用 32 位 Windows 机器 我在我使用的几乎每台计算机上都安装了 Debian 虚拟机 我已经安装了 DOSBox 和 DOSEMU 有什么办法可以
  • 如何使用python正则表达式查找并替换句子中第n次出现的单词?

    仅使用python正则表达式 如何查找并替换句子中第n次出现的单词 例如 str cat goose mouse horse pig cat cow new str re sub r cat r Bull str new str re su
  • 为什么 cross_val_predict 比 KNeighborsClassifier 的拟合慢得多?

    在 Jupyter 笔记本上本地运行并使用 MNIST 数据集 28k 条目 每个图像 28x28 像素 以下内容为27秒 from sklearn neighbors import KNeighborsClassifier knn clf
  • 如何保护我的网站免遭 HTTrack 或其他软件的翻录?

    我最近获得了批准的网站模板主题森林 http themeforest net 我的网站流量过多 并注意到我在 Themeforest 上的演示被 HTTrack 等某些软件破坏 如果这种情况持续下去 该产品的销量最终可能会下降 那么 有什么
  • “mov (%ebx,%eax,4),%eax”如何工作? [复制]

    这个问题在这里已经有答案了 一直在从事装配作业 并且在很大程度上我对装配非常了解 或者至少对于这项任务来说足够好 但这个 mov 的声明让我很困惑 如果有人能解释这个 mov 语句如何操作寄存器值 我将非常感激 mov ebx eax 4