if&memcmp指令
2009-03-31 15:31
190 查看
int flag;
int cmp_1,cmp_2;
.........
code
.........
/*
当cmp_1>cmp_2时,保存数据
*/
flag = memcmp(cmp_1,cmp_2,1);
if(flag)
{
//code save data;
}
在调试的时候,发现只要cmp_1!=cmp_2,都能跳转到//code save data; 里面,跟原先的流程有很大的出入,在查看汇编的时候发现
if(flag) 翻译成汇编为 CBZ指令
CBZ 在arm指令的意思是只要不是0,都执行if括号里面的code。
因此在使用if语句判断的时候,千万注意此情况的出现。if(cmp_1>cmp_2)
memcmp 是从首地址开始比较的,如果高为放在高地址,则比较有问题!!!!
int cmp_1,cmp_2;
.........
code
.........
/*
当cmp_1>cmp_2时,保存数据
*/
flag = memcmp(cmp_1,cmp_2,1);
if(flag)
{
//code save data;
}
在调试的时候,发现只要cmp_1!=cmp_2,都能跳转到//code save data; 里面,跟原先的流程有很大的出入,在查看汇编的时候发现
if(flag) 翻译成汇编为 CBZ指令
CBZ 在arm指令的意思是只要不是0,都执行if括号里面的code。
因此在使用if语句判断的时候,千万注意此情况的出现。if(cmp_1>cmp_2)
memcmp 是从首地址开始比较的,如果高为放在高地址,则比较有问题!!!!
相关文章推荐
- 关于c#中的预编译指令-#define、#if——&&——mono touch,去掉sdk7下uitable的行线左侧余留空白
- python中if __name = '__main__',#!/usr/bin/python 解析
- js if&else
- stl find_if && 仿函数重写比较
- >>>是否缺少 using 指令或程序集引用?-关于Asp.Net中引用类的问题。
- apache配置 <Directory> 指令
- if((c>=’A’)&&(c<=’Z’)) 判断c是否是大写字母
- Python中if __name__ == '__main__':作用
- if和if else的区别if(a>=b&&b>=c) printf("&d\n",a);
- 游戏消息效率之switch...case && if...else
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- vim 常用指令示意图
- C++中的vector&find_if
- <c:if></c:if>的用法
- vuejs4-v-if指令
- 汇编语言/C51中左移<<、右移>>指令的不同
- Vue.js学习笔记:在元素 和 template 中使用 v-if 指令
- 问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?
- find_if 仿函数错误:cannot convert 'this' pointer from 'const CActTaskData' to 'CActTaskData &'
- 作业题:闰年 if((year%4==0&&year%100!=0)||year&400==0)