-
汇编指令的算术运算能否直接操作内存,addl
汇编指令的算术运算可否直接操作内存,addl在我的印象中,加减剩除运算都是先将内存数据拷贝到寄存器中,然后通过运算指令完成运算后再将结果写回内存,为什么我反汇编了一个段程序后发现可以直接操作内存数据呢?求解惑!intvar=3;void*pThreadFunc(void*args){++var;printf("thread:%d\n",var);returnNULL;}intmain(){++va...
230
热度 -
大家有兴趣看汇编,看看这个,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
热度 -
《深入理解计算机系统》 图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
热度 -
请教一下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
热度 -
公司面试题目——要求用汇编语言编写,该如何解决
公司面试题目——要求用汇编语言编写1、编写完整的汇编语言源程序在内存的数据段中存放了10个8位带符号数10H、FEH、00H、ABH、78H、99H、12H、30H、00H、46H,其首地址为TABLE,试统计其中正数、负数和零的个数,并分别将数据存入到M1、M2、M3单元中2、数据段BUF区域中,存放着200个字节数据,将它们移到TAB区域(1)用传送指令编程(2)用字符串操作指令编程问题补充:...
4077
热度 -
关于数组类型的讨论
这句话我收回。 特别的,a.name退化为char*const,而不是char* [[it]本帖最后由StarWing83于2008-5-1100:52编辑[/it]] color='#FF8000'>----------------解决方案-------------------------------------------------------- ...
139
热度 -
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
热度 -
gas一个很好玩的容错处理方法,该怎么解决
gas一个很好玩的容错处理方法.section.data#此处是第一个需要注意的地方Str_Output: .asciz"ThisisaDebugString!!!\n".section.text.globl_start_start: nop callfunc pushl$0 callexit.section.text.typefunc,@functionfunc: pushl...
4128
热度 -
《coredump有关问题原理探究》Linux x86版4.4节函数的逆向之循环结构
《coredump问题原理探究》Linuxx86版4.4节函数的逆向之循环结构在x86里,循环指令有:LOOP:ECX不为零时循环LOOPE/LOOPZ:ECX不为零且标志Z=1时循环LOOPNE/LOOPNZ:ECX不为零且标志Z=0时循环但实质上,由于上面指令适用范围太窄,只能用于循环体非常简单的。所以往往是用条件跳转指令来实际循环。用例子来体现一下:#include<stdio.h&g...
4322
热度 -
求助,关于自增的问题 也许你没见过
回复19#的帖子 谢谢一个老手对一个新手的批评指教。不过对于一个刚学到函数的新手有点难度去理解。再次感谢这位老师,又让我找到了一个学习的途径。 color='#FF8000'>----------------解决方案-------------------------------------------------------- ...
235
热度 -
深入理解计算机系统习题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
热度 -
怎么让下面对联广告代码在ie和谷歌都可以用
如何让下面对联广告代码在ie和谷歌都可以用?vardelta=0.15;varcollection;varcloseB=false;functionfloaters(){this.items=[];this.addItem=function(id,x,y,content){document.write('<DIVid='+id+'style="Z-INDEX:10;POSITION...
89
热度 -
[求助]求助 b=++a + ++a + ++a 得算法过程
[求助]求助b=++a+++a+++a得算法过程 求助b=++a+++a+++a得算法过程a=3那位高手教教我我用的是Vc6.0 搜索更多相关的解决方案: color="red">算法 color='#FF8000'>----------------解决方案------------------------...
92
热度 -
linux 下汇编有关问题3,高人指教!
linux下汇编问题3,高人指教!!!!!8.intel为了解决64位缓存块的问题,按照16字节边界对准16位数据。对准32位数据使它的基址是4的倍数。对准64位数据是他的基址是8的倍数。避免小的数据传输。而是使用单一的大型数据传输。避免在堆栈中使用大的数据长度(比如80位和128位浮点值)。-----这里的对准是怎么回事?还有各项都是什么意思,为什么这样作?9.驱动程序发出的应该是软中断,不知对...
1161
热度 -
怎么把自定义的 类 连接到 .asp.cs 文件当中去
如何把自定义的类连接到.asp.cs文件当中去?//我的类如下:usingSystem;namespacehome20070228{ ///<summary> ///add的摘要说明。 ///</summary> publicclassadd { publicadd() { // //TODO:在此处添加构造函数逻辑 // } doublea; dou...
4005
热度 -
关于++运算符的问题
关于++运算符的问题 intadd(inta,intb) { return(a+b); } inta=5; add(a++,a)=10 add(a,a++)=11 add(++a,a)=12 add(a,++a)=12 add(++a,++a)=14 add(++a,a++)=12 add(a++,a++)=11 add(a++,++a)=13 为什么add(++...
361
热度 -
对于汇编代码pushl %ebp movl %esp,%ebp 了解无能
对于汇编代码pushl%ebpmovl%esp,%ebp理解无能啊最近在看《深入理解计算机系统这本书》,对于它汇编出来的代码不能理解呢。源文件中含以下代码1intsimple(int*xp,inty)2{3intt=*xp+y;4*xp=t;5returnt;6}使用-S-01运行GCC产生的汇编代码有以下一段:1simple:2pushl%ebp3movl%esp,%ebp//这个时候栈顶存的是...
183
热度 -
C中直接嵌套汇编的方式(不同编译器直接的差异)
C中直接嵌套汇编的方式(不同编译器直接的差异) C中直接嵌套汇编的方式(不同编译器直接的差异) #include<stdio.h> intinput,result; intmain() { result=0; input=1; __asm__ __volatile__("addl%1,%0":"=r"(resul...
163
热度 -
rehhat64位系统编译汇编代码失败解决方法
rehhat64位系统编译汇编代码失败我的平台是64位红帽企业版,源码如下,.section.dataoutput: .asciz"Thisisasection%d\n".section.text.globl_start_start: callover push$0 callexitover: push%ebp movl%esp,%ebp push$2 push$output callprintf...
179
热度 -
JVM实施篇:使用HSDIS插件分析JVM代码执行细节
JVM执行篇:使用HSDIS插件分析JVM代码执行细节 在《Java虚拟机规范》之中,详细描述了虚拟机指令集中每条指令的执行过程、执行前后对操作数栈、对局部变量表的影响等细节。这些细节描述与Sun的早期虚拟机(SunClassicVM)高度吻合,但随着技术的发展,高性能虚拟机真正的细节实现方式已经渐渐与虚拟机规范所描述产生越来越大的差距,虚拟机规范中的描述逐渐成了虚拟机实现的“概念模型”――即实现...
381
热度