Assembly 汇编代码的含义

Assembly 汇编代码的含义,assembly,x86,Assembly,X86,ss是堆栈段 ebp是堆栈的基本指针 FFFFF BE0是跳转地址 ebp+FFFFF BE0它指向堆栈内存位置的点 edx:TRG+30;迷茫 我认为它将数据(edx:TRG+30)移动到位置(ebp+fffff be0)代码正在将一个4字节的整数从寄存器edx加载到一个名为TRG的数组/结构中 确切地说,它正在从该结构写入字节0x30..0x33 但调试器错误地标记了指令。应该是: mov ss:ebp+FFFFFBE0,edx : TRG+30 edx只是一个寄存器,它的内容来

ss是堆栈段 ebp是堆栈的基本指针

FFFFF BE0是跳转地址 ebp+FFFFF BE0它指向堆栈内存位置的点

edx:TRG+30
;迷茫


我认为它将数据(edx:TRG+30)移动到位置(ebp+fffff be0)

代码正在将一个4字节的整数从寄存器
edx
加载到一个名为
TRG
的数组/结构中
确切地说,它正在从该结构写入字节0x30..0x33

但调试器错误地标记了指令。应该是:

mov     ss:ebp+FFFFFBE0,edx : TRG+30 
edx
只是一个寄存器,它的内容来自所示语句之前的一些代码。
ebp
是基本指针,通常指向例程中局部变量的存储。
:TRG+30
是调试器插入的注释;这不是说明的一部分


解释程序集时,决不能孤立地查看指令,必须将其视为指令序列的一部分

您正在运行哪个程序向您显示此输出?我假设
:TRG+30
是一条注释,可能会让您知道内存操作数指向何处。这不是指令的一部分,请注意,
mov[ss:ebp+0xFFFFFBE0],edx
实际上是
mov[ss:ebp-0x00000420],edx
。所以冒号:用于注释?我能说什么,你的调试器坏了。@user14352通常不会。你确定是结肠吗?难道不是你的字体+分辨率+LCD让分号看起来像冒号吗?@Ped7g我放大了200%,但它仍然是冒号::)你是如何达到这个值“0x420”的
mov [ss:ebp-0x420],edx