- 博客(9)
- 收藏
- 关注
原创 Windows中常用的函数调用规范
参考了《汇编语言 基于x86处理器》转载请注明出处如果有错误的地方请指正,谢谢。Windows环境中有32位调用规范和64位调用规范。32位调用规范Microsoft 32位编程环境下的32位调用规范有:_fastcall、_cdecl、_stdcall。_fastcall_fastcall使用寄存器加上堆栈传参,如果参数两个或两个以下那么使用ECX或者EDX寄存器传递,参数有两个以上则放入堆栈(从右向左入栈)。调用完毕后需要手动清栈(调用者清栈)。_cdecl又称为C调用规范,采用堆栈传
2020-06-14 15:00:48
535
原创 汇编语言中常用指令对标志位寄存器的影响
参考了《汇编语言 基于x86处理器》第七版转载请注明出处如果有错误的地方请指正,谢谢。文章目录算术运算(ADD/SUB)影响标志位ADD指令SUB指令NEG指令INC/DEC指令影响标志位INC指令DEC指令布尔指令影响标志位AND指令OR指令NOT指令XOR指令TEST指令移位指令影响标志位逻辑移位(SHL/SHR)算术移位(SAL/SAR)循环移位(ROL/ROR)带进位的循环移位(RCL/RCR)双精度移位(SHLD/SHRD)乘/除法影响标志位无符号乘法(MUL)有符号乘法(IMUL)单操作数
2020-05-24 03:44:18
5963
1
原创 64位汇编中的布尔指令
多数情况下,64位模式中的64位指令与32位模式中的操作数是一样的,比如源操作数是16/8位常数,而目标操作数是64位的内存操作数或者64位的寄存器,那么目标操作数中的所有位都会受到影响。.data ;在这里声明变量 val qword 0ffffffffffffffffh;.code ;这里写自己的代码 mov rax,val; RAX=FFFFFFFFFFFF...
2020-04-29 22:53:25
492
原创 在Visual Studio调试器中显示数组
在调试期间,如果想要显示数组内容,步骤如下:选择Debug(调试)菜单 → 选择Windows (窗口)→ 选择Memory(内存) → 选择Memory 1(内存 1),然后就可以拖动内存窗口到Visual Studio工作区的任何地方。然后可以拖动内存窗口到工作区,我拖到了左下角。在内存窗口中查找定义的数组:;32位汇编程序模板 (Template).386.model flat...
2020-04-25 14:16:45
3345
原创 汇编语言中间接寻址(间接操作数)与变址寻址(变址操作数)的区别
间接寻址间接寻址就是使用寄存器作为指针,控制该寄存器的值来寻到数组中的元素,如:array byte 10h,20h,30h; 定义数组mov esi, offset array; 取数组首地址inc esi; esi指向数组第2个元素(下标为[1])上面的esi作为数组的指针,控制esi来寻到数组中的元素。变址寻址通过在原地址上增加一个寄存器、或者在原地址的基础上加上常数等方...
2020-04-24 19:11:04
3789
1
原创 MOV指令在32位汇编程序和64位汇编程序下的相同与不同之处
mov指令原则两个操作数(目标操作数和源操作数)的大小必须相同两个操作数不能同时为内存操作数(也就是不能内存 到 内存)指令指针寄存器不能作为目标操作数64位汇编程序下 32位汇编程序和64位汇编程序都依照上面的规则,语法也相同,但如果如果是将源操作数给一个32位寄存器,那么这个寄存器所在的64位寄存器的高32位会被置0例如:;64位汇编程序模板 (Template);声明...
2020-04-24 18:47:13
1805
原创 Visual Studio配置64/32位汇编程序开发环境
参考了以下文章VS2013 编写汇编程序32位汇编程序工具:VS2019创建一个新的空项目右键项目-生成依赖项-生成自定义在弹出的“Visual C++ 生成自定义文件”窗口中勾上“masm”在项目的“源文件”文件夹下右键-添加-新建项,弹出的“新建项”窗口中随便选择一个类型的文件(这里我选择的是C++文件),然后修改文件后缀名为“.asm”,最后点击“添加”。注意:默认...
2020-04-19 16:58:34
2271
1
原创 等号(=)伪指令、EQU伪指令、TEXTEQU伪指令之间的区别
这三种伪指令都是用来定义汇编语言中的符号常量,下面对它们各自的特点进行讲解等号伪指令等号伪指令用于定义整数或整数表达式的符号常量,语法为:name = expression如果“expression”为整数表达式则需要将它括起来。如:COUNT = (10 * 10),等号伪指令定义的符号常量是可以被重定义的。EQU伪指令EQU伪指令可以定义非整数,语法为:...
2020-04-19 14:15:17
5026
原创 Visual Studio生成汇编列表文件(listing file)
1.右键项目然后点击“属性”(Properties)2.在“配置属性”(Configuration Properties)下选择 Microsotf Macro Assembler,展开后选择Listing File3.修改Generate Preprocessed Source Listing 为 “是 (/EP)”,修改List All Available Information 为 ...
2020-04-18 20:02:43
2056
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人