![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
文章平均质量分 53
ahoo110
这个作者很懒,什么都没留下…
展开
-
movsx-movzx(转)
2.5.2.3 符号扩展与零扩展指令 2012-09-29 14:12:46 我来说两句 收藏 我要投稿 本文所属图书 > x86/x64体系探索及编程 本书是对Intel手册所述处理器架构的探索和论证。全书共五大部分,从多个方面对处理器架构相关的知识进行了梳理介绍。书中每个章节都有相应的测试实验,所运行的实验例子都可以在真实的机器上执行。通过阅读本书,… 立即去当当网订购转载 2016-06-02 13:03:09 · 1345 阅读 · 0 评论 -
裸函数_与调用约定
注意1:int __declspec(naked) __fastcall Test_fastcall(int x,int y,int m,int n) 顺序不能乱原创 2016-06-02 23:37:46 · 711 阅读 · 2 评论 -
调用约定
常见的几种调用约定 调用约定 参数压栈顺序 平衡堆栈__cdecl 从右至左入栈 调用者清理栈__stdcall 从右至左入栈 自身清理堆栈__fastcall ECX/EDX传送前两个 自身清理堆栈 剩下:从右至左入栈 你希望很快,所以定义在2个参数内,参数超过2个,就不是很快了,也是用堆原创 2016-06-02 23:12:31 · 360 阅读 · 0 评论 -
分支语句判断
分支语句的反汇编识别 一、IF语句1.概述如果看到指令 cmp(准确的说是映像标志位的寄存器) jxx 很有可能就是if语句。只有小于等于的,就跳转,跳转意味这if后面的代码不执行。一旦表达式成立,就跳 汇编翻译c语言是反的。 因为c语言里是条件成立就执行,汇编说的是跳转的条件,条件成立就跳走了,嗲代码不执行。 逻辑是反的。如果单纯的要把指令对上,会累死人的,要了原创 2016-06-05 21:28:48 · 1345 阅读 · 0 评论 -
关于一个call的分析2
关于一个简单call的分析2一、汇编代码push ebpmov ebp,espsub ebp,0x48push ebxpush esipush edilea edi,[ebp-0x48]mov ecx,0x12 mov eax,0xccccccccrep stos dowrd ptr ds:[edi] mov eax,dowrd ptr ds:[ebp+8]cmp eax,原创 2016-06-05 21:27:04 · 445 阅读 · 0 评论 -
数据类型1_简介&类型转换
数据类型1_简介&类型转换1、c语言中的数据类型 整数类型 基本类型 浮点类型 数组类型 构造类型 结构体类型原创 2016-06-05 17:33:44 · 774 阅读 · 0 评论 -
关于call有几个参数
关于call有几个参数学习调用约定:逆别人程序的时候,明明有参数,但是没发现push。Cdecl:默认的调用约定。int __cdecl printf (43: const char *format,44: ...45: )做逆向的时候,根据什么分析别人函数有几个参数呢,最靠谱的就是一行一行分析,结合ret 以及函数前面数据。一、一般情况:原创 2016-06-05 17:19:02 · 3087 阅读 · 0 评论 -
数据类型2_浮点类型
数据类型2_float1、浮点类型:float、double 120/2 0 60/2 0 30/2 0 15/2 1原创 2016-06-04 12:17:06 · 560 阅读 · 0 评论 -
数据结构---浮点数的存储&无符号数
1、c语言中的数据类型原创 2016-06-03 06:39:49 · 1832 阅读 · 3 评论 -
内联汇编
1. 内联汇编原创 2016-06-02 23:45:57 · 602 阅读 · 0 评论 -
标志寄存器
标志寄存器 Jcc决定了cpu怎么走,标志寄存器决定了jcc。Cpza(0246)stdo 如果有两个不会的问题,先搞定一个,不会一起搞定两。(1)进位标志位CF(carry flag):如果运算结果的最高位产生了一个进位或借位,那么 研究位的时候要先确定数据宽度。77A51314 B8 FFFF5555 mov eax,0x5555FFFF :eax == 0x55原创 2016-06-03 09:04:17 · 559 阅读 · 1 评论 -
汇编语言 标志位介绍
http://blog.csdn.net/iamduoluo/article/details/6932429 一、运算结果标志位1、进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变C转载 2016-06-03 08:16:00 · 1129 阅读 · 0 评论 -
寻址方式
内存Mov eax,dword ptr ds:[ecx + eax*2] :[]里面就是地址编号。1 寻址公式一:[立即数](1)读取内存的值:mov eax,dword ptr ds:[0x13FFC4]mov ebx,dword ptr ds:[0x13FFC8] (2)向内存中写入数据: mov dword ptr ds:[0x13FFC4],eax mo原创 2016-06-03 07:35:37 · 629 阅读 · 0 评论 -
汇编指令
1 adc(carry)指令:带进位的加法77A5134C 10C8 adc al,cl :al==1,cl==2,c位==1, al==477A5134E 8015 40F31B00>adc byte ptr ds:[0x1BF340],0x2 77A5134E 【0x0x1BF340】==000008 ,c位==1, 77A5134E原创 2016-06-03 07:14:31 · 3213 阅读 · 2 评论