汇编语言第九章_第1页
汇编语言第九章_第2页
汇编语言第九章_第3页
汇编语言第九章_第4页
汇编语言第九章_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章中断程序设计教学重点中断分类及中断编程断点主程序中断服务程序中断请求对外设进行处理继续执行返回断点CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序。9.1中断概念9.1.3一、二、一个完整中断处理过程

1、中断请求2、中断判优3、中断响应

4、执行中断处理保留断点,CS和IP入栈开中断,形成中断入口地址保护现场执行中断处理关中断、恢复现场5、中断返回9.2定制中断处理程序编写中断处理子程序步骤:(1)保存现场,CS和IP入栈(2)开中断,形成中断入口地址(STI)(3)处理中断,执行中断处理(4)关中断(CLI)

(5)恢复现场(6)中断返回(IRET)主程序需要调用中断服务程序调用前,需要设置中断向量利用INTn指令调用中断服务程序1、设置新的中断向量(1)首先用AH=35H的DOS系统调用得到原中断处理程序地址(返回地址在ES:BX)MOVAH,35HMOVAL,80H;原中断号INT21HMOVAX,ESMOVCSR,AX;保存原中断程序段地址

;CS:IPMOVIPR,BX(2)其次用AH=25H的DOS系统调用设置新的中断向量MOVDX,SEGINTRMOVDS,DXMOVDX,OFFSETINTRMOVAH,25HMOVAL,80H;INT21H例9.1内部中断服务程序编写80H号中断服务程序(neiint.asm)功能:显示以“0”结尾字符串的功能利用显示器功能调用INT10H字符串缓冲区首地址为入口参数DS:DX(段地址:偏移地址)传递参数程序为NEIINT.ASM定义数据段例9.1

INTOFF DW? INTSEG DW? INTMSG DB‘AINSTRUCTIONINTERRUPT!’ DB0DH,0AH,01.保存中断向量

MOVAX,3580H INT21H MOVINTOFF,BX ;保存偏移地址

MOVINTSEG,ES ;保存段基地址返回参数为中断向量,在ES:BX中2.设置中断向量

PUSHDS

MOVDX,OFFSETNEW80H MOVAX,SEGNEW80H MOVDS,AX;DS:DX传递中断向量

MOVAX,2580H INT21H POPDS新的中断向量在DS:DX中3.调用中断服务程序

MOVDX,OFFSETINTMSG

INT80H

NEW80H PROC STI ;开中断

PUSHAX ;保护寄存器

PUSHBX PUSHSI4.进入中断服务程序5.显示字符串

MOVSI,DXNEW1: MOVAL,[SI] CMPAL,0 JZNEW2 MOVBX,0 MOVAH,0EH INT10H INCSI JMPNEW1INT10H中的功能0EH的作用:显示单个字符。入口参数为:BL:前景色BH:页号AL:要显示字符6.退出中断服务程序

NEW2: POPSI ;恢复寄存器

POPBX POPAX

IRET ;中断返回

NEW80H ENDP7.主程序结束

MOVDX,INTOFF MOVAX,INTSEG MOVDS,AX

MOVAX,2580H INT21H MOVAX,4C00H INT21HAInstructionInterrupt!中断调用举例(3)时间中断调用(1AH);(218页)INT1AH中断调用有2个功能,功能号在AH中,AH=0,1(1)AH=0的功能:读取时间计数器的当前值出口参数:CX=计数值的高位字,DX=计数值的低位字,若上次读它后,计数未超过24小时,AL=0,否则不为0。时间计数器每55MS自动加1,所以CX:DX中的数除以65536得小时数,余数除1092得分数,所得余数再除18.2得秒数。(2)AH=1的功能设置时间计数器的当前值入口参数:AH=1,CX,DX出口参数:时间计数器设为CX与DX中的值.将时间计数器的当前值设置为0MOVAH,1MOVCX,0MOVDX,0INT1AH例:计算程序执行时间STIMovah,1MOVCX,0MOVDX,0INT1AHCALLPROC1MOVAH,0INT1AH这样时间计数器的值在CX:DX中,此数×0.055或除18.2即可得程序执行时间。例:每隔5.5S从键盘读一个字符,并将字符的ASCII码存入缓冲区,共读50个字符

利用INT16H的0功能读取字符,返回值在AL中X1DB100DUP(?)STR:MOVCX,50LEABX,X1STILOP1:MOVAH,1PUSHCXMOVCX,0MOVDX,0INT1AH

LOP2:MOVAH,0INT1AHCMPDL,100JNZLOP2

MOVAH,0INT16HMOV[BX],ALINCBXPOPCXLOOPLOP1HLT9.4.3DOS日期、时间功能调用读取系统日期(220页)

AH=2AHINT21H返回值(十六进制数):

CX=年、DH=月、DL=日、AL=星期9.4.3DOS日期、时间功能调用(2)设置系统日期

AH=2BH

CX=年DH=月DL=日AL=星期INT21H返回值:AL=0

设置成功

AL=-1(FFH),无效。9.4.3DOS日期、时间功能调用(3)读取系统时间

AH=2CH

INT21H返回值:在cx:dx(时、分、秒、百分秒)(4)设置系统时间

AH=2DH

在cx:dx中分别设置(时、分、……)INT21H返回值:

AL=0

成功,-1

无效。练习:PC/XT机采用向量中断方式处理级外中断,中断号依次为08H~0FH。在RAM0:30H单元开始依次存放23H,FFH,00H和F0H四个字节,问该向量对应的中断号和中断程序入口是()。

①0CH和23FF:00H

0CH和F000:FF23H

0BH和00F0:23FFH

0BH和F000:FF23H.1.设字长为八位,有x=1,y=124,则有:[xy]补=(),[xy]补=();

2、数制转换:247.86=

H=______________BCD3.字长为8位的二进制数10010100B,若它表示无符号数,或原码数,或补码数,则该数的真值应分别为:______D,______D或______D源程序如下:

MOVCX,9MOVAL,01HMOVSI,1000HNEXT:MOV[SI],ALINCSISHLAL,1LOOPNEXT

试问:执行本程序后有:AL=_____;SI=______;CX=______;本程序的功能是________________一、I/O端口地址空间以16位为基础,寻址范围在64KB

二、输入输出指令

(累加器专用传输指令)

第十章I/O端口地址1.输入指令IN

格式:

INACR,PORT

功能:把外设端口(PORT)的内容传送给累加器(ACR),完成从I/O到CPU的数据传送。

说明:可以传送8位、16位,相应的累加器选择AL、AX。若端口号在0~255之间,则端口号直接写在指令中(长格式);若端口号大于255(1个字节),则端口号通过DX寄存器间接寻址,即端口号应先放入DX中。

(短格式)例.INAL,61H ;AL(61H端口)长格式INAX,20H ;AX(20H端口)MOVDX,3F8H;短格式INAL,DX ;AL(3F8H端口)演示2.输出指令OUT

格式:OUTPORT,ACR

功能:把累加器的内容传送给外设端口。 说明:对累加器和端口号的选择限制同IN指令。例.OUT61H,AL ;61H端口(AL)OUT20H,AX ;20H端口(AX)MOVDX,3F8H

OUTDX,AL ;3F8H端口(AL)演示例.设某并行打印机的状态端口是379H,其D7位是忙闲位,若D7=0表示忙,为1表示闲,测试该打印机当前状态,若为忙继续测试,否则顺序执行下一条指令。

MOVDX,379H WT:

TESTAL,

JZWT;ZF=1,忙,等待INAX,DX80H*例:测试某状态寄存器(端口号27H)的D2位是否为1,为1,则转ERROR处理

INAL,27HTESTAL,00000100BJNZERROR

9.3BIOS显示中断看教材4.4.2(84页)用来控制光标和颜色的211页列出了中断类型为10H的部分操作功能1、控制光标主要定义光标的大小和是否显示光标入口参数CH,CL表示光标行开始和结束的,数据分放在CH,CL的低4位,当CH的第四位为1,光标不显示,0显示单色显示器光标范围,在0~13.功能2、设置光标位置行、列分别在DH,DL中BH中保存输出页号,必有,单色显示器的值总是0例9.8置光标开始行为5,结束行为7,并把它设置到第5行第6列.MOVCH,5MOVCL,7MOVAH,1INT10H;置光标大小MOVDH,4MOVDL,5MOVBH,0MOVAH,2INT10H;置光标位置功能3、读光标位置行列回送给DH,DL,光标大小送CH,CL功能6、卷屏使屏幕上卷指定行,需7个参数如起始行不为(0,0)。结束的行列不为(24,79),则屏幕只上卷一部分区域,这部分区域叫窗口,如上卷超指定窗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论