我正在尝试缩短这些说明:

add eax,byte +0xc
jmp eax

该指令是否等同于上述说明?

 jmp dword [eax+0xc]

===============>>#1 票数:3 已采纳

否。第一个将0x0c添加到EAX ,然后跳转地址与EAX匹配的内存。 注意,这应该简单地写为ADD EAX, 0X0C

第二个跳转到与在位置EAX+0x0c处找到的内容匹配的地址。

  ask by isoman translate from so

未解决问题?本站智能推荐:

1回复

使用nasm附加两个.asm文件

因为第一个扇区只有512个字节,而其余的代码很大,我想我需要一个单独的.lst文件汇编程序代码。 我不确定这是否称为绑定,但是当我使用NASM创建.img文件时,我想绑定此汇编程序文件。 第一 第二个 如何将第二个代码附加到第一个代码? 不是通过复制粘贴文本,而是将文档
2回复

关于Asm指令的INT vs CALL

我在网上搜索,但没有发现int和调用asm之间有任何区别。 call和int asm指令之间有什么区别? 它们都将某些功能称为“ int”,将系统功能称为“ call”,将用户功能称为。 但是在实模式下,它们相同吗? 我不太明白区别。 并且,int会调用在bios上定义的i
1回复

编译两个asm文件时出现“ nasm:错误:指定了多个输入文件”

我正在尝试使用一个包含两个asm文件的汇编语言来汇编一个小的初学者程序。 我可以制作一个文件,但是我想尝试调用另一个文件中的过程。 这是我的Makefile: 使用注释(1)下的代码时,一切正常,但是当我使用紧凑代码(2)时, make给我以下信息: 我知道组装步骤不正确,
1回复

x86 asm中NOT指令的简单示例

有人能解释一下x86汇编程序中的NOT指令到底是什么吗? 在我所知道的编程语言中,NOT用于检查特定状态是否为真(例如: if (!Isset($var))) 。 但是在Assembler中,运算符似乎做了其他事情,而我并不完全理解操作数的用途。 有人可以用一个简单的例子解释这
4回复

为什么mov指令直接使用ax而不是两个段寄存器?

我看到代码如下: 为什么我不能将其压缩为: 自使用累加器寄存器以来,第一种方式更快吗? 但这似乎并不直观,因为cs和ds是段寄存器 。 还是有一些我不知道的限制? 顺便说一句,我正在使用nasm。
1回复

ASM中的新框架

从理论上讲,当我执行呼叫时: 堆 好吧,情况是,为什么当我执行“ pop esi”时,我得到的是RET地址而不是EBP?
1回复

ASM HelloWorld程序

我正在尝试编写我的第一个asm程序。 到目前为止,这是我程序的代码; 分段故障。
1回复

我在ASM中的strdup

您好我学校的每个机构,我都必须在ASM [intel] [NASM]中执行自己的strdup功能。 我有一个奇怪的问题... 在我的代码中,如果我call _malloc 我的代码段错误出现此错误: 我不明白为什么,因为在.text部分中,我说了extern _mall
1回复

Eclipse中的ASM文件

我想在Eclipse中编辑ASM文件,但是我不确定该怎么做或我实际需要什么Eclipse软件包。 如果有人能指出正确的方向,我将不胜感激。
1回复

NASM中的ASM错误

我对这段代码有疑问: 它给我一个错误,说: boot.asm:6:错误:操作数1之后需要逗号 我不知道是什么原因造成的。 我刚开始尝试进行操作系统开发,所以不要指望我那么多。