LC并联谐振选频网络.docx
《LC并联谐振选频网络.docx》由会员分享,可在线阅读,更多相关《LC并联谐振选频网络.docx(8页珍藏版)》请在冰豆网上搜索。
![LC并联谐振选频网络.docx](https://file1.bdocx.com/fileroot1/2023-6/6/32389b8d-d147-4578-a4d3-2cdd6643d027/32389b8d-d147-4578-a4d3-2cdd6643d0271.gif)
LC并联谐振选频网络
DOS系统功能调用与BIOS中断调用(转载)
DOS系统功能调用与BIOS中断调用
一、DOS系统功能调用
1、什么是DOS系统功能调用
系统功能调用是DOS为用户提供的常用子程序(80多个),可在汇编语言程序中直接调用。
这些子程序的主要功能包括:
(1设备管理(如键盘、显示器、打印机、磁盘等的管理)
(2文件管理和目录操作
(3其他管理(如内存、时间、日期等管理)
这些子程序给用户编程带来很大方便,用户不必了解有关的设备、电路、接口等方面的问题,只需直接调用即可。
2、调用方法
DOS功能调用的子程序已按顺序编号——功能号(00H~68H),其调用方法是:
(1功能号→AH
(2入口参数→指定寄存器
(3INT21H
用户只须给出以上三方面信息,DOS就可根据所给信息自动转入相关子程序执行。
3、常用的系统功能调用
(1键盘输入
1号调用——从键盘输入单个字符
调用格式:
MOVAH,1
INT21H
功能:
等待从键盘输入一个字符并送入AL。
执行时系统将扫描键盘,等待有健按下,一旦有健按下,就将其字符的ASCII码读入,先检查是否Ctrl-Break,若是,退出命令执行;否则将ASCII码送AL,同时将该字符送显示器显示。
10号调用——从键盘输入字符串
功能:
从键盘接收字符串送入内存的输入缓冲区,同时送显示器显示。
调用前要求:
先定义一个输入缓冲区
MAXLENDB100;第1个字节指出缓冲区能容纳的字符个数,即缓冲区长度,不能为0ACLENDB?
;第2个字节保留,以存放实际输入的字符个数
STRINGDB100DUP(?
;第3个字节开始存放从键盘输入的字符串。
调用格式:
LEADX,MAXLEN(缓冲区首偏移地址)
MOVAH,10
INT21H
注意:
调用时,要求DS:
DX指向输入缓冲区
【例】
DATASEGMENT
MAXLENDB100
ACLENDB?
STRINGDB100DUP(?
DATAENDS
CODESEGMENT
„„
MOVAX,DATA
MOVDS,AX
„„
LEADX,MAXLEN
MOVAH,10
INT21H
„„
CODEENDS
运行程序时,若从键盘输入“YOUARESUCESSFUL!
”(共计19个字符),则输入缓冲区MAXLEN各单元内容如下图
740this.width=740border=undefined>
缓冲区MAXLEN各存储单元内容
(2显示输出
2号调用——在显示器上显示输出单个字符
调用格式:
MOVDL,待显示字符的ASCII码
MOVAH,2
INT21H
功能:
将DL中的字符送显示器显示。
【例】显示输出大写字母A
MOVDL,41H;或写为MOVDL,'A'
MOVAH,2
INT21H
9号调用——在显示器上显示输出字符串
调用格式:
LEADX,字符串首偏移地址
MOVAH,9
INT21H
功能:
将当前数据区中DS:
DX所指向的以'$'结尾的字符串送显示器显示。
【例】在显示器上显示字符串“YOUARESUCESSFUL!
”
DATASEGMENT
STRINGDB'YOUARESUCESSFUL!
$'
DATAENDS
CODESEGMENT
„„
MOVAX,DATA
MOVDS,AX
LEADX,STRING
MOVAH,9
INT21H
„„
CODEENDS
说明:
若希望显示字符串后,光标可自动回车换行,可在定义字符串时作如下更改:
STRINGDB'YOUARESUCESSFUL!
',0AH,0DH,'$';在字符串结束前加回车换行的ASCII码0AH,0DH
[NextPage]
二、BIOS中断调用
1、什么是BIOS
BIOS的全称是ROM-BIOS——ROMBasicI/OSystem(只读存储器基本输入输出系统)。
它是一组固化到微机主板上一个ROM芯片上的子程序,主要功能包括:
(1驱动系统中所配置的常用外设(即驱动程序),如显示器、键盘、打印机、磁盘驱动器、通信接口等。
(2开机自检,引导装入。
(3提供时间、内存容量及设备配置情况等参数。
使用BIOS中断调用与DOS系统功能调用类似,用户也无须了解相关设备的结构与组成细节,直接调用即可。
三、综合举例:
简单的人机对话的实现
屏幕显示:
What’syourname?
(使用9号DOS功能调用)
用户输入:
LiPing↙(使用10号DOS功能调用)
屏幕再显示:
Hello,LiPing!
(使用9号DOS功能调用)
程序清单:
DATASEGMENT
BUFDB30
ACTLDB?
STRDB30DUP(?
MESSDB‘What’syourname?
’,0DH,0AH,‘$’
DMESSDB0DH,0AH,‘Hello,$’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
LEADX,MESS
MOVAH,9
INT21H;显示‘What’syourname?
’
LEADX,BUF
MOVAH,10
INT21H;从键盘接收用户输入的信息
MOVAL,ACTL;取得键入字符串的实际长度
CBW
MOVSI,AX
LEABX,STR
MOV[BX+SI],BYTEPTR‘!
’;在键入的字符串后加‘!
’
MOV[BX+SI+1],BYTEPTR‘$’;在‘!
’后加‘$’,以便显示
LEADX,DMESS;显示‘Hello!
’
MOVAH,9
INT21H
LEADX,STR;显示键入的字符串
MOVAH,9
INT21H
RET
MAINENDP
CODEENDS
ENDMAIN
740this.width=740border=undefined>
从上图可见,两者相比较,BIOS可更直接地控制外设,故能完成更复杂的输入/输出操作;而DOS操作对硬件依赖性少,比相应的BIOS操作简单,因此在二者能完成同样功能时,应尽量使用DOS功能调用。
2、调用方法
用户在汇编语言程序中可使用软中断指令“INTn”调用BIOS程序,其中n是中断类型码。
常用的BIOS程序的功能与其中断类型码对应关系如下表:
中断类型码BIOS中断调用功能
10H显示器I/O中断调用(即显示器驱动程序)
16H键盘驱动程序
17H打印机驱动程序
13H磁盘驱动程序
14H通信驱动程序
例如,用指令“INT16H”可调用键盘驱动程序。
当某个BIOS程序中具有多种不同功能时,用不同的编号——功能号加以区分,并约定功能号存放在寄存器AH中。
其调用方法与DOS功能调用类似:
(1功能号→AH
(2入口参数→指定寄存器
(3指令“INTn”实现对BIOS子程序的调用
下面以键盘I/O中断调用为例介绍BIOS中断调用的方法。
3、键盘I/O中断调用示例
键盘I/O中断调用(INT16H)有三个功能,功能号为0~2。
(1AH=0
功能:
从键盘读入字符送AL。
出口参数:
(AL)=键入字符的ASCII码;(AH)=键入字符的扫描码【例】MOVINTAH,016H调用结果:
将键盘输入字符的ASCII码送AL,扫描码送AH。
(2AH=1功能:
从键盘读入字符送AL,并设置ZF标志,若按过任一健,则置ZF=0,否则ZF=1。
出口参数:
ZF=0,键盘有输入,(AL)=键入字符的ASCII码;ZF=1,键盘无输入(3AH=2功能:
读取特殊功能建的状态。
出口参数:
AL中是各特殊功能键的状态(如下图)。
740this.width=740border=undefined>AL中某位为1,表示对应键按下;为0则表示未按下