-
深入理解计算机系统的习题疑惑,跪求大神解答
深入理解计算机系统的练习题疑惑,跪求大神解答寄存器值%eax0x100%ecx0x1%edx0x3内存地址值0x1000xFF0x1040xAB0x1080x130x10c0x11操作数值260(%ecx,%edx)0x13不懂这操作数的值是怎么求出的,请大神帮忙解答下详细过程,本人没任何汇编的基础color='#FF8000'>------解决思路----------------------26...
148
热度 -
汇编影藏异常-att汇编格式描述
汇编影藏错误----att汇编格式描述intcread(int*xp){return(xp?*xp:0);}================================>movl$0,%eaxtestl%edx,%edxcmovne(edx),%eax看看,有什么问题没有?希望高手们提出自己的见解,不胜感激color='#e78608'>------解决方案---------------...
948
热度 -
比较CMP有关问题
比较CMP问题以下是代码,使用第三行的注释为CPUID命令执行以后各寄存器的值,执行CPUID后,我将EAX的值赋为EDX的值后,执行比较命令,但是,每次比较结果都是不相等,直接跳转到了noequ执行输出语句。我明明是按照EDX的值为EAX赋的值,为什么比较结果是不相等呢?Assemblycodemoveax,00000001hcpuidmoveax,0BFEBFBFFh;eax=00000F41...
1217
热度 -
redhat5 linux 下汇编有关问题
redhat5linux下汇编问题#cpuid.s.section.dataoutput:.ascii"TheprocessorVendorIDis'xxxxxxxxxxxx'\n".section.text.globl_start_start:movl$0,%eaxcpuidmovl$output,%edimovl%ebx,28(%edi)movl%edx,32(%edi)m...
6572
热度 -
cpuid 指令只获取了CPU序列号一部分,该怎么解决
cpuid指令只获取了CPU序列号一部分WORDCPUID[6]={0}; DWORDdeax,debx,decx,dedx; _asm{ moveax,1 cpuid movdeax,eax } memcpy(CPUID,&deax,4);//这时eax的值是正确的 _asm{ moveax,3 cpuid movdecx,ecx movdedx,edx//这里执行后ecx...
1725
热度 -
问两个初学者有关问题
问两个菜鸟问题我刚刚接触汇编,想问两个win32会变得问题我定义了一个数组myarray,然后从键盘输入了一个数字,怎么把它放进定义好的数组里?还有我写了一个判奇偶的moveax,input;input是放用户输入的数字的变量movecx,2divecxcmpedx,0编译通过了,但是运行的时候就出现integeroverflow,这个到底怎么回事啊,我输入的数字都是在0到100之间的,不应该存在...
296
热度 -
底下这三段汇编代码的执行效率一样吗
下面这三段汇编代码的执行效率一样吗?本帖最后由Samlerieltan于2014-04-0222:16:10编辑1:0040102Fmoveax,dwordptr[ebp-4]00401032addeax,100401035movdwordptr[ebp-4],eax2:00401038movecx,dwordptr[ebp-4]0040103Baddecx,10040103Emovdwordpt...
173
热度 -
深入理解计算机系统习题3.23疑惑,求大神解答,极度疑惑中
深入理解计算机系统练习题3.23疑惑,求大神解答,极度疑惑中intfun_b(unsignedx){intval=0;inti;for(i=0;x<32;i++){val=(val<<1)|(x&0x1);x>>=1;}returnval;}movl8(%ebp),%ebxmov$0,%eaxmov$0,%ecx.L13:leal(%eax,%eax),%ed...
87
热度 -
Java转汇编代码的分析。特别困惑。请大家支招解决方法
Java转汇编代码的分析。特别困惑。请大家支招bytemap[32]={0,0……0};intlen=strlen(string);for(inti=0;i<len;i++)map[(string[i])>>3]|=1<<((string[i])&7)下面是汇编代码,map和string都是byte型的变量。PrepareMapPROC, string:PTR...
397
热度 -
Java转汇编代码的分析。不一般困惑。请大家支招
Java转汇编代码的分析。特别困惑。请大家支招bytemap[32]={0,0……0};intlen=strlen(string);for(inti=0;i<len;i++)map[(string[i])>>3]|=1<<((string[i])&7)下面是汇编代码,map和string都是byte型的变量。PrepareMapPROC, string:PTR...
409
热度 -
PE文件头的校验和在汇编里的算法终竟咋写呢
PE文件头的校验和在汇编里的算法到底咋写呢?本帖最后由shier2817于2014-12-1810:23:46编辑PE结构网上到处都是,关于其中的扩展头(也叫可选头),其中有个成员CheckSum(相对于本结构的40h偏移处,是结构的第22个成员),按描述说是PE的校验和,一般不使用,对于所有驱动、系统启动时加载的DLL、系统关键进程加载的DLL都要进行校验和的校验;这个校验和可以通过API计算:...
105
热度 -
80X86求给定整数的所有素因子解决办法
80X86求给定整数的所有素因子要求,输入一个整数,求出其所有素因子,并表现为乘积方式,求因子的算法用子程序来实现,例如:输入480,输出,480=2*2*2*2*2*3*5,一定给分求大神给出程序,一定用80X86啊!!谢谢color='#e78608'>------解决方案--------------------------------------------------------好久没有写...
5218
热度 -
求问怎样用汇编编写简易计算器程序,该怎么处理
求问怎样用汇编编写简易计算器程序要求:输入一个表达式,输出十进制结果,例如:输入1234+5678-1111*9876/4321输出13258注意:表达式中只允许出现+-*/,没有其它运算符,表达式总长度不超过80字符;运算过程不考虑优先级,一律从左到右;计算除法时只要商,不要余数;计算过程中算得的中间值以及最终结果都假定不会超过32位;程序中可以使用32位寄存器及386指令。初学汇编,实在是编不...
7465
热度 -
大家有兴趣看汇编,看看这个,cu上刚看到
大家有兴趣看汇编,看看这个,cu上刚看到 .L0: addl(%eax,%edx,4),%ecx incl%edx cmpl%edi,%edx jl.L0 .L1 addl(%eax),%ecx addl$4,%eax cmpl%edx,%eax jb.L0 请问第一个迭代要几个指令周期?第二个呢?为什么? 搜索更多相关的解决方案: ...
149
热度 -
vc程序调试 解释反汇编解决方法
vc程序调试解释反汇编请问以上反汇编代码信息是什么意思(红色框框圈的部分)?避免图片不能显示附上文字反汇编代码:pen_usetoi=*m_pDrawFunctionArr[0];0041EFC0moveax,dwordptr[this]0041EFC3movecx,dwordptr[eax+1F80h]0041EFC9movedx,dwordptr[ecx]0041EFCBmovdwordptr...
6872
热度 -
菜鸟,关于寄存器eax、ebx、ecx和ebx、esi之类的的疑问。
初学者,关于寄存器eax、ebx、ecx和ebx、esi之类的的疑问。。。Windows系统下ebx、esi、edi是被内定了,用的时候需要push,用完需要pop。然后eax是当作变通用的返回值寄存器,eip、ebp、esp就不用说了。。。那edx和ecx呢?这2个需要不需要用之前push,用完pop?还是能用完就扔?昨天被ebx这3个折腾死了,现在搞得只敢用eax了,有时候用堆栈当临时变量有点...
3975
热度 -
请教这个if比较有没有比较好的优化方法
请问这个if比较有没有比较好的优化方法?for...if(iXX>=0&&iXX<iWidth&&iYY>=0&&iYY<iHeight){|loop...现在mm0里边已经是iXXiYY了movqmm5,mm0movdecx,mm5 //iYYcmpecx,0jlOut_RangecmpiHeight,ecxjleOut_...
6625
热度 -
宏文件添加内容报错,帮忙看看。
宏文件添加内容出错,帮忙看看。。mcalc_row_sumMARCOindex,arrayoffset,rowsize,elttypeLOCALL1pushebxpushecxpushesimoveax,indexmovebx,arrayoffsetmovecx,rowsizemulecxaddebx,eaxshrecx,(typeelttype/2)moveax,0movesi,0L1:IFID...
86
热度 -
cpuid 授命只获取了CPU序列号一部分
cpuid指令只获取了CPU序列号一部分WORDCPUID[6]={0}; DWORDdeax,debx,decx,dedx; _asm{ moveax,1 cpuid movdeax,eax } memcpy(CPUID,&deax,4);//这时eax的值是正确的 _asm{ moveax,3 cpuid movdecx,ecx movdedx,edx//这里执行后ecx...
5650
热度 -
一个关于mov占用时钟周期的有关问题
一个关于mov占用时钟周期的问题。movedx,dwordptr[ecx+edx*4+8]moveax,dwordptr[eax+14h]leaeax,[eax+edx*8]我不知道[ecx+edx*4+8]这个里面的乘法和加法是不是也要占用时钟周期?这3句要占用多少时钟周期呢?color='#e78608'>------解决方案----------------------------------...
1926
热度