下列汇编语句各是什么意思?
(1)addal,byteptrds:[esi+46](2)adddwordptrds:[eax],eax(3)leaedi,dwordptrss:[esp+10](4)...
(1)add al,byte ptr ds:[esi+46](2)add dword ptr ds:[eax],eax(3)lea edi,dword ptr ss:[esp+10](4)lea edx,dword ptr ss:[esp+114](5)rep stos dword ptr es:[edi](6)cmp byte ptr ds:[ebx],24(7)and dword ptr ss:[ebp+C],eax(8)int3本人菜鸟一个,只能看懂mov,call,text,cmp,lea,之类较简单的指令,像这样复杂点的就看不懂了。。。请高手勿喷。。。帮忙解释下。。不正面回答问题,邀请我去XX黑客论坛学习的就别来了。。
展开
2个回答
2013-11-13
展开全部
(1)add al,byte ptr ds:[esi+46] :将[esi+46]内存单元中的32位数值取其低8位与 al寄存器中数值做加法运算,结果存放到al寄存器中。(2)add dword ptr ds:[eax],eax:含义同上,eax寄存器32位,dword也代表32位(3)lea edi,dword ptr ss:[esp+10]: lea指令是装入有效地址指令,指令用法你知道的,我估计你是不清楚 dword ptr的含义吧,dword代表32位数据,byte代表8位数据(5)rep stos dword ptr es:[edi]LODS 装入串. 把源串中的元素(字或字节)逐一装入AL或AX中. ( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. ) STOS 保存串. 是LODS的逆过程. REP 当CX/ECX<>0时重复. (6)cmp byte ptr ds:[ebx],24 CMP 比较指令.(两操作数作减法,仅修改标志位,不回送结果). byte ptr代表取低8位(7)and dword ptr ss:[ebp+C],eax and逻辑与 AND 可以有任意多个输入,但最少是两个。仅当AND函数的第一个、第二个和第三个输入等都是真,它的输出才是真。 dword ptr 代表32位操作数(8)int 3 : INT 3为断点中断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-13
展开全部
<add>两次累加,<lea>然后把偏移地址存到edi,装载了两次,<rep>edi清零,<cmp>然后比较一下,<and>与运算一下,INT n 其中n为软中断的类型号.希望帮助到你了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询