问题标签 [machine-instruction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 如何读取汇编指令的方向位和源或目标
所以我正在处理一些代码(对于 x86),我需要在其中获取指令的源点或目标点。为此,我需要指示 ModRM 或 REG 是目标还是源的方向位。我还需要能够处理即时值。到目前为止,我可以处理指令,它是主要的操作码(连同前缀)。我想知道最简单的方法是什么,或者是否有人可以指出一些确定目标/源的好代码示例(例如寄存器、内存地址或立即操作数)。我见过很多解码器,但其中大多数都是专门为一件事而构建的,而包含很多功能的解码器非常复杂。
assembly - MIPS 移位指令
在 MIPS 中的一条sll
指令中,它只能占用 5 位。如果班次数量超过 31,班次将如何工作?我们如何用 5 位来表示它?
谢谢
assembly - 汇编语言符号操作码
我对将十六进制机器指令转换为符号操作码感到很困惑。我在本节中有一些复习问题:
我不知道如何处理这些问题,而且我似乎无法理解这些概念。有人可以用更简单的方式向我解释吗?
c - 用户堆栈的单指令推送/弹出而不是辅助函数调用?
在处理器堆栈上 push mov 和 pop 等是单条指令。
编译源代码时,编译器生成单机指令版本,但在运行时,假设堆栈是......以及常规堆栈容器,在运行时访问存储在堆栈上的值需要函数调用,这会转化为大量机器码。
是否可以为动态运行时对象实现相同级别的效率,而不是使用比单个机器指令长得多的 setter 和 getter 成员函数?
我的想法是使用标记指针,但我不知道如何在运行时将其值直接推入内存位置或从内存位置推入而不诉诸函数调用。
内联汇编可能是一种选择,如果可能的话,我想避免这种选择。但我想我仍然必须将它放在函数体中,这样它就不会是一条指令。
assembly - 每条机器语言指令执行需要多长时间?
设置、读取、移动和比较等操作是否都需要相同的时间来执行?
如果没有:有什么办法可以查出多长时间。
我的意思是否有一些名称,某些特定类型的 cpu 执行不同汇编语言指令(移动、读取等)的速度?
android - 找出eclipse中一条指令所占用的指令周期数 - Android
如何找出典型的 wifi 扫描在 android 设备中需要多少指令周期?当然它会因设备而异,但有没有办法找出来?我正在使用日食。指令是:
其中 wifiManager 是 WifiManager 类的一个实例。
我还想知道执行扫描(即执行所述指令)所花费的时间(以毫秒为单位)。我发现它使用
但在开发者网站上提到:“这种方法不应该用于测量超时或其他经过的时间测量,因为更改系统时间会影响结果。” 这是什么意思??
任何帮助,将不胜感激。谢谢你。
assembly - 实际的机器代码在各个方面是什么样的?
关于机器代码实际上是什么似乎有很多意见。我听说有人说它是汇编、二进制或十六进制。
说机器代码本质上是特定处理器的一组指令是否正确?如果是这样,我想这些可以用二进制或十六进制表示法或汇编来表示。但是未翻译的“实际”机器代码是什么样的?是基于架构的字长吗?还是所有意图和目的的十六进制都是默认表示?
坐在硬盘上时会是什么样子?坐在登记簿上时是什么样子的?当它被处理时,它只是在那一点上的一组电压变化吗?
assembly - 为什么汇编指令可以在“lea”指令中包含乘法?
我正在处理应用程序的一个非常低级别的部分,其中性能至关重要。
在调查生成的程序集时,我注意到以下说明:
我习惯于在使用内存引用时看到加法(例如 [edx+4]),但这是我第一次看到乘法。
- 这是否意味着 x86 处理器可以在 lea 指令中执行简单的乘法运算?
- 这种乘法是否会影响执行指令所需的周期数?
- 乘法是否仅限于 2 的幂(我假设是这种情况)?
提前致谢。
c - syscall 是 x86_64 上的指令吗?
我想检查在 glibc 中执行系统调用的代码。我发现了这样的东西。
现在我的问题是系统调用(在cmpq
指令之前)是否是指令?其次,如果是指令,ENTRY(syscall)是什么意思?ENTRY(我不知道 ENTRY 是什么)和指令的名称相同?其次,什么是L(pseudo_end)?
machine-instruction - 报告程序执行期间 IP 更改值的次数
是否可以编写软件(针对某些特定的编程语言、平台等)来告知用户在程序执行期间相关机器级指令指针更改值的确切次数?这样的软件是否已经可用?