汇编语言中的程序设计与条件处理
1. 链接库与输入输出处理
链接库的引入使得在汇编语言应用中处理输入输出变得更加容易。例如,Irvine32链接库提供了许多实用的程序,其大部分程序列于特定表格中,最新的完整列表可在相关网站获取。库测试程序展示了该库的多个输入输出功能,它能生成并显示随机数列表、寄存器转储和内存转储,还能以各种格式显示整数并演示字符串的输入输出。
2. 运行时栈
运行时栈是一个特殊的数组,用作地址和数据的临时存储区。ESP寄存器保存着栈中某个位置的32位偏移量。栈是一种后进先出(LIFO)结构,即最后放入栈的值最先被取出。
- Push操作 :先递减栈指针,然后将源操作数复制到栈中。
- Pop操作 :先将ESP指向的栈内容复制到目标操作数,然后递增ESP。
此外,还有一些特殊的指令用于操作栈:
| 指令 | 功能 |
| ---- | ---- |
| PUSHAD | 将所有32位通用寄存器压入栈 |
| PUSHA | 将所有16位通用寄存器压入栈 |
| POPAD | 将栈中的内容弹出到32位通用寄存器 |
| POPA | 将栈中的内容弹出到16位通用寄存器 |
| PUSHFD | 将32位EFLAGS寄存器压入栈 |
| POPFD | 将栈中的内容弹出到EFLAGS寄存器 |
例如,RevStr程序利用栈来反转字符串。
3. 过程
过程是使用PR
超级会员免费看
订阅专栏 解锁全文
1147

被折叠的 条评论
为什么被折叠?



