汇编
zhaofuguang
这个作者很懒,什么都没留下…
展开
-
学 Win32 汇编[1]: 选择编辑与编译工具
Win32 汇编工具主要有 MASM 和 TASM; 我选择前者, 理由是使用范围广, 便于交流.根据介绍, 我先下载了 MASM32(http://www.masm32.com/), 发现不错, 但不是我最想要的.后来找到了 RadASM(官方地址: http://www.oby.ro/rad_asm/index.html)我最终选择了 cao_cong 做的 RadASM 汉化集成包(http原创 2013-10-18 14:54:15 · 507 阅读 · 0 评论 -
Linux 汇编语言(GNU GAS汇编)区别
二、Linux 汇编语法格式绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 Intel 风格的。但在 Unix 和 Linux 系统中,更多采用的还是 AT&T 格式,两者在语法格式上有着很大的不同: 在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。例如:转载 2014-01-13 08:31:23 · 1909 阅读 · 0 评论 -
有符号数和无符号数探讨
这个问题,要是简单的理解,是很容易的,不过要是考虑的深了,还真有些东西呢。下面我就把这个东西尽量的扩展一点,深入一点和大家说说。 一、只有一个标准! 在汇编语言层面,声明变量的时候,没有 signed 和 unsignde 之分,汇编器统统,将你输入的整数字面量当作有符号数处理成补码存入到计算机中,只有这一个标准!汇编器不会区分有符号还是无符号然后用两个标准来处理,它统统当作有符号的!并且统统汇编原创 2013-10-18 14:54:20 · 423 阅读 · 0 评论 -
80x86汇编指令详解
80x86指令系统,指令按功能可分为以下七个部分。 (1) 数据传送指令。 (2) 算术运算指令。 (3) 逻辑运算指令。 (4) 串操作指令。 (5) 控制转移指令。 (6) 处理器控制指令。 (7) 保护方式指令。 3.3.1数据传送指令 数据传送指令包括:通用数据传送指令、地址传送指令、标志寄存器传送指令、符号扩展指令、扩展传送指令等。 一、通用数据传送指令 1 传送指原创 2013-10-18 14:55:27 · 4187 阅读 · 0 评论 -
c++反汇编代码分析--偷调函数
主要有两点: 一、再说C++反汇编函数调用,重点是怎样通过堆栈实现由被调用函数转到调用者 二、在 1 的基础上,在WinDbg下通过修改EIP实现如下一个功能: 有两个函数foo()和hack(),在main函数中调用foo,但是在foo执行过程中,通过修改EIP来调用hack函数,最后再回到main中foo函数的下一条语句 一、再说C++反汇编函数调用,重点是怎样通过堆栈实现由原创 2013-10-18 14:54:36 · 482 阅读 · 0 评论 -
C++反汇编代码分析--函数调用
代码如下: #include "stdlib.h" int sum(int a,int b,int m,int n) { return a+b; } void main() { int result = sum(1,2,3,4); system("pause"); } 有四个参数的sum函原创 2013-10-18 14:54:31 · 478 阅读 · 0 评论 -
汇编指令大全及标志位
一、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA 把DI,SI原创 2013-10-18 14:55:31 · 783 阅读 · 0 评论 -
串和串操作
一、概述 1)串和串操作 存储器中的地址连续的若干单元的字符或数据称为字符串或数据串。串操作指令就是用来对串中每个字符或数据进行操作的指令。 串指令既可处理字节串,也可处理字串,并在每完成一个字节(或字)的操作后,能够自动修改指针,以便执行下一个字节(或字)的操作。 串指令可完成两个存储单元之间的传送和比较操作(也只有串指令才可以)。 2)串操作的原创 2013-10-18 14:54:43 · 1736 阅读 · 0 评论 -
c++反汇编代码分析--循环结构
在此主要讨论或者验证三点:1、循环结构的反汇编代码分析2、函数中,局部变量的保存位置3、方法的返回值保存位置验证一个没有找到答案的疑问:00401029 lea edi,[ebp-48h]0040102C mov ecx,12h00401031 mov eax,0CCCCCCCCh;这段代码是在栈中开辟一个48字节大小的区域来存放局部变量原创 2013-10-18 14:54:34 · 475 阅读 · 0 评论 -
互斥锁的实现
“ 信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞在 那里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说转载 2016-06-11 16:31:41 · 1041 阅读 · 0 评论