汇编
小大小丑
小丑
展开
-
80X86寻址方式总结
80X86寻址方式总结转载 2011-01-19 18:01:00 · 1971 阅读 · 0 评论 -
X86汇编 伪指令
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行,它只是用来告诉编译器进行相关的编译工作。看下面代码:assume cs:codesgcodesg segment MOV AX, 0123H转载 2012-02-07 21:43:35 · 3265 阅读 · 0 评论 -
汇编lea 指令与 mov 指令
http://www.cnitblog.com/textbox/articles/51912.html比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub esp, 4 现在栈上就有了4各字节的空间,这就是你的局部变转载 2012-03-12 21:22:54 · 5207 阅读 · 0 评论 -
Win32汇编的 PTR, OFFSET, ADDR
http://tech.ddvip.com/2010-04/1270705496150170.htmlPTR: 指定要操作的数据尺寸OFFSET: 获取全局变量或标号的偏移地址ADDR: 类似 offset 也是获取变量的地址(局部变量的地址只能用ADDR来获取) PTR: 指定要操作的数据尺寸; Test12_1.asm .386 .model flat, s转载 2012-03-12 20:18:45 · 2303 阅读 · 0 评论 -
罗云彬win32汇编教程笔记 子函数的声明, 定义与调用
在主程序中用call指令来调用子程序。 Win32汇编中的子程序也采用堆栈来传递参数,这样就可以用invoke伪指令来进行调用和语法检查工作。一. 子程序的定义子程序的定义方式如下所示。子程序名 proc [距离][语言类型][可视区域][USES 寄存器列表][,参数:类型]...[VARARG] local 局部变量列表 指令子转载 2012-03-16 11:56:51 · 3959 阅读 · 0 评论 -
8086CPU的栈操作和PUSH与POP
一. 栈的执行过程下图:该图注意如下:1. 任意时刻, SS:SP指向栈顶元素SS:存放栈的段地址;SP:存放栈的偏移地址;2. 栈底的地址大.3. 栈是空的是什么意思?例如: 将10000H----1000FH这段空间当作栈, 初始状态栈是空的, 此时, SS=1000H, 那么SP= ?a. 栈底地址大.b. 任意时刻, SS:SP指向栈顶元素所以转载 2012-03-19 19:46:28 · 9666 阅读 · 0 评论 -
SS, SP, BP 三个寄存器
SS, SP, BP 三个寄存器SS:存放栈的段地址;SP:堆栈寄存器SP(stack pointer)存放栈的偏移地址;BP: 基数指针寄存器BP(base pointer)是一个寄存器,它的用途有点特殊,是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这些数据或转载 2012-03-19 20:27:11 · 29441 阅读 · 1 评论 -
汇编字符串处理指令 一
http://www.cnblogs.com/JCSU/articles/2137802.html一、字符串处理指令(1) lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI(CLD递增, STD递减)(2) stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI(CLD递增, STD递减)转载 2012-04-05 20:13:24 · 2851 阅读 · 0 评论 -
汇编字符串处理指令 二
http://zzc1684.iteye.com/blog/1297417这里的 "串" 并不单指字符串, 包括所有连续的数据(如数组); 串指令只用于内存操作. --------------------------------------------------------------------------------移动串指令: MOVSB、MOVSW、MOVSD ;从 ESI转载 2012-04-05 20:27:25 · 1399 阅读 · 0 评论 -
汇编字符串处理指令 三
http://bdxnote.blog.163.com/blog/static/8444235201062084132551/ 字符串操作指令的实质是对一片连续的存储单元进行处理,这片连续的存储单元由隐含指针DS:SI或ES:DI来指定;字符串操作指令可对内存单元按照字节、字、双字进行处理,并能根据操作对象的字节数使变址寄存器SI/DI增加或减少1、2、4字节;规定如下:A.当转载 2012-04-05 20:43:56 · 2254 阅读 · 0 评论 -
汇编的寻址方式
指令操作数的寻址方式一些概念 DISP/16位:AX(累加器),BX(基侄寄存器),CX(计数器),DX(数据与地址寄存器),SP(堆栈指针),BP(基址指针),SI(源变址器),DI(目的变址器) DISP/8位:AH(高8位),AL(低8位),BH,BL,CH,CL.DH,DL IP指令指针,存放代码段中的偏移地址;EA偏移地址,段内相对地址,有效地址 CS代码段,转载 2012-04-06 12:59:32 · 1478 阅读 · 0 评论 -
Call指令与ret指令
一. call指令段内转移CPU执行call指令时,进行两步操作:1、将当前的IP或CS和IP压入栈中;2、转移;call指令不能实现短转移。与jmp指令实现转移的原理相同。格式:call 标号(把当前IP压栈后, 转到标号处执行指令)a. (SP) = (SP) - 2 ((SS) * 16 + SP) = (IP)b. (IP) = (IP) +转载 2012-03-20 13:15:40 · 4207 阅读 · 0 评论 -
汇编的Enter, leave, return 指令
enter的用法:enter 8, 3 ;就是申请8个存储单元(在堆栈中),特权为3http://www.cnblogs.com/keepfocus/archive/2011/09/15/2176925.html1. enter等价于:push ebpmov ebp, esp在函数的入口时常用。ENTER n 申请局转载 2012-03-21 13:08:02 · 8141 阅读 · 0 评论 -
Debug常用指令
R ---- 查看 改变CPU寄存器内容 D ---- 查看内存中的内容E ---- 改写内存中的内容U ---- 将内存中机器指令翻译汇编指令T ---- 执行一条机器指令A ---- 以汇编指令格式写入一条机器指令 1 r 查看、修改寄存器内容 r 寄存器名/或 r IP :寄存器新的值(在r查看已修改)2 d 查看内存中的内容 格式:转载 2012-02-07 21:09:36 · 865 阅读 · 0 评论 -
80X86寄存器介绍
80X86寄存器介绍 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX)(又叫通用寄存器)2个变址和指针寄存器(ESI和EDI)2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器数据寄存器主要用来保存操作数和运算结转载 2011-01-19 17:59:00 · 1278 阅读 · 0 评论 -
masm.exe 与 link.exe 的参数
下面介绍宏汇编译器MASM5.0的使用: 命令格式:MASM [/options] [source(.asm)],[out(.obj)],[list(.list)],[cref(.cfr)][;] /options: 可选的命令,由“/”引导,利用命令“MSAM /HELP”可查看命令选项及其说明 source(.asm): 指定源程序,缺省的扩展名为ASM out(转载 2012-01-11 20:41:55 · 6191 阅读 · 0 评论 -
BCD码
BCD码原创 2011-03-04 14:40:00 · 3366 阅读 · 0 评论 -
操作符offset
操作符offset原创 2011-03-04 17:44:00 · 1839 阅读 · 0 评论 -
了解寄存器: EBP寄存器
了解寄存器: EBP寄存器转载 2011-02-23 21:51:00 · 5954 阅读 · 0 评论 -
了解寄存器:ESI EDI变址寄存器
了解寄存器:ESI EDI变址寄存器转载 2011-02-23 22:43:00 · 33298 阅读 · 0 评论 -
Win32汇编 API的调用
Win32汇编 API的调用转载 2011-04-16 11:04:00 · 7585 阅读 · 0 评论 -
用C/C++实现SMC动态代码加密技术 .
http://blog.csdn.net/miaolingshaohua/article/details/4977804 摘要:所谓SMC(Self Modifying Code)技术,就是一种将可执行文件中的代码或数据进行加密,防止别人使用逆向工程工具(比如一些常见的反汇编工具)对程序进行静态分析的方法,只有程序运行时才对代码和数据进行解密,从而正常运行程序和访问数据。计算机病毒通常也会采用S转载 2011-07-02 12:00:36 · 1512 阅读 · 0 评论 -
Win32汇编中资源的创建与编辑
很简单, 就是用VC6 中 File | New | File | Resource Script按步骤来, 创建后VC将生成rc文件 并自动生成 resource.h另外,用Visual C++生成的.rc文件总是包含了很多VC自己的头文件,如果将它们去掉,下次就无法再用VC打开;如果不去掉这些多余的信息,那么用Rc.exe编译的时候就要把所有需要的头文件拷贝过来,将源程序和别人交流转载 2011-11-08 21:24:13 · 1095 阅读 · 0 评论 -
X86 汇编编译连接的简单步骤
1. 环境配置如下: http://blog.csdn.net/cay22/article/details/7192703 2. 编写代码保存(例如: C:\AsmCode\hello.asm)DATAS SEGMENT STRING DB 13,10,'Hello World!',13,10,'$'DATAS ENDSCODES SEGMENT原创 2012-01-11 10:26:47 · 2033 阅读 · 0 评论 -
把某个PE文件里的DOS Stub程序分离出来
http://hi.baidu.com/sageking2/blog/item/c653a23dfe2bfae73c6d9715.html把某个PE文件里的DOS Stub程序分离出来正常PE文件格式会有一个Dos Stub块,事实上就是一个DOS下的*.exe程序。当我们拿一个Win32程序跑到DOS系统下运行就会执行这个程序。 先拿十六进制工具WinHex打开一个De转载 2012-01-11 15:31:57 · 2397 阅读 · 0 评论 -
VC中改变PE文件中Dos Stub程序(显示This program cannot be run in DOS mode)那一段程序.
VC中改变PE文件中Dos Stub程序(显示This program cannot be run in DOS mode)那一段程序.1. 先做一个纯DOS下的dos16.exe, (masm5.0编译连接)2. 然后做一个window下的win32.exe (VC6.0编译连接)3. 在Vc++菜单|project|project|settings|link|projext转载 2012-01-11 14:53:10 · 16057 阅读 · 0 评论 -
汇编资源地址
// x86汇编 王爽老师 在线教程http://wenku.baidu.com/view/806a4c274b35eefdc8d333bb.html?from=related&hasrec=1 // 在线手册http://www.51chm.org/sitemap/asm.shtml // 王爽 汇编教程的书上的代码http://hi.baidu.com/ch3141原创 2011-01-20 11:59:00 · 994 阅读 · 0 评论 -
X86汇编在windows上的环境配置
对于X86汇编的其实也没什么环境配置, 就是使用masm.exe了直接下载 masm5.0 解压 配置环境变量(方便cmd使用)就是了. http://download.csdn.net/detail/cay22/4014341 现在有masm6.11 没试过下载地址如下:http://download.csdn.net/detail/cay22/4014346原创 2012-01-11 09:54:01 · 2504 阅读 · 0 评论 -
原码, 补码, 反码
(1)原码表示法 原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用1表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。例如,X1 = +1010110X2 = -1001010其原码记作: [X1]原 =[+1010110]原 = 01010110 [X2]原 =[-1001010]原 = 11001010原码表转载 2012-04-12 21:52:35 · 1390 阅读 · 0 评论