【问题标题】:how to inc a pointer to variable? ASSEMBLER如何增加指向变量的指针?汇编器
【发布时间】:2014-04-02 09:17:33
【问题描述】:

如何添加变量指针? 我想将指针移动 4 位。 我有这个:(BCD 应该保持 32 位)

section .data  
BCD:  DQ 0

mov dword [BCD], 0
ADD BCD, 4

编译时出现此错误:

错误:操作码和操作数的组合无效 ** 英特尔处理器 有什么问题?

谢谢

【问题讨论】:

  • 不,哪个汇编器? (masm, nasm, tasm, fasm,...)
  • x86?在这种情况下,BCD 不是寄存器
  • BCD 是一个标签,所以它的地址由链接器给出。您无法更改 BCD 在运行时所指的内容。您只能在它所指的位置更改内容。
  • x86 是的。而且我知道,我不想使用寄存器,这就是我将其定义为变量的原因。 (我将其他寄存器用于其他目的)
  • @Michael,我该怎么做?

标签: pointers assembly x86 increment intel


【解决方案1】:

如果您想更改地址,您必须将地址放入寄存器中:

mov ebx,BCD       ; put the address of BCD in ebx
mov dword [ebx],0 ; store 0 in the first DWORD at BCD
add ebx,4         ; Move the pointer 4 bytes ahead

【讨论】:

  • 如果你想移动 4 个字节(不是位),你也可以这样做 mov dword [BCD+4],0跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2015-03-05
  • 2010-11-11
  • 2011-08-04
  • 2013-02-23
  • 2023-03-23
  • 2011-04-09
相关资源
最近更新 更多