简明 X86 汇编语言教程
598.28 KB
63 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
简明 X86 汇编语言教程 原创:司徒彦南 2002 年 4 月 8 日 徐远超于 2010-02-25 收集整理 2010-03-10 第 2 次补充 2010-03-25 第 3 次补充 目录 第 Ο 章 写在前面...................................................................................................................2 第一章 汇编语言简介... | ||
AI总结 | ||
### 总结
#### 可重入函数与非可重入函数
- **可重入函数**:不会使用全局变量或静态变量,保证线程安全。
- 例子:`strcpy`函数。
- **非可重入函数**:使用全局变量或静态变量,可能导致多线程环境下问题。
- 例子:`SwapChar`和`SwapChar2`函数。
#### 中断与系统调用
- **中断简介**:利用系统栈,栈操作是可重入的。
- **DOS中断**:示例`mov ax, 4c00h`和`int 21h`调用,带回错误代码。
- **Linux中断**:使用寄存器传递参数,例子`int 80h`,调用系统函数如`puts`。
#### 数据传输指令
- 用于在存储器、寄存器和I/O端口之间传送数据。
- 例子包括`mov`指令,如`mov ax, 1234h`和`mov bx, ax`。
#### 寄存器与寻址
- **寄存器结构**:16位、32位寄存器及其组合使用。
- **段偏移地址**:形成20位地址,段加1等同于偏移加16,示例地址转换。
- **练习**:将段和偏移转为20位地址,编写程序实现转换。
#### 函数调用与堆栈管理
- **调用函数**:通过压栈传递参数,使用`call`指令。
- **返回值**:通过寄存器返回,如Linux中`eax`。
- **堆栈操作**:`push`和`pop`指令示例,栈状态变化。
#### 编程实践与优化
- **实践程序**:经典`Hello, World`程序,展示数据段、代码段及执行流程。
- **优化思路**:预先计算、查表替代循环,示例`GetFactorial`函数改进。
- **汇编与高级语言**:结合使用内联汇编优化性能,注意语法和语义。
#### 结语
- **综上所述**:汇编语言在底层操作中的重要性,适合系统编程和优化。
- **展望**:后续内容将深入调试、优化和应用,包括安全和逆向工程等高级主题。 |
来源 | potato.gold |
---|
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
56 页请下载阅读 -
文档评分