当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 7.0条件跳转 在Code部分,你可以看到像这样的标签:
 

 

 ·(译)win32asm教程-4    »显示摘要«
    摘要: 5.0伪代码 伪代码是给处理器的指令,它实际上是原始十六进制代码的可读版。因此,汇编是最低级的编程语言。汇编中的所有东西被直接翻译为十六进制码。换句话说,你没有把高级语言翻译为低级语言的编译器上的烦恼,汇编器仅仅把汇编代码转化为原始数据。 本章将讨论一些用来运算,位操作等的伪代码。还有跳转指令,比较等伪代码在后面介绍。 3. 1一些基本的计算伪代码 mov 这条指令用来把一个地方移......
 ·debug常用命令    »显示摘要«
    摘要: debug常用命令 命 令......


(译)win32asm教程-6
  7.0条件跳转

.code 【程序编程相关:用.net 存储img字段

在code部分,你可以看到像这样的标签: 【推荐阅读:VB工程无法加载Report Desig

sub eax, ecx 【扩展信息:http://www.myfaq.com

mov eax, edx

cmp eax, 2

jz loc1

xor eax, eax

jmp loc2

loc1:

xor eax, eax

inc eax

loc2:

(xor eax, eax意为:eax=0)

让我们来看看这些代码:

mov eax, edx;把edx放入eax中

sub eax, ecx;eax-ecx

cmp eax, 2

这有一条新指令:cmp.cmp意为compare(比较).它能比较两个值(寄存器,内存,直接数值)并设置z-flag(零标志).零标志很像carry,也是内部标志寄存器的一位.

jz loc1

这也是条新的.它是条件跳转指令.jz=jump if zero(如果设置了零标志就跳转).loc1是一个标记指令“xor eax,eax|inc eax”内存开始处offset的标签.因而jz loc1=如果设置了零标志,跳往位于loc1的指令.

cmp eax, 2;如果eax=2设置零标志

jz loc1;如果设置了零标志就跳转

=如果eax等于2,跳往位于loc1的指令

然后有jmp loc2.这也好似一个跳转,但是是一个无条件跳转:它总是执行.上面的代码就是:

if ((edx-ecx)==2)

{

eax = 1;

}

else

{

eax = 0;

}


...   下一页
 ·注册表监控(二)    »显示摘要«
    摘要: 二、nt/2000 部分 在上一篇中我们说在9x下大家可以方便的使用vmm提供的服务hook_device_service来挂上我们的函数实现注册表的监控,那么在nt下是否可以找到类似的函数来实现相应的功能呢, 很遗憾,在微软公开的文档里并没有此部分的说明. 但方法还是有的, 就实现注册表的监控来说, nt下有两种方法, 一种是驱动级的, 另一种是应用程序级的. 在驱动部分实现监控, 通......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE