-
关于lea ecx,[edx+edx*2]指令的疑问,该如何解决
关于leaecx,[edx+edx*2]指令的疑问反汇编VC的代码,经常有上面的类似指令,我想问的是上述leaecx,[edx+edx*2]这条指令在现在的C2.8D的CPU中怎么被具体执行?消耗多少个CPU的时钟周期?还有就是leaecx,[edx]这条指令和上述指令在执行周期上快多少?color='#e78608'>------解决方案-----------------------------...
3186
热度 -
cdq指令是eax/edx,作用是什么?解决方案
cdq指令是eax/edx,作用是什么?如题color='#e78608'>------解决方案--------------------------------------------------------把eax作为一个符号数,如果其为正数,edx置0;如果前为负数,edx置-1;这样,指令后的edx:eax形成的一个qword数,就和原来的eax这么个dword的值相等;这个指令通常用在应付...
8291
热度 -
●eax,ebx,ecx,edx等等寄存器书上讲得太抽象了?有些不懂,或者是理解异常的地方,请大家指点
●●●eax,ebx,ecx,edx等等寄存器书上讲得太抽象了?有些不懂,或者是理解错误的地方,请大家指点书上说,AX累加器,bx,cx,dx是通用寄存器,分别用作基址变址,计数器,数据,那么eax,ebx,ecx,edx也分别是累加器,基址变址,计数器,数据吧?基址变址:是什么意思?下面代码为什么GetModuleHandle的返回值默认在eax里面,不在edx,ebx,ecx里面呢?eax是累...
2623
热度 -
输出的时候为何修改了内存中的内容,该怎么解决
输出的时候为何修改了内存中的内容includeio32.inc.data sumdword1,1,0dup(28) .codestart: movecx,30 xorebx,ebx movedx,ebx movedx,1again: moveax,sum[ebx*4] incebx addeax,sum[edx*4] incedx movsum[edx*4],eax cm...
202
热度 -
输出的时分为何修改了内存中的内容
输出的时候为何修改了内存中的内容includeio32.inc.data sumdword1,1,0dup(28) .codestart: movecx,30 xorebx,ebx movedx,ebx movedx,1again: moveax,sum[ebx*4] incebx addeax,sum[edx*4] incedx movsum[edx*4],eax cm...
197
热度 -
imul esi 这个授命是什么意思
imulesi这个指令是什么意思?imulesi之后edx的值改变了,它是怎么操作到的呢?分享到:edx的值改变了,?它是怎么操作到的呢?'data-pics=''>color='#FF8000'>------解决方案--------------------eax*esi->edx:eax所以edx会发生改变color='#FF8000'>------解决方案----------------...
330
热度 -
要看汇编语言写C,有几个地方不懂,求教了,该如何处理
要看汇编语言写C,有几个地方不懂,求教了1:080483c0<switch_prob>:2:80483c0:55push%ebp3:80483c1:89e5mov%esp,%ebp4:80483c3:8b4508mov0x8(%ebp),%eax5:80483c6:8d50celea0xffffffce(%eax),%edx6:80483c9:83fa05cmp$0x5,%edx7:8...
1830
热度 -
imul esi 这个指令是什么意义
imulesi这个指令是什么意思?imulesi之后edx的值改变了,它是怎么操作到的呢?color='#FF8000'>------解决方案--------------------eax*esi->edx:eax所以edx会发生改变color='#FF8000'>------解决方案--------------------引用:Quote:引用:不是这样理解的,哪怕是1*1,也会将edx置...
322
热度 -
64位移位的有关问题
64位移位的问题?我在写一个把double转换为int的汇编代码,如下doublereal=123.456;__int64a=0;__asm{//取指数moveax,dwordptr[real+4]andeax,0x7ff00000shreax,20subeax,1023//现在eax存储着指数的位数//由于double的符号位为1,指数位为11,尾数为52,如果要把小点部分干掉,//那么需要移位...
9976
热度 -
除法符号扩张
除法符号扩展为什么把EAX中的字的符号扩展到EDX?还有先把商移入栈中和还是余数移入栈中有区别吗?color='#e78608'>------解决方案--------------------------------------------------------探讨为什么把EAX中的字的符号扩展到EDX?还有先把商移入栈中和还是余数移入栈中有区别吗?
9676
热度 -
循环移位有关问题
循环移位问题.dataaqword1234567887654321h要用循环移位的方法把最低位的1移到最高位去,变成1123456788765432h请教高手们如何搞。color='#e78608'>------解决方案--------------------------------------------------------Assemblycode.486moveax,DWORDPTRamo...
3607
热度 -
怎么判断哪些数值是否是内存地址呢
如何判断哪些数值是否是内存地址呢?我需要去遍历这些数值,然后作为地址用但是我现在碰到个问题就是有些不能作为地址用所以就发生错误比如我在C++中写道:_asm{movedx,resultmovedx,[edx]}result就是左边的数值然后第二句就会出错额请问下该如何避免这种情况呢谢谢各位~~color='#e78608'>------解决方案---------------------------...
756
热度 -
编译语言的简答入门-斐波那契数列(递归)
汇编语言的简答入门--斐波那契数列(递归)TITLESaveanarrayanddispalyINCLUDEIrvine32.inc.dataarrayDWORD12DUP(?);defineaarrayforsavingFibonaccinumbersstep=typearraynumDWORD?countDWORD?promptbyte"Thefirsttwelvefibonacci...
273
热度 -
关于imul的32位乘法有关问题
关于imul的32位乘法问题本帖最后由kcs07于2012-12-0508:52:04编辑关于汇编的imul,结果理论上来说,高32位应该存在edx,低32位存在eax,但是结果和预期的不一样..请问imul对32位乘法的原理是怎样的?如何解读这样的结果? moveax,90000 movebx,90000 imulebx WriteUDecDwordeax calldispcrlf WriteU...
8814
热度 -
调用e820失败解决办法
调用e820失败本帖最后由lovelxy于2012-12-1420:47:09编辑我在用bochs调试程序.程序通过int15h获取memmap.但是调用失败 movax,0x8000 moves,ax moveax,0e820h xorebx,ebx movecx,20 movedx,SMAP xordi,digood_e820: int15h jcbad_e820 cmpedx,SMAP jn...
8301
热度 -
《深入理解计算机系统》 图5-35汇编语句什么意思?解决方法
《深入理解计算机系统》图5-35汇编语句什么意思?voidwrite_read(int*src,int*dest,intn){intcnt=n;intval=0;while(cnt--){*dest=val;val=(*src)+1;}}//图5-35给出的write_read内循环代码的汇编语句是movl%eax,(%ecx)//不知道%eax,ecx代表什么意思movl(%ebx),%eaxa...
7668
热度 -
快速系统调用过程中有一句汇编语句不明白,该怎么处理
快速系统调用过程中有一句汇编语句不明白在用户模式下调用时是movedx,espsyseneredx指向用户空间堆栈栈顶然后到创建自陷框架时nt!KiFastCallEntry:804de89fb923000000 mov ecx,23h804de8a46a30 ...
31
热度 -
高手,请帮忙看一段汇编.小弟我是小白,刚入门.关于cx的
高手,请帮忙看一段汇编.我是小白,刚入门.关于cx的.;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...
5794
热度 -
C语言编译成汇编乘积运算有关问题
C语言编译成汇编乘积运算问题C语言代码如下:voidmain(unsignedlonglong*a,unsignedb,unsignedlonglongc){ *a=b*c;}编译后的汇编如下(去掉链接用的标记):main: pushl %ebp movl %esp,%ebp andl $-8,%esp movl 12(%ebp),%eax movl 20(%ebp),%ecx imull %ea...
5897
热度 -
请教一下rep与ret连在一起是什么意思
请问一下rep与ret连在一起是什么意思?C/C++codeintsum(intn){intsum=0;for(inti=0;i<n;++i)sum+=i;returnsum;}用gcc4.6.0编译(g++-O2-S)得到的汇编代码如下:Assemblycode.p2align4,,15.globl_Z3sumi.type_Z3sumi,@function_Z3sumi:.LFB0:xor...
5898
热度