标题:哪位大神帮忙把下边这个程序反汇编一下,谢谢了!
只看楼主
gh805367614
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-12
结帖率:100%
 问题点数:0 回复次数:5 
哪位大神帮忙把下边这个程序反汇编一下,谢谢了!
#include <iostream.h>
class box
{
private:
    int a;int b; int h;        //a表示边长
public:
    int ss();        //计算面积
    int vv();        //体积
    void print();        //输出
    void init(int t1, int t2,int t3)            //传参数
    {a=t1;b=t2;h=t3;};
};


int box::ss()
{
    int s;
    s=(a*b+a*h+b*h)*2;
    return s;
};
int box::vv()
{
    int v;
    v=a*b*h;
    return v;
};
void box::print()
{
    cout<<"面积为:"<<ss()<<endl;
    cout<<"的体积为:"<<vv()<<endl;
};
void main()
{    int m;int k;int w;
cout<<"请输入边长:";
cin>>m>>k>>w;
box ob;
ob.init(m,k,w);
ob.ss();
ob.vv();
ob.print();
}
搜索更多相关主题的帖子: private void include public return 
2012-11-13 12:39
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
得分:0 
004011D0   push        ebp
004011D1   mov         ebp,esp
004011D3   sub         esp,58h
004011D6   push        ebx
004011D7   push        esi
004011D8   push        edi
004011D9   lea         edi,[ebp-58h]
004011DC   mov         ecx,16h
004011E1   mov         eax,0CCCCCCCCh
004011E6   rep stos    dword ptr [edi]
34:   cout<<"请输入边长:";
004011E8   push        offset string "\xc7\xeb\xca\xe4\xc8\xeb\xb1\xdf\xb3\xa4\xa3\xba" (0042a038)
004011ED   mov         ecx,offset cout (004300b0)
004011F2   call        ostream::operator<< (00401750)
35:   cin>>m>>k>>w;
004011F7   lea         eax,[ebp-0Ch]
004011FA   push        eax
004011FB   lea         ecx,[ebp-8]
004011FE   push        ecx
004011FF   lea         edx,[ebp-4]
00401202   push        edx
00401203   mov         ecx,offset cin (004300f0)
00401208   call        istream::operator>> (004022d0)
0040120D   mov         ecx,eax
0040120F   call        istream::operator>> (004022d0)
00401214   mov         ecx,eax
00401216   call        istream::operator>> (004022d0)
36:   box ob;
37:   ob.init(m,k,w);
0040121B   mov         eax,dword ptr [ebp-0Ch]
0040121E   push        eax
0040121F   mov         ecx,dword ptr [ebp-8]
00401222   push        ecx
00401223   mov         edx,dword ptr [ebp-4]
00401226   push        edx
00401227   lea         ecx,[ebp-18h]
0040122A   call        @ILT+5(box::init) (0040100a)
38:   ob.ss();
0040122F   lea         ecx,[ebp-18h]
00401232   call        @ILT+35(box::ss) (00401028)
39:   ob.vv();
00401237   lea         ecx,[ebp-18h]
0040123A   call        @ILT+15(box::vv) (00401014)
40:   ob.print();
0040123F   lea         ecx,[ebp-18h]
00401242   call        @ILT+25(box::print) (0040101e)
41:   }
00401247   pop         edi
00401248   pop         esi
00401249   pop         ebx
0040124A   add         esp,58h
0040124D   cmp         ebp,esp
0040124F   call        __chkesp (00404a50)
00401254   mov         esp,ebp
00401256   pop         ebp
00401257   ret


[ 本帖最后由 水哥 于 2012-11-13 13:09 编辑 ]
2012-11-13 13:07
gh805367614
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-12
得分:0 
谢谢了,可是怎么把上面反汇编出来的直接改成汇编语言啊,也就是用汇编语言实现“输入长方体的长宽高输出长方体的表面积和体积”
2012-11-13 19:01
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用gh805367614在2012-11-13 19:01:12的发言:

谢谢了,可是怎么把上面反汇编出来的直接改成汇编语言啊,也就是用汇编语言实现“输入长方体的长宽高输出长方体的表面积和体积”

我猜你学的是16位汇编 而上面的是32位汇编 所以 呵呵 改是挺麻烦的一个事。。。
2012-11-13 19:10
gh805367614
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-12
得分:0 
哦,上面的怎么去改成16位的汇编语言呢
2012-11-14 10:06
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
多看看书 应该搞的定 自己写才有体会 不过这些东西用汇编写很长。

梅尚程荀
马谭杨奚







                                                       
2012-11-16 00:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-386880-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058074 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved