第10章汇编语言程序设计实例 1.教学目的:掌握汇编程序编程方法 2.教学要求 ①掌握视频显示系统程序设计 ②掌握音频发声系统程序设计 ③掌握数据通讯系统程序设计 3.教学重点 ①掌握各类程序 ②理解汇编语言的编程思想 4.掌握难点 设计原理 5.教学进程安排:P286~307 6.教学方 课堂讲授 7.教学内容摘要 10.1视频显示系统程序设计 10.1.1显示方式 1.显示适配器 2.显示器 (1)数字(TL)显示器 (2)模拟显示器 (3)显示器分辨率 ①屏幕上扫描图像的速度 ②屏幕上的像素数 3.显示方式 10.1.2D0s功能调用显示技术 【例10-1】在微型计算机系统上常常可以显示实时时钟,这就要求能输出数码00~ 9。要输出多于一个字符时,要利用DS功能调用9,它是向CRT输出字符串的子程序 求在调用前使DX指向字符串的首地址,字符串必须以字符“$”结束,则功能调用9能把 字符“$”之前的全部字符向CRT输出 10.1.3Bl0s功能调用显示技术
第 10 章 汇编语言程序设计实例 1.教学目的:掌握汇编程序编程方法 2.教学要求: ①掌握视频显示系统程序设计 ②掌握音频发声系统程序设计 ③掌握数据通讯系统程序设计 3.教学重点: ①掌握各类程序 ②理解汇编语言的编程思想 4.掌握难点: 设计原理 5.教学进程安排:P286~307 6.教学方法: 课堂讲授 7.教学内容摘要: 10.1 视频显示系统程序设计 10.1.1 显示方式 1. 显示适配器 2. 显示器 ⑴数字(TTL)显示器。 ⑵模拟显示器 ⑶显示器分辨率 ①屏幕上扫描图像的速度; ②屏幕上的像素数。 3. 显示方式 10.1.2 DOS 功能调用显示技术 【例10-1】在微型计算机系统上常常可以显示实时时钟,这就要求能输出数码00~ 59。要输出多于一个字符时,要利用DOS功能调用9,它是向CRT输出字符串的子程序,要 求在调用前使DX指向字符串的首地址,字符串必须以字符“$”结束,则功能调用9能把 字符“$”之前的全部字符向CRT输出。 10.1.3 BIOS 功能调用显示技术
1.PC系列机彩色图形模式 (1)文本(字符)模式(AN) (2)图形模式(APA) 【例10-2】选择显示方式。程序流程图如图10.2所示。程序的清单为 2.在文本方式下,屏幕上可以显示字母、数字以及一些字符图形 10.1.4彩色图形显示 1.彩色绘图 (1)用INT1OH的0号功能将显示方式设置成320×200彩色图形方式 (2)用INT1OH的11号功能设置彩色图形方式下的调色板或背景颜色: (3)在上述工作的基础上,利用INT1OH的12功能或13号功能在屏幕上写彩色像素点 或读彩色像素点 2.彩色绘图举例 【例10-4】在屏幕上显示电子钟 10.2音频发声系统程序设计 10.2.1Pc机的发声原理 1.19MHz时钟 接CPU 扬声器 定时器 与 驱动器 8255PPIB口 (61H) 图10.5扬声器控制驱动电路 10.2.2发音程序 发音程序的编制需要进行以下四方面工作。 1.确定发声频率 2.确定音长 3.定时器调节 4.操作扬声器开关 10.23乐曲演奏程序 在乐曲中,每个音符的音高和音长与频率节拍有关
1. PC 系列机彩色图形模式 (1)文本(字符)模式(AN); (2)图形模式(APA)。 【例 10-2】选择显示方式。程序流程图如图 10.2 所示。程序的清单为: 2. 在文本方式下,屏幕上可以显示字母、数字以及一些字符图形 10.1.4 彩色图形显示 1. 彩色绘图 ⑴用 INT 10H 的 0 号功能将显示方式设置成 320×200 彩色图形方式; ⑵用 INT 10H 的 11 号功能设置彩色图形方式下的调色板或背景颜色: ⑶在上述工作的基础上,利用 INT 10H 的 12 功能或 13 号功能在屏幕上写彩色像素点 或读彩色像素点。 2. 彩色绘图举例 【例 10-4】在屏幕上显示电子钟 10.2 音频发声系统程序设计 10.2.1 PC 机的发声原理 7 6 5 4 3 2 1 0 8255 PPI B 口 (61H) 8254 定时器 驱动器 与 门 1.19MHz 时钟 接 CPU 扬声器 图 10.5 扬声器控制驱动电路 10.2.2 发音程序 发音程序的编制需要进行以下四方面工作。 1. 确定发声频率 2. 确定音长 3. 定时器调节 4. 操作扬声器开关 10.2.3 乐曲演奏程序 在乐曲中,每个音符的音高和音长与频率节拍有关
表10-3音阶频率对照表 音名 C D E F G A BCD’E’F’G’ABc”D”E"F”G”A”B 简谱 1234567 1234567 1234567 频率13114716517519622024726229433034939244049452458866069878488984 (1)频率数据 (2)节拍时间数据 【例10-5】图10.6是《两只老虎》的简谱。根据乐谱在数据段中定义了频率数据表(FREQ) 和节拍时间数据表(TIME),程序以-1作为频率数据表的结束标志。 l=C4/4 345 565431|565431|251-|251 图10.6《两只老虎》简谱 10.3数据通讯系统程序设计 10.3.1并行通信口1/0 【例106】应用BI0s和DS功能调用,编写一个简单的打字程序。它要求把从键盘上接收的 字符显示在屏幕上,并由打印机输出,在键盘上按下ESC键,即退出程序。 10.3.2串行通信口1/0 利用BI0SINT14H,通过COM端口与另一台PC机通讯 其过程如下: (1)用IMT14N,AH=1,AL=字符,发送一个字符 (2)为了接收字符,用INT14H,AH=3来获得COM端口的状态,其值返回在AH寄存器中, 注意, MODEM的状态值是返回在AL寄存器中的 (3)检验〔OM端口状态值的第0位,它是数据准备好位,如果该位为1,说明COM端口已 接收到字符并送到了8250UART (4)为了读取接收到的字符,使用IMT14HAH=2功能,将字符读到AL寄存器。 2.双机双向通讯 例10-7】两台PC机通过COM2端口进行串行数据通信,编写一个汇编语言程序,要 求从一台PC机上键盘输入的字符能传送到另一台PC机,若按下ESC键,则退出程序。在 程序中,COM2端口初始化为4800波特,8位数据位,无校验,1位终止位:按照上述通信 要求编程时,需要以下几个步骤: (1)检测按键.如果按下一键,则获取字符码并将它写到要 传输的COM端口,同时也要检测是否按动退出键ESC (2)如无任何健按下,检测COM端口的状态,如果已接收到一个字符,则读取并显示在
表 10-3 音阶频率对照表 音名 C D E F G A B C’ D’ E’ F’ G’ A’ B’ C” D” E” F” G” A” B” 简谱 1 . 2 . 3 . 4 5 6 . . . 7. 1 2 3 4 5 6 7 1 2 3 4 5 6 7 频率 131 147 165 175 196 220 247 262 294 330 349 392 440 494 524 588 660 698 784 880 984 (1)频率数据 (2)节拍时间数据 【例 10-5】图 10.6 是《两只老虎》的简谱。根据乐谱在数据段中定义了频率数据表(FREQ) 和节拍时间数据表(TIME),程序以-1 作为频率数据表的结束标志。 1=C 4/4 1 2 3 1 | 1 2 3 1 | 3 4 5 一 | 3 4 5- | 5 6 5 4 3 1 | 5 6 5 4 3 1 | 2 5. 1 一 | 2 5. 1 -| 图 10.6 《两只老虎》简谱 10.3 数据通讯系统程序设计 10.3.1 并行通信口 I/O 【例 10-6】应用 BIOS 和 DOS 功能调用,编写一个简单的打字程序。它要求把从键盘上接收的 字符显示在屏幕上,并由打印机输出,在键盘上按下 ESC 键,即退出程序。 10.3.2 串行通信口 I/O 1. 利用 BIOS INT 14H,通过 COM 端口与另一台 PC 机通讯。 其过程如下: (1)用 INT 14N,AH=1,AL=字符,发送一个字符。 (2)为了接收字符,用 INT 14H,AH=3 来获得 COM 端口的状态,其值返回在 AH 寄存器中, 注意,MODEM 的状态值是返回在 AL 寄存器中的。 (3)检验 COM 端口状态值的第 0 位,它是数据准备好位,如果该位为 1,说明 COM 端口已 接收到字符并送到了 8250UART。 (4)为了读取接收到的字符,使用 INT 14H AH=2 功能,将字符读到 AL 寄存器。 2. 双机双向通讯 【例 10-7】两台 PC 机通过 COM2 端口进行串行数据通信,编写一个汇编语言程序,要 求从一台 PC 机上键盘输入的字符能传送到另一台 PC 机,若按下 ESC 键,则退出程序。在 程序中,COM2 端口初始化为 4800 波特,8 位数据位,无校验,1 位终止位;按照上述通信 要求编程时,需要以下几个步骤: (1)检测按键.如果按下一键,则获取字符码并将它写到要 传输的 COM 端口,同时也要检测是否按动退出键 ESC。 (2)如无任何健按下,检测 COM 端口的状态,如果已接收到一个字符,则读取并显示在 · · · · · · ·
屏幕上。 (3)转向第(1)步 8.参考资料:《IBM-PC汇编语言程序设计》沈美明 9.作业:P306习题10 10.本章小结 ①本部分为汇编语言编程的综合应用。 ②对于本部分的学习要做到举一反三
屏幕上。 (3)转向第(1)步 8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业:P306 习题 10 10.本章小结: ①本部分为汇编语言编程的综合应用。 ②对于本部分的学习要做到举一反三