经典汇编语言教程:10.8.2 程序段前缀的应用

10.8.2 程序段前缀的应用

了解和掌握PSP中的信息分布就是为了利用其信息。对于EXE文件,可用中断21H之功能51H获取其段地址。如:

MOVAH, 51H
INT21H;BX=PSP的段地址
MOV ES, BX
CMP byte ptr ES:[80H], 0;检查PSP的长度
JEnext

对于COM文件,因为其只有一个段,所以,可用更简单的方式来检查PSP的内容。

MOV BX, 80H
CMPbyte ptr [BX], 0;检查PSP的长度
JEnext

例10.17利用PSP中的信息来终止当前程序的运行。

解:显示解答

例10.18编写程序,显示其命令行参数信息。

解:在使用命令行时,操作系统通常允许在被装入的程序名之后附加多达127个字符(包括最后的回车符)作为其命令的参数。

本例子的目的就是要了解命令行参数的存储方法,为以后使用命令行参数作准备。

显示解答

例10.19编写一个类型于DOS内部命令TYPE的程序,该命令的使用方法如下:

……>type文件1,文件2,…

其功能是分别显示其参数文件1、文件2等内容,在显示文件内容前先显示文件名。显示完内容后,暂停,等待用户按任意键。若某文件不存在,则显示相应的提示信息。

解:为了较好地解答本题,我们可以对该问题按以下步骤来解决:

1、若命令行参数中的字符数为0,则结束本程序的运行;
2、从命令行参数中分离出一个文件名;
3、调用子程序,显示当前文件名、文件内容和等待用户按键;
4、重复步骤1~3,直到所有参数被处理完。

显示解答

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号