《汇编语言》讲稿-13省公开课一等奖全国示范课微课金奖课件_第1页
《汇编语言》讲稿-13省公开课一等奖全国示范课微课金奖课件_第2页
《汇编语言》讲稿-13省公开课一等奖全国示范课微课金奖课件_第3页
《汇编语言》讲稿-13省公开课一等奖全国示范课微课金奖课件_第4页
《汇编语言》讲稿-13省公开课一等奖全国示范课微课金奖课件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第13章int指令1/29引言中止信息能够来自CPU内部和外部,当CPU内部有需要处理事情发生时候,将产生需要马上处理中止信息,引发中止过程。在上一章中,我们讲解了中止过程和两种内中止处理。这一章中,我们讲解另一个主要内中止,由int指令引发中止。2/2913.1int指令int格式:intn,n为中止类型码。它功效是引发中止过程。CPU执行intn指令,相当于引发一个n号中止中止过程,执行过程以下:(1)取中止类型码n;(2)标志存放器入栈,IF=0,TF=0;(3)CS、IP入栈;(4)(IP)=(n*4),(CS)=(n*4+2)。从此处转去执行n号中止中止处理程序。3/2913.1int指令能够在程序中使用int指令调用任何一个中止中止处理程序。比如,下面程序:assumecs:codecodesegmentstart:movax,0b800hmoves,axmovbyteptres:[12*160+40*2],’!’int0codeendsendstart4/2913.1int指令这个程序在Windows中DOS方式下执行时,将在屏幕中间显示一个“!”,然后显示“Divideoverflow”后返回到系统中。“!”是我们编程显示,而,“Divideoverflow”是哪里来呢?我们程序中又没有做除法,不可能产生除法溢出。5/2913.1int指令程序是没有做除法,不过在结尾使用了int0指令。CPU执行int0指令时,将引发中止过程,执行0号中止处理程序,而系统设置0号中止处理程序功效是显示“Divideoverflow”,然后返回到系统。6/2913.1int指令可见,int指令最终功效和call指令相同,都是调用一段程序。普通情况下,系统将一些含有一定功效子程序,以中止处理程序方式提供给应用程序调用。7/2913.1int指令我们在编程时候,能够用int指令调用这些子程序。当然,也能够自己编写一些中止处理程序供他人使用。以后,我们能够将中止处理程序简称为中止例程。8/2913.2BIOS中止例程应用下面我们举几个例子,来看一下BIOS中止例程应用。int10h中止例程是BIOS提供中止例程,其中包含了多个和屏幕输出相关子程序。9/2913.2BIOS中止例程应用普通来说,一个供程序员调用中止例程中往往包含多个子程序,中止例程内部用传递进来参数来决定执行哪个子程序。BIOS和DOS提供中止例程,都用ah来传递内部子程序编号。

10/2913.2BIOS中止例程应用我们看一下int10h中止例程设置光标位置功效。

movah,2movbh,0movdh,5movdl,12int10h11/2913.2BIOS中止例程应用(ah)=2表示调用第10h号中止例程2号子程序,功效为设置光标位置,能够提供光标所在行号(80*25字符模式下:0~24)、列号(80*25字符模式下:0~79),和页号作为参数。(bh)=0,(dh)=5,(dl)=12,设置光标到第0页,第5行,第12列。12/2913.2BIOS中止例程应用bh中页号含义:内存地址空间中,B8000h~BFFFFh共32K空间,为80*25彩色字符模式显示缓冲区。一屏内容在显示缓冲区中共占4000个字节。13/2913.2BIOS中止例程应用显示缓冲区分为8页,每页4K(≈4000),显示器能够显示任意一页内容。普通情况下,显示第0页内容。也就是说,通常情况下,B8000~B8F9F中4000个字节内容将出现在显示器上。14/2913.2BIOS中止例程应用再看一下int10h中止例程在光标位置显示字符功效。

movah,9 ;置光标

moval,’a’ ;字符

movbl,7 ;颜色属性

movbh,0 ;第0页

movcx,3 ;字符重复个数

int10h15/2913.2BIOS中止例程应用(ah)=9表示调用第10h号中止例程9号子程序;功效为在光标位置显示字符,能够提供要显示字符、颜色属性、页号、字符重复个数作为参数。16/2913.2BIOS中止例程应用(bh)中颜色属性格式以下:能够看出,和显存中属性字节格式相同。17/2913.2BIOS中止例程应用编程:在屏幕5行12列显示3个红底高亮闪烁绿色‘a’。程序源码注意:闪烁效果必须在全屏DOS方式下才能看到。18/2913.3DOS中止例程应用int21h中止例程是DOS提供中止例程,其中包含了DOS提供给程序员在编程时调用子程序。我们从前一直使用是int21中止例程4ch号功效,即程序返回功效,以下:

movah,4ch;程序返回

moval,0;返回值

int21h19/2913.3DOS中止例程应用(ah)=4ch表示调用第21h号中止例程4ch号子程序,功效为程序返回,能够提供返回值作为参数。我们前面使用这个功效时候经常写作:

movax,4c00hint21h20/2913.3DOS中止例程应用我们看一下int21h中止例程在光标位置显示字符串功效:

ds:dx指向字符串;要显示字符串需用“$”作为结束符

movah,9;功效号9,表示在光标位置显示字符串

int21h21/2913.3DOS中止例程应用(ah)=9表示调用第21h号中止例程9号子程序,功效为在光标位置显示字符串,能够提供要显示字符串地址作为参数。22/2913.3DOS中止例程应用编程:在屏幕5列12行显示字符串“Welcometomasm!”。源代码23/2913.3DOS中止例程应用上述程序在屏幕5列12行显示字符串“Welcometomasm!”,直到遇见“$”(“$”

本身并不显示,只起到边界作用)。假如字符串比较长,碰到行尾,程序会自动转到下一行开头处继续显示;假如到了最终一行,还能自动上卷一行。24/2913.3DOS中止例程应用DOS为程序员提供了许多能够调用子程序,都包含在int21h中止例程中。我们这里只对原理进行了讲解,对于DOS提供全部可调用子程序情况,读者能够参考相关书籍。25/29DOS21号中止2号功效MOVDL,1;将数值01h装入DL存放器

MOVAH,2;将数值02h装入ah存放器

INT21;调用DOS21号中止2号功效,用来逐一显示装入DL字符

26/29MOVCX,0100;装入循环次数

MOVDL,00;装入第一个ASCII码,随即每次循环装入新码

s:MOVAH,02

INT21

INCDL;INC:递增指令,每次将数据存放器DL内数值加1

LOOPs

;LOOP:循环指令,每执行一次LOOP,CX值减1,并跳

;到循环起始地址105,直到CX为0,循环停顿

27/29显示任意字符串能够使用DO

温馨提示

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

评论

0/150

提交评论