⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asm_tutorial_04.html

📁 嵌入式C++开发环境 模拟器 可以帮助你调试开发环境 提高工作效率
💻 HTML
字号:
<!doctype HTML public "-//W3O//DTD W3 HTML 3.0//EN">
<HTML>

<HEAD>

<TITLE>8086 Assembler Tutorial for Beginners (Part 4)</TITLE>

<META name="description" content="Interrupts - 8086 Assembler">

<META name="keywords" content="interrupts, 8086, tutorial, programming, assembler tutorial, tutorial for begginers">

<META name="robots" content="nofollow">

</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#007099" alink="#FF0000">

<TABLE WIDTH=80%>
<TR><TD>

<FONT FACE="Verdana" SIZE=3>

<FONT SIZE=+1>
<B>8086 Assembler Tutorial for Beginners (Part 4)</B>
</FONT>




<BR><BR>

<FONT SIZE=+2><B>中断</B></FONT>
<BR> </FONT><p><font face="Verdana">中断是一系列功能调用。这些功能调用使得编程更加容易。<br>
<br>
比如,你想在打印机上输出一个字符,你只需要简单的调用<br>
<br>
中断,它将帮你完成所有的事情。另外还有控制磁盘和其他<br>
<br>
硬件工作的中断。我们将这些功能调用称作软件中断。<br>
<br>
不同的硬件同样可以触发中断,这些中断称作硬件中断。<span lang="zh-cn">这里</span>,<br>
<br>
我们只介绍<b>软件中断(</b></font><FONT FACE="Verdana" SIZE=3><B>software interrupts</B></FONT><font face="Verdana">)。</font><FONT FACE="Verdana" SIZE=3><BR>

 </FONT></p>
<p><font face="Verdana">触发一个<b>软件中断</b>,需要使用</font><FONT FACE="Verdana" SIZE=3><B>INT</B></FONT><font face="Verdana">指令,它的使用方式非常简单<span lang="zh-cn">:</span></font><FONT FACE="Verdana" SIZE=3><BR>
 </p>
<BLOCKQUOTE>
<B>INT value</B>
</BLOCKQUOTE>
<br>
上面<b>value</b>的取值范围是从<span lang="zh-cn"> </span>0<span lang="zh-cn"> </span>到<span lang="zh-cn">
</span>255<span lang="zh-cn"> </span>(或者0到0ffh),通常我们<br>
<br>
使用十六进制。<p>你也许猜测只有256个中断调用,但是这是不正确的。因为每一<br>
<br>
个中断都有子功能。</p>
<p>在调用一个中断的子功能之前,需要设置<B>AH</B>寄存器。</p>
<p><br>
每一个中断最多可以拥有256个子功能(于是,我们有<br>
<br>
256*256=65536个功能调用)。一般情况下使用<B>AH</B>寄存器,但是<br>
<br>
一些情况下可能使用另外的寄存器。通常,其他的寄存器<br>
<br>
是用来传递数据和参数的。</p>
<p>下面的例子调用了 <B>INT 10h</B>中断<B>0Eh</B>子功能输出字符串‘Hello!'。<br>
<br>
这个功能作用是在屏幕上显示一个字符,然后光标进一,如果<br>
<br>
需要还滚屏。<BR>

 </p>

<TABLE BORDER=1 CELLPADDING=10 WIDTH=50%><TR><TD>
<PRE><FONT FACE="Fixedsys">#MAKE_COM# ; 生成com文件的指令</FONT></PRE>
<PRE><FONT FACE="Fixedsys">ORG 100h</FONT></PRE>
<PRE><FONT FACE="Fixedsys">;我们使用的这个子功能没有返回值,
;所以我们只用设置就可以了。

MOV AH, 0Eh ; 选择子功能</FONT></PRE>
<PRE><FONT FACE="Fixedsys">;int 10h/0eh 子功能,输出放在
;<span lang="zh-cn">AL</span>寄存器中的<span lang="zh-cn">ASCII</span>码对应的字符

MOV AL, 'H' ; ASCII码: 72
INT 10h ; 输出

MOV AL, 'e' ; ASCII 码: 101
INT 10h ; 输出

MOV AL, 'l' ; ASCII 码: 108
INT 10h ; 输出

MOV AL, 'l' ; ASCII 码: 108
INT 10h ; 输出

MOV AL, 'o' ; ASCII 码: 111
INT 10h ; 输出

MOV AL, '!' ; ASCII 码: 33
INT 10h ; 输出

RET ; 返回操作系统</FONT></PRE>
</TD></TR></TABLE>

<BR>将上述程序拷贝粘贴到<I>Emu8086</I>代码编辑器,点击<p>[<B>Compile and Emulate</B>]<span lang="zh-cn">
</span>按钮,运行!</p>
<p>&nbsp; 关于中断更多的知识,请查阅</p>

<p><span lang="zh-cn">&nbsp;</span><A HREF="supported_interrupts.html"><B>支持中断列表 
(list of supported interrupts)</B></A><BR>

 </p>

<HR>
<CENTER>
<A HREF="asm_tutorial_03.html"><B> &lt;&lt;&lt; 上一部分 &lt;&lt;&lt; </B></A>
&nbsp;&nbsp;&nbsp;&nbsp;
<A HREF="asm_tutorial_05.html"><B> >>> 下一部分 >>> </B></A>
</CENTER>
<HR>


<BR>

</FONT>


</TD></TR>
</TABLE>



</BODY>

</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -