汇编代码
0042869056pushesi004286918BF1movesi,ecx004286938B06moveax,dwordptrds:[esi]004286958B4...
00428690 56 push esi
00428691 8BF1 mov esi,ecx
00428693 8B06 mov eax,dword ptr ds:[esi]
00428695 8B48 04 mov ecx,dword ptr ds:[eax+0x4]
这段看不懂,谁给解释下,另外找个懂汇编的师傅,方便问问题,+qq1007867921 著名“汇编” 展开
00428691 8BF1 mov esi,ecx
00428693 8B06 mov eax,dword ptr ds:[esi]
00428695 8B48 04 mov ecx,dword ptr ds:[eax+0x4]
这段看不懂,谁给解释下,另外找个懂汇编的师傅,方便问问题,+qq1007867921 著名“汇编” 展开
4个回答
展开全部
代码解释如下:
PUSH ESI;把ESI寄存器中的内容入栈
MOV ESI,ECX;把寄存器ECX中的内容赋值给ESI
MOV EAX,DWROD PTR DS:[ESI]
;1.DS:[ESI],这里运用了段超越前缀的方法,告诉编译器,寄存器的ESI段值放在DS中的
;2.DWORD PTR DS:[ESI]告诉编译器,这里用的是DWORD类型
;3.使用的寻址方式是寄存器间接寻址方式
;4.把寻址得到的DWORD类型的结果放进EAX中
MOV ECX,DOWRD PTR DS:[EAX+0X4]
;此处用的是寄存器相对寻址方式,其余的和上一语句差不多
;找师傅就算了,也差不多只弄了两个月的汇编,现在也还在学习,呵呵
PUSH ESI;把ESI寄存器中的内容入栈
MOV ESI,ECX;把寄存器ECX中的内容赋值给ESI
MOV EAX,DWROD PTR DS:[ESI]
;1.DS:[ESI],这里运用了段超越前缀的方法,告诉编译器,寄存器的ESI段值放在DS中的
;2.DWORD PTR DS:[ESI]告诉编译器,这里用的是DWORD类型
;3.使用的寻址方式是寄存器间接寻址方式
;4.把寻址得到的DWORD类型的结果放进EAX中
MOV ECX,DOWRD PTR DS:[EAX+0X4]
;此处用的是寄存器相对寻址方式,其余的和上一语句差不多
;找师傅就算了,也差不多只弄了两个月的汇编,现在也还在学习,呵呵
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
Base Addr Size 指令
00428690 56 push esi
00428691 8BF1 mov esi,ecx
00428693 8B06 mov eax,dword ptr ds:[esi]
00428695 8B48 04 mov ecx,dword ptr ds:[eax+0x4]
涉及概念:段地址(ds:[偏移地址] ),指令处理的数据长度(dword ptr )。
00428690 56 push esi 将ESI寄存器值入栈
00428691 8BF1 mov esi,ecx 将寄存器ecx值传给esi寄存器
00428693 8B06 mov eax,dword ptr ds:[esi] 将数据长度为双字型地址为为 [ds+esi]的值传给寄存器eax
00428695 8B48 04 mov ecx,dword ptr ds:[eax+0x4] 将数据长度为双字型地址为
[ds+eax+0X4]的值传给寄存器
ecx
00428690 56 push esi
00428691 8BF1 mov esi,ecx
00428693 8B06 mov eax,dword ptr ds:[esi]
00428695 8B48 04 mov ecx,dword ptr ds:[eax+0x4]
涉及概念:段地址(ds:[偏移地址] ),指令处理的数据长度(dword ptr )。
00428690 56 push esi 将ESI寄存器值入栈
00428691 8BF1 mov esi,ecx 将寄存器ecx值传给esi寄存器
00428693 8B06 mov eax,dword ptr ds:[esi] 将数据长度为双字型地址为为 [ds+esi]的值传给寄存器eax
00428695 8B48 04 mov ecx,dword ptr ds:[eax+0x4] 将数据长度为双字型地址为
[ds+eax+0X4]的值传给寄存器
ecx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.esi寄存器压栈
2.把ecx的内容拷贝到esi
3.将内存中ds段esi偏移的双字单元拷贝到eax
4.将将内存中ds段eax+4偏移的双字单元拷贝到ecx
2.把ecx的内容拷贝到esi
3.将内存中ds段esi偏移的双字单元拷贝到eax
4.将将内存中ds段eax+4偏移的双字单元拷贝到ecx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主能给个全部代码不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询