获取ZF值

获取ZF的值, 可用SETE指令(zf值放到al中), 也可以用 JNZ   JNE 跳转指令间接获得, 请看下面这段代码:

char *s1 = "123";
char *s2 = "1234";

__asm
{
    xor al, al
    mov edi, s1
    mov ecx, -1
    repnz scasb
    not ecx         //取得字串s1的长度(包括末尾的空字符‘\0‘)
    mov edi, s1
    mov esi, s2
    repz cmpsb
   
    jnz ANOTHER
    mov eax, 1  //用 1 表示s1与s2相同
    jmp END
ANOTHER:
    mov eax, 0  //用 0 表示 s1 与 s2 不同   
END:
}

注意: 用ECX是否为0判断两字串是否相同, 不准确, 这个例子中当repe cmpsb循环结束后, ECX等于0, 但两字串并不相等, 此时ZF==0.
         所以, 要判断两字串是否相等, 要看ZF是否一直为1, 不必看ECX

时间: 2024-08-10 23:30:10

获取ZF值的相关文章

20150218【改进】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 一.使用struct pin_desc 管理按键的值 1.定义结构体 2.将前面我们申请中断时写的(void *)1修改为 &pins_desc[n] 在ioctl中,设置中断中修改 在key_release中释放中修改 3.在中断程序中利用我们定义的struc pins_desc判断并得到按键的值 4.得到按键键值后,唤醒程序,在read函数中返回键值 附上驱动源程序: 1 /***********

20150218【改进信号量】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进信号量]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 前面我们使用POLL查询方式来实现GPIO-IRQ按键中断程序 这里我们来使用信号量,让我们的驱动同时只能有一个应用程序打开. 一.首先在前面代码的基础上来一个简单的信号 1.定义一个全局的整形变量 2.在打开函数中,每次进入打开函数canopen都自减1, 3.当我们不使用时,在realease 中canopen自加1 4.这样就实现了一个简单的信号量,我们编译,测试 当我们使用两个应用程序来

20150218【改进Poll定时查询】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进Poll定时查询]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 按键驱动程序中,如果不使用read函数中使程序休眠的,而是还是使用查询方式的话,可以使用Poll函数,来控制一定时间内,如果有按键发生,则立即返回键值. 同时,poll也可以同时监控多个(比如说按键,鼠标,等)一旦发生事件则立即返回. 我们在linux查看帮助: 从帮助中的说明得知, poll, ppoll - wait for some event on a file descrip

快学Scala 第五课 (构造映射,获取映射值,更新映射值,迭代映射,与Java互操作)

构造映射: val score = Map[String, Int]() val score1 = HashMap[String, Int]() val value1 = Map[String, Int]("aa" -> 1, "bb" -> 2) val value2 = Map[String, Int](("aa", 1), ("bb", 2)) 获取映射值: println(if(value2.contain

工作随笔——Java调用Groovy类的方法、传递参数和获取返回值

接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码如下: # TestGroovy.groovy 定义testC方法,传入3个参数,返回处理后的数据 def testC(int numA, int numB, int numC) { "传入参数:" + numA + numB + numC + "计算之和为:" + (

IE10、火狐浏、谷歌浏览器 KindEditor无法获取textarea值

http://e-mailwu.blog.163.com/blog/static/651040362013311160913/ 在IE10.火狐浏览器.谷歌浏览器下后台KindEditor在线编辑器无法获取textarea值. 解决办法如下: (测试版本号: 4.0.6 (2012-03-18)) 方法一: <link rel="stylesheet" href="WebEditor/themes/default/default.css" /><l

C#配置文件中怎么通过key来获取value值

public static string AppConfig() { return System.IO.Path.Combine(Application.StartupPath, "BlackBoxForms.exe.config"); } /// <summary> /// 根据Key获取Value值 /// </summary> /// <param name="appKey">Key</param> /// &l

TinyOS学习 - 射频层析成像之获取RSSI值

在无线传感网络下,最重要的除了系统就是节点了. 我用的节点是Telosb的节点.然后这个节点下的获取无线的芯片是CC2420 所以我要获取RSSI值的话需要使用它. 先说下获取RSSI值的需求:我在做人的射频层析成像实验,需要追踪人的移动轨迹,而人身上是不戴任何设备的,所以我用这个方法来获取. rssi值是最重要的属性. 第一种:在例子代码里实际上有个例子程序是获取rssi值的,方法是从寄存器内读取,但是这里不适合用来定位,不说了. 第二种:在发送包的时候定义消息包 typedef nx_str

后台数值往前台传值,能获取到值,页面显示不出来的问题

今天遇到一个很头疼的问题,就是后的集合转成json后,网前台传值,可以获取到值,但是页面显示不出来.查了好多的资料都没有得到解决. 查看了资料后发现,ajax少写了一个属性就是dataType:"json"这个属性,这个属性是返回值的格式,这个属性必须要写的.朋友们写代码的时候一定要注意,不要大意. 这些小细节问题很难发现. 1 @RequestMapping("manger") 2 @ResponseBody 3 public String selectAllUs