请教ASM in C++
请教各位:我看别人C++代码(如下:)
mov ebx, this;这个语句能看懂,但mov esi, [ebx]this.pValue;这个语句不明白是什么意思--MOV指令的第二个操作数是什么啊??[ebx]是地址,还是DATA,而[ebx]this.pValue;合起来又是什么呢?。。。。。?
DWORD dwFull;
__asm
{
mov ebx, this;
mov esi, [ebx]this.pValue;
mov ecx, [ebx]this.last;
mov ebx, dwValue; //乘数
xor edi, edi; //作临时存贮器,保存高位
L1:
mov eax, [esi];
mul ebx;
add eax, edi;
mov [esi], eax;
adc edx, 0;
mov edi, edx;
add esi, 4;
loop L1;
cmp edi, 0;
je L2;
mov dwFull, edi;
}
问题点数:20、回复次数:6Top
1 楼todototry(来csdn,学会扯淡了...)回复于 2006-12-02 11:20:21 得分 8
mov esi, [ebx]this.pValue
这是寄存器相对基址寻址
把this.pValue的值(一个数)和ebx的值相加的和作为所需读取的存储单元的地址
由于使用ebx,默认段寄存器的为ds
把ds+ebx+this.pValue地址处的值取出送esi(变址寄存器)
(ds+ebx+this.pValue)=>esi
Top
2 楼todototry(来csdn,学会扯淡了...)回复于 2006-12-02 11:20:40 得分 0
个人意见,高手多多指教Top
3 楼OOPhaisky(异化$渴望成功~~)回复于 2006-12-02 11:38:22 得分 5
mov esi, [ebx]this.pValue;
如果我没记错的话,这种应该是寄存器相对寻址方式,等价于
mov esi, [ebx+this.pValue];Top
4 楼jixingzhong(瞌睡虫·星辰)回复于 2006-12-02 18:39:51 得分 5
mov esi, [ebx+this.pValue];Top
5 楼ZhengKarl(亮仔)回复于 2006-12-13 15:45:11 得分 0
那这一句呢?(IN CIH SOURCE CODE):
lea ecx, StopToRunVirusCode-@0[ebx]Top
6 楼ReverseEngineering(★给我一杯壮阳水☆换我一夜不下垂★男人阳萎不是罪☆)回复于 2006-12-22 21:11:10 得分 2
写在后面用点,写在前面不用点,都是加起来!Top




