




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 10 讲讲 控制台输入输出控制台输入输出显示器显示器 I/O键盘键盘 I/O 大多数的程序,都有一个大多数的程序,都有一个“人机人机”交互交互的过程,的过程,也就是说,从也就是说,从键盘键盘上输入程序所需要的控制信息和数据,上输入程序所需要的控制信息和数据,把程序的运行结果和运行状态向把程序的运行结果和运行状态向显示器显示器输出。输出。 交互使用的键盘称为交互使用的键盘称为“标准输入设备标准输入设备”,显示器称为,显示器称为“标准输出设备标准输出设备”,合称为,合称为“控制台控制台(Console)”。n汇编程序提供给汇编语言程序员的功能非常有限汇编程序提供给汇编语言程序员的功能非常有限
2、n程序员可利用程序员可利用ROM-BIOS和和操作系统操作系统提供的系统功能提供的系统功能n系统功能调用系统功能调用是程序设计的一个重要方面是程序设计的一个重要方面裸机裸机汇编语言程序系统功能调用系统功能调用nDOS系统功能调用系统功能调用qDOS利用利用21H号中断号中断提供给用户近百个系统功能,主要包括设提供给用户近百个系统功能,主要包括设备管理、目录管理和文件管理三个方面的功能备管理、目录管理和文件管理三个方面的功能n书书附录附录F中列出了主要的中列出了主要的DOS功能调用的使用解释功能调用的使用解释nROM-BIOS系统功能调用系统功能调用qROM-BIOSROM-BIOS也以中断服务
3、程序的形式,向程序员提供系统的基本输入也以中断服务程序的形式,向程序员提供系统的基本输入输出程序输出程序qROM-BIOSROM-BIOS功能更加基本,且与操作系统无关功能更加基本,且与操作系统无关q当当DOSDOS没有启动或不允许使用没有启动或不允许使用DOSDOS功能调用时,可以使用功能调用时,可以使用ROM-BIOSROM-BIOS功功能调用能调用q书书附录附录G中列出了主要的中列出了主要的BIOS功能调用的使用解释功能调用的使用解释 BIOS和和DOS基本调用基本调用调用方法:调用方法:1. 将将调用参数调用参数装入装入指定的指定的寄存器中;寄存器中;2. BIOS或或DOS功能号功能
4、号装入装入AH;3. 如需如需子功能号子功能号,把它装入,把它装入AL;4. 按中断号按中断号调用调用DOS或或BIOS中断中断(INT);5. 检查或取得检查或取得返回参数返回参数。子程序调用子程序调用 主程序主程序 CALL SUBP 子程序子程序 RETDOS/BIOS调用调用 源程序源程序 INT n DOS/BIOS 例行程序例行程序 IRET1.1.向显示器输出信息向显示器输出信息 通过通过DOS操作系统的服务程序(操作系统的服务程序(INT 21H)输出;)输出; 通过通过“基本输入输出系统(基本输入输出系统(BIOS)” 输出;输出; 把显示内容(把显示内容(ASCII代码)直
5、接写入代码)直接写入“显示存储器(显示存储器(Video RAM,VRAM)”,由显示器接口电路转换输出。,由显示器接口电路转换输出。向显示器输出信息有三种方法:向显示器输出信息有三种方法:DOS显示功能调用显示功能调用( AH 功功 能能 调调 用用 参参 数数 2 显示一个字符显示一个字符(检验检验Ctrl-Break) DL = 字符字符ASCII码码 光标跟随字符移动光标跟随字符移动 6 显示一个字符显示一个字符(不检验不检验Ctrl-Break) DL = 字符字符ASCII码码 光标跟随字符移动光标跟随字符移动 9 显示字符串显示字符串 DS:DX=串地址串地址,光标跟随串移动,光
6、标跟随串移动例例:下面的程序在显示器上输出数字字符:下面的程序在显示器上输出数字字符“9”:MOVAH, 2;功能号;功能号02HMOVDL, 39H;字符;字符“9”的的ASCII代码代码INT21H;调用;调用21H号系统服务程序号系统服务程序 字符字符“9”显示在显示在光标光标(Cursor)位置,光标向右移动一个字符位置。位置,光标向右移动一个字符位置。 DL 待输出字符的待输出字符的ASCII代码代码 AH 02H INT 21HX为为DB定义的一个变量,下面的程序能够输出定义的一个变量,下面的程序能够输出X的值吗?的值吗? MOVAH, 2;功能号;功能号02H装入装入AH寄存器寄
7、存器MOVDL, X;变量;变量X的值装入的值装入DL寄存器寄存器INT21H;调用;调用21H号系统服务程序号系统服务程序(1)输出单个字符显示)输出单个字符显示CODESEGMENTASSUME CS: CODESTART:LEABX, STRINGMOVCX, 7ONE:MOVDL, CS: BX;取出一个字符的;取出一个字符的ASCII代码代码MOVAH, 2;单个字符输出的功能号;单个字符输出的功能号INT21H;调用系统服务,输出一个字符;调用系统服务,输出一个字符INCBX;修改指针;修改指针LOOP ONE;计数与循环控制;计数与循环控制MOVAX, 4C00HINT21HST
8、RINGDB“Hello !”CODEENDSENDSTART例例3-10 在显示器上输出文字在显示器上输出文字“Hello !” STRING在代码段里定义,取字符需要增加在代码段里定义,取字符需要增加段跨越前缀段跨越前缀“CS: BX”,否则会到,否则会到“DS: BX”处取字符,输出不确定的内容。处取字符,输出不确定的内容。 代码为代码为0DH的字符称为的字符称为“回车回车(Carriage Return, CR)”,把,把 光标移动到本行的第一个字符位置,光标移动到本行的第一个字符位置, 代码为代码为0AH的字符称为的字符称为“换行换行(Line Feed, LF)”,把光标移,把光标
9、移 动到下一行的相同位置上。动到下一行的相同位置上。MOVCX, 11STRINGDB0DH, 0AH, “Hello !”, 0DH, 0AHDS: DX 待输出字符串的首地址待输出字符串的首地址AH 09HINT21H字符串以字符字符串以字符“$”为结束标志,该字符本身不输出。为结束标志,该字符本身不输出。CODESEGMENTASSUME CS: CODE, DS: CODESTART:MOV AX, CODEMOVDS, AXLEADX, STRINGMOVAH, 9INT21HMOVAX, 4C00HINT21HSTRINGDB 0AH, 0DH, “Hello !”, 0AH, 0
10、DH, $CODEENDSENDSTART(2)输出一个字符串)输出一个字符串 功功 能能 调用参数调用参数 返回参数返回参数 从键盘输入一个字符并回显在屏幕上从键盘输入一个字符并回显在屏幕上 AL=字符字符ASCII码码 读键盘字符,不回显读键盘字符,不回显 DL= 0FFH 若有字符可取,若有字符可取,AL=字符字符ASCII码码,ZF=0 若无字符可取,若无字符可取,AL=0,ZF=1 从键盘输入一个字符,不回显从键盘输入一个字符,不回显 AL=字符字符ASCII码码 从键盘输入一个字符,不回显,从键盘输入一个字符,不回显, AL=字符字符ASCII码码 检测检测Ctrl-Break和和
11、Ctrl -C键键 输入字符到缓冲区输入字符到缓冲区 DS:DX = 缓冲区首址缓冲区首址 A2. DOS2. DOS键盘输入功能调用键盘输入功能调用( )DATASEGMENTSUMDB?DATAENDS; -CODESEGMENTASSUME DS: DATA, CS: CODESTART:MOV AX, DATAMOVDS, AX例例3-13 从键盘输入从键盘输入5个数字(个数字(0到到9之间),求它们的和,之间),求它们的和,存入存入SUM。MOVCX, 5;循环次数;循环次数MOVSUM, 0;累加器清零;累加器清零ONE: MOVAH, 1;输入单个字符的功能号;输入单个字符的功能
12、号INT21H;输入一个字符,;输入一个字符,ASCII码在码在AL中中ANDAL, 0FH;ASCII码转换成二进制数码转换成二进制数ADDSUM, AL;累加;累加LOOP ONE;计数与循环;计数与循环MOVAX, 4C00HINT21HCODE ENDSENDSTART输入缓冲区格式举例说明:输入缓冲区格式举例说明: BUFFER DB 81, ?, 81 DUP(?)0AH号号DOS功能调用功能调用n输入一行字符输入一行字符 功能调用号:功能调用号:AH0AH 入口参数:入口参数:DS=输入缓冲区的段地址输入缓冲区的段地址 DX=输入缓冲区的偏移地址输入缓冲区的偏移地址 功能调用:功
13、能调用:INT 21H 出口参数:缓冲区出口参数:缓冲区=输入的一行字符输入的一行字符n第一字节第一字节:输入字符存放区的大小。:输入字符存放区的大小。n第二字节第二字节:实际输入的字符个数,不包括回车。:实际输入的字符个数,不包括回车。n第三字节之后第三字节之后:输入字符存放区,存放输入的字符和回车。:输入字符存放区,存放输入的字符和回车。例例: : 输入字符串到缓冲区输入字符串到缓冲区STRINGSTRING MAXLEN DB 32 MAXLEN DB 32 ,0, 32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DU
14、P(?)CODE SEGMENTMOVAX, DATAMOVDS, AXLEADX,MAXLENMOVAH,INT21HCODE ENDS END32568H61H70H70H79H0DHMAXLENACTLENSTRINGDATASEGMENTSUMDB?BUFFERDB6, ?, 6 DUP(?)DATAENDSCODESEGMENTASSUME DS: DATA, CS: CODESTART:MOVAX, DATAMOVDS, AXLEADX, BUFFER;装载输入缓冲区首地址;装载输入缓冲区首地址MOVAH, 0AH;行输入功能代号;行输入功能代号INT21H;调用系统服务;调用系统
15、服务例例3-14 从键盘输入最多从键盘输入最多5个数字(个数字(0到到9之间),求它们的和,之间),求它们的和,存入存入SUM。MOVSUM, 0;累加器清零;累加器清零MOVCL, BUFFER+1 ;循环次数;循环次数MOVCH, 0LEABX, BUFFER+2 ;装载字符存放区首地址;装载字符存放区首地址ONE:MOVAL, BX;取出一个字符;取出一个字符ANDAL, 0FH;ASCII码转换成二进制数码转换成二进制数ADDSUM, AL;累加;累加INCBX;修改指针;修改指针LOOP ONE;计数与循环;计数与循环MOVAX, 4C00HINT21HCODEENDSENDSTART小结小结n主要的主要的DOS功能调用功能调用( )q字符输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年华中师大一附丘成桐少年班自主招生数学试卷(含答案详解)
- 2025年事业单位工勤技能-湖北-湖北造林管护工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北管道工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北园林绿化工三级(高级工)历年参考题库典型考点含答案解析
- 2025年房地产市场区域分化与投资策略的人工智能研究报告
- 化工园区安全环保提升项目2025年社会稳定风险评估与风险评估产业融合报告
- 2025-2030中国窄带钢企业竞争策略与投融资风险预测报告
- 2025年事业单位工勤技能-江西-江西经济岗位工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西堤灌维护工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏城管监察员二级(技师)历年参考题库含答案解析
- GB/T 18268.1-2025测量、控制和实验室用的电设备电磁兼容性要求第1部分:通用要求
- (高清版)DB11∕T 1455-2025 电动汽车充电基础设施规划设计标准
- 2025年辅警招聘考试真题(含答案)
- 电化学储能电站设计标准
- DB4403T 508-2024《生产经营单位锂离子电池存储使用安全规范》
- 200兆瓦风电项目清单及报价表
- 午托班合伙人合同范本
- ASTM-D3359-(附著力测试标准)-中文版
- 医院学术委员会及工作职责制度的通知
- 比亚迪速锐智能钥匙系统维修手册
- 三节有机磷杀虫剂课件
评论
0/150
提交评论