版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022年7月4日12022年7月4日1 2022年7月4日1第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令9:341DEC HEX BIN4 4 00000100 汇编语言与接口技术汇编语言与接口技术第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令学习本章后:学习本章后:1.1.会用会用BIOSBIOS中断的显示器中断的显示器INT 10HINT 10H编程编程 操作显示器:清屏,设定光标位置,写字符,画线,绘图操作显示器:清屏,设定光标位置,写字符,画线,绘图2.2.会用会用D
2、OSDOS中断中断INT 21HINT 21H编程编程 灵活的操作屏幕灵活的操作屏幕 操作键盘:单字符输入,字符串输入操作键盘:单字符输入,字符串输入3.3.会用宏指令会用宏指令 学会怎样使用宏,包括:宏指令的定义、调用和展开。学会怎样使用宏,包括:宏指令的定义、调用和展开。2022年7月4日2第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令 概述:概述: 在在BIOSBIOS和和DOSDOS中有一些非常有用的功能调用,通过中有一些非常有用的功能调用,通过INTINT指令指令(中断(中断,本章特指软件中断)提供给用户使用。,本章特指软件中
3、断)提供给用户使用。 INTINT指令的格式如下:指令的格式如下: INT XX INT XX ;中断号;中断号XXXX的范围是的范围是00FFH00FFH 在在X86X86微处理器中共有微处理器中共有256256种中断,功能调用使用最广泛的两个种中断,功能调用使用最广泛的两个中断是(显示器中断是(显示器I/O)INT I/O)INT 10H10H和和(DOS(DOS中断)中断)INT 21HINT 21H。 * * *这两种中断分别都有很多功能,用功能号来区分这两种中断分别都有很多功能,用功能号来区分,并且不同的功能可能有不同的输入参数。,并且不同的功能可能有不同的输入参数。2022年7月4
4、日3第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令应用程序与应用程序与DOSDOS、BIOSBIOS之间的之间的关系:关系:w BIOSBIOS直接建立在硬件的基直接建立在硬件的基础上。础上。w DOSDOS建立在建立在BIOSBIOS的基础上,的基础上,通过通过BIOSBIOS控制硬件。控制硬件。2022年7月4日4第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令本章内容:本章内容:4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H编程编程4.2 DOS4.2
5、DOS中断中断INT 21HINT 21H编程编程4.3 4.3 宏指令宏指令2022年7月4日54.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程 INT 10HINT 10H称为显示器称为显示器I/OI/O。 INT 10HINT 10H子程序被烧制在基于子程序被烧制在基于x86x86的的IBM IBM PCPC及其兼容机的及其兼容机的ROM BIOSROM BIOS中,并用于和计中,并用于和计算机的屏幕进行通讯。算机的屏幕进行通讯。 屏幕上的操作:屏幕上的操作: 1 1)文本方式)文本方式 2 2)图形方式)图形方式 均可以通过均可以通过INT 10HINT
6、 10H来完成。来完成。2022年7月4日64.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程2022年7月4日71.1.文本模式下的显示器屏幕文本模式下的显示器屏幕 文本方式下,文本方式下,x86 PCx86 PC的显示器屏幕被设置为:的显示器屏幕被设置为: 25 25行行* *8080列列 下图分别以十进制和十六进制两种形式示出了屏下图分别以十进制和十六进制两种形式示出了屏幕上每个位置的坐标。幕上每个位置的坐标。图图4.1 4.1 光标的位置(行,列)光标的位置(行,列)4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程2.2.使
7、用使用INT 10HINT 10H的的06H06H功能功能清除屏幕清除屏幕 输入参数:输入参数: AH=06 AH=06 ; ;向上滚动窗口向上滚动窗口 AL=00 AL=00 ; ;整页整页 BH=07 BH=07 ; ;正常属性正常属性 CX=0000H CX=0000H; ;左上角坐标左上角坐标 DX=184FH DX=184FH; ;右下角坐标右下角坐标 2022年7月4日8清屏的代码片段:清屏的代码片段: mov ah, 6mov ah, 6mov al, 0mov al, 0mov bh, 7mov bh, 7mov cx, 0mov cx, 0mov dh, 24mov dh,
8、24mov dl, 79mov dl, 79int 10hint 10h参看参看X86-P112.ASMX86-P112.ASM4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程3.INT 10H3.INT 10H的的02H02H功能功能: :设置光标设置光标 输入参数:输入参数: AH=02 AH=02 ; ;设置光标设置光标BH=00 BH=00 ;0;0页页 DH=15 DH=15; ;行值行值 DL=25 DL=25; ;列值列值 2022年7月4日9设置光标代码片段:设置光标代码片段: mov ah, 2mov ah, 2mov bh, 0mov bh,
9、 0mov dlmov dl,2525mov dh, 15mov dh, 15int 10hint 10h参看参看X86-P113.ASMX86-P113.ASM参看参看X86-P113-2X86-P113-24.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程4.INT 10H4.INT 10H的的03H03H功能功能: :获取当获取当前光标位置前光标位置文本模式下,获取参数的方法文本模式下,获取参数的方法 输入参数:输入参数: AH=03 AH=03 ; ;获取光标位置获取光标位置BH=00 BH=00 ;0;0页页 返回参数:返回参数: DH: DH:光标当前
10、位置的行值光标当前位置的行值 DL: DL:光标当前位置的列值光标当前位置的列值 2022年7月4日10获取光标当前位获取光标当前位置代码片段:置代码片段: mov ah, 3mov ah, 3mov bh, 0mov bh, 0int 10hint 10h参看参看X86-P113-3.ASMX86-P113-3.ASM4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程5.5.改变视频模式改变视频模式 AL=AL=视频模式视频模式 AH=0AH=0INT 10HINT 10HAL=00 40AL=00 4025 25 黑白文本黑白文本 =01 40=01 4025
11、 1625 16色文本色文本 =02 80 =02 8025 25 黑白文本黑白文本 =03 80 =03 8025 1625 16色文本色文本 其他其他参看参看BIOSBIOS调用手册调用手册 4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程6.6.单色显示器上属性字节单色显示器上属性字节参看参看P114P114图图4.2 4.2 应用举例:应用举例:参看参看X86-P114.ASM4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程7.CGA7.CGA文本模式的属性字节文本模式的属性字节 由于所有的彩色显示器和视频电路是向上由于所
12、有的彩色显示器和视频电路是向上兼容的,兼容的,CGACGA模式它是所有显示器的共同标准。模式它是所有显示器的共同标准。 参看参看P115 P115 1.CGA1.CGA属性字节属性字节 2.2.例子例子4.4 4.4 参看参看X86-P115.ASM 4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程8.8.图形:像素分辨率和颜色图形:像素分辨率和颜色 文本方式下屏幕:文本方式下屏幕:字符的行列矩阵字符的行列矩阵 图形方式下屏幕:图形方式下屏幕:水平和垂直的像素矩阵,像水平和垂直的像素矩阵,像 素的数量在不同的显示器上各不相同,并取素的数量在不同的显示器上各不相同
13、,并取 决于显示器的分辨率和显卡。决于显示器的分辨率和显卡。 本节内容本节内容:屏幕上进行像素访问及其编程:屏幕上进行像素访问及其编程4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程 屏幕上的像素屏幕上的像素:(1 1)位置位置 :水平和垂直方向上点的坐标水平和垂直方向上点的坐标 (2 2)属性属性:颜色和亮度颜色和亮度(3 3)存储存储:位置和属性信息存储在视频位置和属性信息存储在视频RAMRAM中中4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程9.INT 10H9.INT 10H和像素编程和像素编程写像素:写像素: AH=0
14、CHAH=0CHAL=AL=颜色值颜色值BH=BH=页号页号DX/CX=DX/CX=像素行像素行/ /列列 INT 10HINT 10H读像素:读像素: AH=0DH AH=0DH 返回参数返回参数:AL=AL=像素的颜色值像素的颜色值BH=BH=页号页号DX/CX=DX/CX=像素行像素行/ /列列 INT 10HINT 10H4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H的编程的编程10.10.图形模式下绘制直线图形模式下绘制直线分析:分析:水平直线:水平直线: 选择指向起始点的行列坐标,增加选择指向起始点的行列坐标,增加列列值直到终点为止。值直到终点为止。垂直直线:
15、垂直直线: 选择指向起始点的行列坐标,增加选择指向起始点的行列坐标,增加行行值直到终点为止。值直到终点为止。参看参看P116 P116 例子例子4.54.5 参看参看X86-P116.ASMBIOSBIOS编程完成如下要求编程完成如下要求18EXP-KUANG.ASMEXP-MENU.ASM2022年7月4日19第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H编程编程4.2 DOS4.2 DOS中断中断INT 21HINT 21H编程编程4.3 4.3 宏指令宏指令202
16、2年7月4日194.2 DOS4.2 DOS中断中断21H21H的编程的编程 INT 21HINT 21H 是由是由DOSDOS提供的。当操作系统加载到计算机之后,提供的。当操作系统加载到计算机之后,可调用可调用INT 21HINT 21H来完成一些非常有用的功能。来完成一些非常有用的功能。 本节内容:本节内容: 使用使用DOS INT 21H DOS INT 21H 从键盘输入信息并把信息显示在从键盘输入信息并把信息显示在屏幕上的处理方法。屏幕上的处理方法。2022年7月4日204.2 DOS4.2 DOS中断中断21H21H的编程的编程DOS21HDOS21H的常用功能调用:的常用功能调用
17、:AH=2 AH=2 显示字符输出显示字符输出AH=9 AH=9 显示字符串输出显示字符串输出AH=1 AH=1 键盘输入并回显键盘输入并回显AH=0AH AH=0AH 键盘输入到缓冲区键盘输入到缓冲区AH=4CH AH=4CH 带返回码终止带返回码终止2022年7月4日214.2 DOS4.2 DOS中断中断21H21H的编程的编程1.1.输出字符串到显示器:输出字符串到显示器:INT 21HINT 21H选项选项09H09H INT 21HINT 21H的的09H09H实现发送一组实现发送一组ASCIIASCII码字符(数据、字符)到显示器。码字符(数据、字符)到显示器。显示字符串显示字符
18、串: DS:DX=DS:DX=发送的数据串地址,数据串以发送的数据串地址,数据串以“$”$”结束。结束。 AH=9AH=9 INT 21HINT 21H 例子:例子:参看参看X86-P118.ASM(说明(说明09H功能的使用)功能的使用)4.2 DOS4.2 DOS中断中断21H21H的编程的编程2.2.输出单个字符到显示器:输出单个字符到显示器:INT 21HINT 21H选项选项02H02H INT 21HINT 21H的的02H02H实现输出单个字符(数据、字符)到显示器。实现输出单个字符(数据、字符)到显示器。显示字符:显示字符: AH=2AH=2 DL=DL=输出字符输出字符 IN
19、T 21HINT 21H3.3.输入单个字符并回显:输入单个字符并回显:INT 21HINT 21H选项选项01H01H INT 21HINT 21H的的01H01H实现等待一个键盘输入的字符,然后回显在显示器上。实现等待一个键盘输入的字符,然后回显在显示器上。显示字符:显示字符: 输入的字符保存在输入的字符保存在ALAL中中 AH=1AH=1INT 21H INT 21H 例子:例子:参看参看X86-P118-2.ASM(其中使用子程序调用,子过程定义(宏)其中使用子程序调用,子过程定义(宏)4.2 DOS4.2 DOS中断中断21H21H的编程的编程4.4.由键盘输入一串数据:由键盘输入一
20、串数据:INT 21HINT 21H选项选项0AH0AH INT 21HINT 21H的的0AH0AH实现键盘实现键盘输入的一串数据输入的一串数据并把它并把它存储在数据段内存存储在数据段内存的指定区域的指定区域。键盘输入到缓冲区:键盘输入到缓冲区: DS:DX=DS:DX=缓冲区首址缓冲区首址 (DS:DX)=(DS:DX)=设置的缓冲区最大字符数设置的缓冲区最大字符数 (DS:DX+1)= (DS:DX+1)=实际输入的字符数(程序执行后填充的)实际输入的字符数(程序执行后填充的) AH=0AHAH=0AH INT 21HINT 21H 例子:例子:参看参看X86-P119.ASM4.2 D
21、OS4.2 DOS中断中断21H21H的编程的编程5.5.回车和换行的使用回车和换行的使用 回车:回车:CR-0DHCR-0DH;光标回到当前行的起点;光标回到当前行的起点 换行:换行:LF-0AHLF-0AH;光标移到下一行;光标移到下一行 参看书上参看书上P120-124P120-124: 例子程序例子程序4.2-4.44.2-4.4使用使用CR,LFCR,LF的方法。的方法。 BIOS/DOSBIOS/DOS中断编程小结中断编程小结应用程序在进行中断调用时应明确应用程序在进行中断调用时应明确1.1.中断类型号中断类型号2.2.功能号:功能号功能号:功能号AHAH;子功能号子功能号ALAL
22、3.3.入口参数:通过寄存器提供专门的调用参数入口参数:通过寄存器提供专门的调用参数应用程序在进行应用程序在进行BIOS/DOSBIOS/DOS中断调用时步骤中断调用时步骤1. 1. 将调用所需的入口参数装入指定的寄存器将调用所需的入口参数装入指定的寄存器2. 2. 如需功能号:如需功能号:AHAH功能号功能号3. 3. 如需子功能号:如需子功能号:ALAL子功能号子功能号4. 4. 按中断号调用按中断号调用DOSDOS或或BIOSBIOS中断:中断:INT nINT n5. 5. 检查返回参数是否正确等检查返回参数是否正确等更多的编程功能调用请参考手册更多的编程功能调用请参考手册2022年7
23、月4日262022年7月4日272022年7月4日27第第4 4章章 INT 21HINT 21H和和INT 10HINT 10H的编程及宏指令的编程及宏指令4.1 BIOS4.1 BIOS中断中断INT 10HINT 10H编程编程4.2 DOS4.2 DOS中断中断INT 21HINT 21H编程编程4.3 4.3 宏指令宏指令2022年7月4日274.3 4.3 宏指令宏指令 本节主要内容如下:本节主要内容如下: 1. 1.宏宏 2.LOCAL 2.LOCAL伪指令伪指令 3.INCLUDE 3.INCLUDE伪指令伪指令2022年7月4日284.3 4.3 宏指令宏指令1.1.宏宏 宏
24、宏:源程序中一段有独立功能的程序代码。源程序中一段有独立功能的程序代码。 宏指令宏指令:用户自定义的指令。用户自定义的指令。 要点:要点:宏定义宏定义-只在源程序中只在源程序中定义一次定义一次,就可以,就可以多次调用多次调用宏定义,调用时使用一条宏指令语句就即可;宏定义,调用时使用一条宏指令语句就即可; 宏调用宏调用-在编程时,将多次使用的功能(宏定义的在编程时,将多次使用的功能(宏定义的一组指令)用一条宏指令来代替;一组指令)用一条宏指令来代替; 宏展开宏展开-在汇编时,用宏指令定义的程序段替代宏在汇编时,用宏指令定义的程序段替代宏指令(宏展开)。指令(宏展开)。2022年7月4日294.3
25、 4.3 宏指令宏指令宏汇编的用途:宏汇编的用途: 当子程序本身较短或者需要传送的参数较多的情况当子程序本身较短或者需要传送的参数较多的情况下,使用宏汇编更加便利,为用户提供更加容易、下,使用宏汇编更加便利,为用户提供更加容易、更加灵活、更加向高级语言靠拢的汇编工具。更加灵活、更加向高级语言靠拢的汇编工具。2022年7月4日304.3 4.3 宏指令宏指令A. A. 宏定义宏定义 macro_namemacro_name MACROMACRO 哑元表哑元表 LOCAL LOCAL 标号表标号表 (宏定义体宏定义体) ENDMENDMMACROMACRO、 ENDMENDM是一对宏定义伪操作是一
26、对宏定义伪操作哑元表给出形式参数(虚参),宏定义中使用的变量参数哑元表给出形式参数(虚参),宏定义中使用的变量参数宏定义体:一组有独立功能的程序段宏定义体:一组有独立功能的程序段 若宏定义体有一个或多个若宏定义体有一个或多个标号标号,必须用,必须用LOCALLOCAL伪操作列出所有的标号伪操作列出所有的标号4.3 4.3 宏指令宏指令B. B. 宏调用宏调用 宏指令一经定义,就可以在程序中被多次调用。宏指令一经定义,就可以在程序中被多次调用。格式:格式: macro_namemacro_name 实元表实元表 ; ; 实参实参* * 实元表中的实元与哑元表中的哑元在位置上一一对应实元表中的实元
27、与哑元表中的哑元在位置上一一对应* * 若实元数若实元数 哑元数,则多余的实元无效哑元数,则多余的实元无效* * 若实元数若实元数 哑元数,则多余的哑元作哑元数,则多余的哑元作“空空(NUL)(NUL)”处理处理* * 对宏指令的调用:对宏指令的调用:必须先定义后调用必须先定义后调用* * 实元:实元:可以是常数、寄存器、存储单元名、地址、表达可以是常数、寄存器、存储单元名、地址、表达式;也可以是操作码或操作码的一部分式;也可以是操作码或操作码的一部分4.3 4.3 宏指令宏指令C.C.宏展开宏展开 源程序被汇编时源程序被汇编时(MASM/L),汇编程序将对每个宏,汇编程序将对每个宏调用作宏展开调用作宏展开( (查看查看fn.lstfn.lst文件)文件) 参看举例参看举例X86-MAC-P128.ASM ( (此例是由此例是由X86-P118-2.ASMX86-P118-2.ASM改写而来)改写而来) 用宏定义体替换用宏定义体替换宏指令名,把宏指令名,把宏定义体复制到宏定义体复制到调调用宏指令的位置上,同时用实元取代哑元。用宏指令的位置上,同时用实元取代哑元。4.3 4.3 宏指令宏指令2.LOCAL2.LOCAL伪指令及其在宏中的使用伪指令及其在宏中的使用 当在宏定义体中使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险化学品道路运输安全协议(2025版)3篇
- 2025年度药店全职店员聘用劳动合同
- 2025年度生物科技研发项目提成合同
- 2025年度餐饮企业员工劳动合同(含合同解除赔偿)
- 塑胶运动场地的使用后评估考核试卷
- 健康保险改革趋势考核试卷
- 中药材种植的农业技术培训与教育考核试卷
- 2025年全球及中国热带香料行业头部企业市场占有率及排名调研报告
- 音乐疗愈课课程设计
- 应收账款管理课程设计
- 药学技能竞赛标准答案与评分细则处方
- 山东省潍坊市2023-2024学年高二下学期期末考试 历史 含解析
- 中医诊疗规范
- 报建协议书模板
- 第14课《叶圣陶先生二三事》导学案 统编版语文七年级下册
- 贵州省2024年中考英语真题(含答案)
- 施工项目平移合同范本
- 北师大版八年级上册数学期中综合测试卷(含答案解析)
- (高清版)JTGT 3360-01-2018 公路桥梁抗风设计规范
- 幼儿园创意美劳培训
- 同济大学第四版线性代数课后习题答案
评论
0/150
提交评论