汇编语言中的过程与条件处理
1. 汇编语言中的输入输出与过程
在汇编语言应用中,为了更方便地处理输入输出,引入了链接库。例如,Irvine32链接库包含了许多实用的过程,大部分过程可通过相关表格查看,最新的完整列表可在特定网站(www.asmirvine.com)获取。该库的测试程序展示了多种输入输出功能,如生成并显示随机数列表、寄存器转储、内存转储,还能以不同格式显示整数以及进行字符串的输入输出。
1.1 运行时栈
运行时栈是一个特殊的数组,用于临时存储地址和数据。ESP寄存器保存着栈中某个位置的32位偏移量。栈是一种后进先出(LIFO)结构,即最后放入栈的值会最先被取出。
- PUSH操作 :先递减栈指针,然后将源操作数复制到栈中。
- POP操作 :先将ESP指向的栈内容复制到16位或32位的目标操作数,然后递增ESP。
此外,还有一些特殊的栈操作指令:
- PUSHAD :将32位通用寄存器压入栈。
- PUSHA :将16位通用寄存器压入栈。
- POPAD :将栈中的内容弹出到32位通用寄存器。
- POPA :将栈中的内容弹出到16位通用寄存器。
- PUSHFD :将32位EFLAGS寄存器压入栈。
- POPFD :将栈中的内容弹出到EFLAGS寄存器。
超级会员免费看
订阅专栏 解锁全文
3958

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



