随笔分类 -  汇编学习

摘要:这是汇编语言基础最后一篇,以后还会更新更高级的汇编知识,并且这部分知识会应用到 逆向编程的环节,这一章介绍汇编基础--机器指令。 一个16比特位的汇编指令: opcode操作码占用3个比特位,可以表示2的3次方为8种操作 寄存器占用2个比特位,可表示2的2次方为4种可用寄存器 地址空间为2的11次方 阅读全文
posted @ 2017-04-19 16:12 恋恋风辰 阅读(12907) 评论(0) 推荐(1) 编辑
摘要:十八、字符串处理 前文介绍过字符串的处理,字符串是byte类型 的数组,现在实现一段代码,将字符串string1数据copy到字符串string2中 代码如下 通过ecx递减,将字符串string1每个字符一次copy给string2中,其中用到了ebx基址寄存器。 也可以通过esi和edi寄存器 阅读全文
posted @ 2017-04-14 20:48 恋恋风辰 阅读(1089) 评论(0) 推荐(0) 编辑
摘要:十六、数组 数组的基本表示方法 numary sdword 2,5,7 numary数组中有三个元素,为sdword类型,分别为2,5,7 empary sdword ?, ?,? empary数组为sdword类型元素,未初始化。 如果数组元素很多可通过 zeroary sdword 100 du 阅读全文
posted @ 2017-04-12 17:48 恋恋风辰 阅读(854) 评论(0) 推荐(0) 编辑
摘要:十三 过程 汇编语言的过程可以被理解为方法,过程调用采取如下形式 call pname pname为过程名,call为调用指令 pname过程的格式为 proc 告知编译程序过程pname的开始,endp告诉编译程序过程pname的结束。ret指令表明何时返回到调用程序中, ret和高级语言retu 阅读全文
posted @ 2017-04-07 21:11 恋恋风辰 阅读(1398) 评论(0) 推荐(0) 编辑
摘要:八、逻辑运算指令 数字在计算机中以二进制存储,每个位数字为0或者1,当两个二进制数字进行逻辑按位&,逻辑按位|,逻辑异或^操作, 可以采用汇编语言提供的逻辑运算指令and,or, xor,not等指令。 and指令: C语言&操作,将0110&1101得出结果为0100 C语言代码为 汇编语言高级指 阅读全文
posted @ 2017-04-04 15:17 恋恋风辰 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:六、选择结构 if-then结构 C语言版本 MASM汇编 cmp指令,该指令用于比较两个参数大小 cmp mem, imm 比较内存mem和立即数imm大小 cmp reg, imm 比较寄存器reg和立即数imm大小 cmp reg, mem 比较寄存器reg和内存mem大小 cmp mem, 阅读全文
posted @ 2017-03-31 18:33 恋恋风辰 阅读(3159) 评论(0) 推荐(0) 编辑
摘要:一:变量类型 汇编语言变量基本类型如下: sdword :表示32位整数 dword:表示32位无符号整数 sword:表示16位整数 word:表示16位无符号整数 sbyte:表示8位整数 byte:用于表示字节,大小为8位 变量的表示和定义: C语言中 int num3 = 5; 汇编中 nu 阅读全文
posted @ 2017-03-27 16:11 恋恋风辰 阅读(2612) 评论(0) 推荐(0) 编辑
摘要:下载dosbox,并解压安装 下载地址: http://pan.baidu.com/s/1eRJbJAq 默认安装到C:\Program Files (x86)\DOSBox-0.74 安装成功后,双击该目录下DOSBox 0.74 Options.bat文件,弹出配置选项文本文档, 找到[auto 阅读全文
posted @ 2016-12-12 17:43 恋恋风辰 阅读(1320) 评论(0) 推荐(1) 编辑