C常用语句 汇编对照表
backup
函数栈初始化
00B92340 push ebp
00B92341 mov ebp,esp
00B92343 sub esp,0E4h
00B92349 push ebx
00B9234A push esi
00B9234B push edi
00B9234C lea edi,[ebp-0E4h]
00B92352 mov ecx,39h
00B92357 mov eax,0CCCCCCCCh
00B9235C rep stos dword ptr es:[edi]rep:执行后边的语句ecx遍stosw:将eax值写入edi指向地址, edi地址加4
If汇编对照
if (i > 0 && i < 1)
008749B5 cmp dword ptr [i],0
008749B9 jle disifelse+3Ch (08749CCh)
008749BB cmp dword ptr [i],1
008749BF jge disifelse+3Ch (08749CCh)
{
008749CA jmp disifelse+56h (08749E6h)
}
else if (i > 10)
008749CC cmp dword ptr [i],0Ah
008749D0 jle disifelse+4Dh (08749DDh)
{
008749D8 mov dword ptr [i],eax
}
else
008749DB jmp disifelse+56h (08749E6h)
{
008749DD nop
}
..........................................
CMP 条件
jle <下一个分支>
else if 和 else 开始处都有一个无条件跳转指令,阻止前面的分支结束后直接直接进入此分支
Switch汇编对照
Imm(,r0,r)
switch (c)
00343D35 mov eax,dword ptr [c]
00343D38 mov dword ptr [ebp-0D0h],eax
00343D3E cmp dword ptr [ebp-0D0h],0
00343D45 je diswitch+42h (0343D52h)
00343D47 cmp dword ptr [ebp-0D0h],1
00343D4E je diswitch+4Dh (0343D5Dh)
00343D50 jmp diswitch+56h (0343D66h)
{
case 0:
00343D52 nop
break;
00343D5B jmp diswitch+56h (0343D66h)
case 1:
00343D5D nop
break;
default:
break;
}
.....................................................
switch 不用于判断大小,所有都是je,分别跳转到每个case处,最后一个无条件跳转到default处
While循环汇编对照表
t = test-expr
if !t:
goto done
do ...while
while (_sum > 0)
013A3D05 cmp dword ptr [_sum],0
013A3D09 jle diswhile+36h (013A3D16h)
{
_sum--;
013A3D0B mov eax,dword ptr [_sum]
013A3D0E sub eax,1
013A3D11 mov dword ptr [_sum],eax
}
013A3D14 jmp diswhile+25h (013A3D05h)
.................................
A:CMP <循环变量>,<限制变量>JLE <循环外>(循环体)
Do-While循环汇编对照
Loop:
body_statement
t= test-expr
if t:
goto loop
do {
_sum++;
00971AB5 mov eax,dword ptr [_sum]
00971AB8 add eax,1
00971ABB mov dword ptr [_sum],eax
} while (_sum < 100);
00971ABE cmp dword ptr [_sum],64h
00971AC2 jl disdo+25h (0971AB5h)
......................................
(循环体)
CMP <循环变量>,<限制变量>
JL <循环起点>
For循环汇编对照
for init-expr;test-expr;update-expr:
body-statement
转换为while
init-expr
while test-expr:
body-statement
update-expr
for (int i = 0; i < 50; i++)
00B91AB5 mov dword ptr [ebp-14h],0
00B91ABC jmp disfor+37h (0B91AC7h)
00B91ABE mov eax,dword ptr [ebp-14h]
00B91AC1 add eax,1
00B91AC4 mov dword ptr [ebp-14h],eax
00B91AC7 cmp dword ptr [ebp-14h],32h
00B91ACB jge disfor+48h (0B91AD8h)
{
_sum += i;
00B91ACD mov eax,dword ptr [_sum]
00B91AD0 add eax,dword ptr [ebp-14h]
00B91AD3 mov dword ptr [_sum],eax
}
00B91AD6 jmp disfor+2Eh (0B91ABEh)
............................
MOV <循环变量>,<初始值>
JMP B
A:( 修改循环变量)...
B: CMP <循环变量>,<限制变量>jge (跳出循环)循环体JMP A
C常用语句 汇编对照表相关推荐
- VBA经典常用语句400句
VBA经典常用语句400句 定制模块行为 (1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有 ...
- python基础常用语句-Python基本语句
在学习W3Cschool python高级教程之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起 ...
- python 语言-Python语言的一些基本常用语句
在学习玩蛇网python教程高级篇之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起方便大家参考 ...
- CSDN的Markdown编辑器常用语句
CSDN的Markdown编辑器还是挺好用的,比那个富文本编辑器用起清爽得多,那个富文本编辑器常常是一个换行符留很宽的距离,而且插入图片.代码等都没有Markdown编辑器方便.Markdown编辑器 ...
- legend2---开发常用语句
legend2---开发常用语句 一.总结 一句话总结: 其实敲代码都是很类似的,比如ajax,模型等等,敲代码就是一个由生到熟的过程 1.ajax? $.post("{:url('broa ...
- mysql修改字段名称_MySQL增删改查的常用语句汇总
以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop database 库名; 3.使用数据 ...
- SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用 一.引言 在移动开发中,通常会用到一些小型的数据库进行数据管理.SQLite是一款十分小巧便捷的数据库,在iOS ...
- MongoDB常用语句
记录一下MongoDB常用语句,顺带与SQL做个简单的对比. 1.查询(find) (1)查询所有结果 select * from articledb.article.find() (2)指定返回哪些 ...
- mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)
MySQL常用的语句语法 注意:1. | 符号用来指出几个选中中的一个,因此NULL | NOT NULL 表示给出null 或 not null 2.包含在方括号中的关键字或子句是可选的(如 [li ...
最新文章
- Expression Blend实例中文教程(2) - 界面快速入门
- “xxxx“.zip:这个压缩文件格式未知或者数据已经被损坏,打不开压缩文件,总出现这个提示的解决方法
- 变电站计算机在线监控系统,变电站环境在线监测系统
- 喵喵的华为DevCloud使用指南(3)-项目构建和部署
- 【jQuery笔记Part1】08-jQuery操作css-获取设置样式
- Android开发系列(十七):读取assets文件夹下的数据库文件
- 978. 最长湍流子数组
- java游戏抽卡_怎么处理游戏中抽卡概率算法,每个卡有数量限制,抽完概率也会变。...
- [转载] python将图片进行base64编码, 解码
- java读取串口设备信息_Java--串口之间的通信及扫描枪的读取
- 浏览器中加载CNN进行手写数字识别,并部署到Gitee Page
- 关于百度地图(二):只需要定位,不需要地图(什么?回调混乱?一招解决!)
- idea类注释模板快捷键设置
- php-fpm 开机启动,mac系统,php-fpm加入开机启动项
- 详述TCP协议中重要的知识点
- Isaac SDK Sim 环境
- 机械硬盘显示容量0字节要如何办啊
- 远指针,近指针,巨指针
- 大型电子商务平台架构
- STM32 经过TM1637驱动四位数码管