汇编指令统计课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 。。 * 汇编指令统计 组员:李阳阳、刘璐璐、 窦文琦、徐兴、庞发军 经观察统计可知,汇编指令主要有 POP,PUSH,XCHG,XLAT,IN,OUT,LEA,ADD,ADC,SUB,MUL,DIV,NOT,AND,OR,XOR,TEST,SHL,SHR,SAR,ROL,ROR,CALL,RET,JMP,LOOP,LOOPNE,JCXZ,JA,JO,JNO,JAE,JB,JNB,INT,INTO,IRET,CLC,CMC,STC,CLD,CLI,WAIT,ESC,LOCK 等。 在反汇编时,可将每行中的指令通过文件操作,将其读入一个变量t中,然后与节点类的对象比较,完成相应计数。 例 设计思路 定义一个节点类Node,格式如下: 其中,char*表示某一指令字,int记录其个数,Node*指示下一个不同指令字节点。 char* int Node* 具体定义如下: class Node { char *ch;//存放指令字 int count;//计数 Node *next;//指出下一指令字的结点 public: Node(); char* pop_ch() {return ch;}//返回结点的ch值 void set_ch(*c);//将c的内容赋予ch void inc_count() {count++;}//计数增1 int prt_count() {return count;}//返回计数值 void set_next(*c) {next=c;}//添加结点 Node* pop_next() {return next;}//返回下一指令字结点 ~Node() {delete []ch;} }; 函数实现如下: Node::Node() { ch=new char[4]; count=1; next=NULL; } void Node::set_ch(char *c) { int i; for(i=0;i4;i++) ch[i]=c[i]; } 具体的说,可定义一个Node类的指针h_node,temp。前者作为由各指令字构成的链表的头指针,后者用于指示某一结点。然后读取文件,并将文件中每行指令的命令字,赋予t。 遍历链表h_node,如果h_node存在节点temp,其temp-pop_ch()值与t相同,则通过temp-inc_count()将该节点的count值增1;如果h_node中不存在这样的节点,则向h_node插入新节点temp,即set_next(temp),且temp-ch值为t。 例: 初始时: h_node 利用文件操作,将第一条指令字AND输入t,通过与h_node比较后,发现h_node中无节点其ch值与t相同,故将其加入h_node中。即: h_node 之后判断下一条指令。 1 null AND 1 null 1 利用文件操作将第二条指令字JNZ(DB不是指令字,被忽略)输入t,通过与h_node比较后,发现h_node中无节点其ch值与t相同,故将其加入h_node中。即: h_node 之后接着判断下一指令 例 AND 1 JNZ 1 null 1 将AND输入t,通过与h_node比较后,发现h_node中第二个节点其ch值与t相同,故通过inc_count(),修改该节点的count值。即: h_node 之后接着判断下一指令 例 AND 2 JNZ 1 null

文档评论(0)

liuxiaoyu99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档