随笔分类 - 汇编--32位汇编
第十章 结构和宏
摘要:10.1 结构 10.1.1 定义结构 name STRUCT field-declarations name ENDS Employee STRUCT IdNum BYTE "000000000" LastName BYTE 30 DUP(0) Years WORD 0 SalaryHistory
第九章 字符串和数组
摘要:9.2 基本字符串操作指令 32 位模式中,下表中的每条指令都隐含使用 ESI、EDI,或是同时使用这两个寄存器来寻址内存。 指令说明 MOVSB、MOVSW、MOVSD 传送字符串数据:将 ESI 寻址的内存数据复制到 EDI 寻址的内存位置 CMPSB、CMPSW、CMPSD 比较字符串:比较分
第五章--过程
摘要:5.3 本书附带的链接库 Irvine32.lib 过程说明 CloseFile 关闭之前已经打开的磁盘文件 Clrscr 清除控制台窗口,并将光标置于左上角 CreateOutputFile 为输出模式下的写操作创建一个新的磁盘文件 Crlf 在控制台窗口中写一个行结束的序列 Delay 程序执行
第八章 高级过程
摘要:8.2 堆栈框架 汇编中,函数传参分为寄存器参数和堆栈参数(值参数和引用参数) 8.2.1 堆栈参数 传递值 TITLE test ;假设等价函数调用为int sum = AddTwo(val1,val2); INCLUDE Irvine32.inc AddTwo PROTO,a:DWORD,b:D
第七章 整数算术指令
摘要:7.2 移位和循环移位指令 7.2.1 算术移位和逻辑移位 逻辑移位:以0填充移出位,最低的数据移动进入进位标志。 算术移位:以符号位填充。 7.2.2 SHL指令和SHR指令 逻辑左移,应用在快速乘法。 逻辑右移,应用在快速除法 7.2.4 SAL和SAR 算术左移和算术右移 应用:有符号数的除法
第六章 条件处理
摘要:6.1 布尔和比较指令 6.2.4 XOR指令 对 16 位整数来说,可以通过将其高字节和低字节进行异或运算来检测数的奇偶性: 将每个寄存器中的置 1 位(等于 1 的位)想象为一个 8 位集合中的成员。XOR 指令把两个集合交集中的成员清 0,并形成了其余位的并集。这个并集的奇偶性与整个 16 位
第五章 过程
摘要:5.4 堆栈操作 5.4.2 POP和PUSH指令 PUSHFD 指令把 32 位 EFLAGS 寄存器内容压入堆栈,而 POPFD 指令则把栈顶单元内容弹出到 EFLAGS 寄存器: PUSHAD 指令按照 EAX、ECX、EDX、EBX、ESP(执行 PUSHAD 之前的值)、EBP、ESI 和
对VS2019进行32位汇编环境配置
摘要:1.库文件(很重要) 用我这一份就行:https://www.lanzous.com/i6364hg 2.VS依赖库 打开VS2019,选择桌面向导 配置项目时,选择新项目。 选择生成依赖项 选中masm 3.asm项目配置 新建一个C++的源文件,将后缀改为asm 选择上面的项目,再选择"项目名"
第四章 数据传送,寻址和算术运算
摘要:4.1 数据传送指令 4.1.2 操作数类型 操作数有 3 种基本类型: 立即数——用数字文本表达式 寄存器操作数——使用 CPU 内已命名的寄存器 内存操作数——引用内存位置 直接内存操作数:变量名引用的是数据段内的偏移量。 4.2 加法和减法 4.2.4 NEG指令 NEG:通过将数字转换为对应
第三章 汇编语言基础
摘要:3.2整数相加减 3.3 汇编链接执行周期 3.4 定义数据 数据定义语法: [name] directive initializer [,initializer]... 下面是数据定义语句的一个例子: count DWORD 12345 也可以用 3.4.10 为AddSub添加变量 3.4.12