ICode9

精准搜索请尝试: 精确搜索
  • 学 Win32 汇编[31] - 结构与联合2021-04-30 12:08:00

    学 Win32 汇编[31] - 结构与联合 结构和联合分别用 struct、union 定义, 都是 ends 结束定义. 它们使用方法相同, 并可以互相嵌套; 主要区别是后者的各成员共用同一个地址.结构示例:; Test31_1.asm .386 .model flat, stdcall include windows.inc include kernel32

  • 学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等2021-04-30 12:07:43

    学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等 .IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令 ;可以使用和 C 语言类似的条判断: a == b a != b a > b a >= b a < b a <= b a && b a & b a || b !a ;还可以直接判断几个常用的标志位: CARRY? ;进位标

  • 学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等2021-04-30 12:07:22

    学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等 这里的 "串" 并不单指字符串, 包括所有连续的数据(如数组); 串指令只用于内存操作.移动串指令: MOVSB、MOVSW、MOVSD ;从 ESI -> EDI; 执行后, ESI 与 EDI 的地址移动相应的单位 比较串指令:

  • 学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP2021-04-30 12:06:56

    学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP ;INC(Increment): 加一 ;DEC(Decrement): 减一 ;NEG(Negate): 求补(求反) ;ADD(Add): 加 ;ADC(Add Carry): 带进位加 ;SUB(Subtract): 减 ;SBB(Subtract With Borrow): 带进位减 ;CMP(Co

  • 学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST2021-04-30 12:06:11

    学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST AND: 逻辑与 ;该指令会置 CF=OF=0; 其结果影响 SF、ZF、PF ;指令格式: AND r/m, r/m/i ; Test22_1.asm - 使用 AND 运算将一个数的第二、四位清零 .386 .model flat, stdcall include windows.inc includ

  • 学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、MOVZX、MOVSX2021-04-30 12:05:53

    学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、MOVZX、MOVSX 汇编指令的一般性要求: 1、两个操作数的尺寸必须一致; 2、操作数不能同为内存.MOV(Move): 最常用的数据传送指令 ;该指令不影响 EFlags ;指令格式: (其中的 r、m、i 分别表示: 寄存器、内存、立

  • 学 Win32 汇编[19]: 查看二进制等相关函数2021-04-30 12:05:24

    学 Win32 汇编[19]: 查看二进制等相关函数 在 masm32.inc 中有这样几个函数的声明:byt2bin_ex PROTO :BYTE, :DWORD wrd2bin_ex PROTO :WORD, :DWORD dw2bin_ex PROTO :DWORD, :DWORD dw2hex_ex PROTO :DWORD, :DWORD bin2byte_ex PROTO :DWORD byt2bin_ex: 从 Byte

  • 学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一2021-04-30 12:05:04

    学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一 记得刚学多线程的时候, 碰到一个结构://Delphi 的语法描述 PContext = ^TContext; _CONTEXT = record ContextFlags: DWORD; Dr0: DWORD; Dr1: DWORD; Dr2: DWORD; Dr3: DWORD; Dr6: DWORD; Dr7: DWORD;

  • 学 Win32 汇编[15]: LOOP 与标号2021-04-30 12:04:35

    学 Win32 汇编[15]: LOOP 与标号 Loop 是反复执行; 从哪反复? 这要用到 "标号"; 反复几次? 把反复的次数告诉 ECX 寄存器即可.笨办法计算 3 * 8 = 24; Test15_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc inc

  • 学 Win32 汇编[13]: 定义符号常量(=、EQU、TEXTEQU)2021-04-30 12:04:08

    学 Win32 汇编[13]: 定义符号常量(=、EQU、TEXTEQU) =、EQU、TEXTEQU 功能差不多, 它们定义的符号都将在编译前辈替换成它们指定的常量值. 相比之下 EQU 更好用些.= 举例; Test13_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc includ

  • 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS2021-04-30 12:03:50

    学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS PTR: 指定要操作的数据尺寸; Test12_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib include

  • 学 Win32 汇编[11]: 数据对齐相关的伪指令(ALIGN、EVEN、ORG)2021-04-30 12:03:38

    学 Win32 汇编[11]: 数据对齐相关的伪指令(ALIGN、EVEN、ORG) 32 位的寄存器容量是 4 字节, 如果内存中的数据都按 4*n 字节对齐, 肯定会加快吞吐速度; 但事实并非如此, 不同大小的数据可能会让寄存器别别扭扭地去处理, 从而降低了运行速度! 如果使用对齐, 就会浪费掉一些

  • 学 Win32 汇编[10]: TYPE、$、LENGTHOF、SIZEOF、TYPEDEF2021-04-30 12:03:28

    学 Win32 汇编[10]: TYPE、$、LENGTHOF、SIZEOF、TYPEDEF TYPE: 获取类型大小, 对数组是获取每个元素的大小; Test10_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.l

  • 学 Win32 汇编[9]: 子过程中的变量声明2021-04-30 12:03:11

    学 Win32 汇编[9]: 子过程中的变量声明 定义子过程的伪指令: PROC、ENDP; Test9_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includeli

  • 学 Win32 汇编[8]: 算术运算符、关系操作符、逻辑操作符、高低分离符和移位运算符2021-04-30 12:03:01

    学 Win32 汇编[8]: 算术运算符、关系操作符、逻辑操作符、高低分离符和移位运算符 算术运算符 名称 优先级 () 圆括号 1 +,- 正、负 2 *,/ 乘、除 3 MOD 取模 3 +,- 加、减 4 算术运算符示例:; Test8_1.asm .386 .model flat, stdcall include windows.inc include k

  • 学 Win32 汇编[7]: 定义字符串2021-04-30 12:02:45

    学 Win32 汇编[7]: 定义字符串 例一; Test7_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data v1 db 'ABCD

  • 学 Win32 汇编[6]: 伪指令 DUP 与数组2021-04-30 12:02:37

    学 Win32 汇编[6]: 伪指令 DUP 与数组 声明数组实例:; Test6_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data

  • 学 Win32 汇编[4]: 使用 Debug 输出测试结果2021-04-30 12:02:09

    学 Win32 汇编[4]: 使用 Debug 输出测试结果 由于 Debug 输出是使用的标准的 Win32 窗口, 所以 include 和 includelib 的文件较多. 这样建立工程时就不需要是控制台程序了, 工程建立方法: 文件 -> 新建工程 -> 工程类型: Win32 App (no res) ...PrintString: 输出字符串

  • asm2021-04-04 12:05:02

    https://blog.csdn.net/zmmycsdn/article/details/78511948   跳转指令分三类: 一、无条件跳转: JMP ;无条件跳转 二、根据CX、ECX寄存器的值跳转: JCXZ ;CX 为 0 则跳转 JECXZ;ECX 为 0 则跳转 三、根据 EFLAGS 寄存器 的 PSW 标志位 跳转, 这个太多了.根据标志位跳转的

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有