18、汇编语言中的程序设计与条件处理

汇编语言中的程序设计与条件处理

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值