📄 page47.html
字号:
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>第4章 奇妙的声音</title>
</head>
<body>
<style type="text/css">
body {
background-color: #c0c0c0;
}
table {
background-color: #c0c0c0;
line-height: 24px;
}
</style>
<!导航条>
<p><a href="content1.html">目录</a> <a href="page46.html">上一页</a> <a href="page48.html">下一页</a> <a href="page80.html">下一章</a></p>
<table border=0 align="center" width=800 frame="box" rules="none">
<!标尺行>
<tr>
<td width=3%></td><td width=6%></td><td width=1%></td> <!左侧空白>
<td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td>
<td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td>
<td width=1%></td><td width=6%></td><td width=3%></td> <!右侧空白>
</tr>
<!页眉行>
<tr height=60 valign="bottom">
<td></td><td></td><td></td>
<td colspan=6><img src="icons/flag.gif"></td><td colspan=4></td><td colspan=6 align="right">第4章 奇妙的声音</td> <!章节名>
<td></td><td>-47-</td><td></td> <!页码>
</tr>
<!页眉线>
<tr valign="top">
<td></td><td colspan=20><hr></td><td></td>
</tr>
<!正文>
<font face="宋体" lang="ZH-CN" size=3>
<tr height=20><td colspan=22></td></tr> <!顶部空白>
<tr>
<td></td><td></td> <!左边距>
<td colspan=3></td>
<td colspan=15>
OR 存储单元,立即数<br>
执 行:两个操作数进行"或"计算,结果保存在左边的寄存器或存储单元中
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td></td><td></td>
<td colspan=8>PROG6</td><td colspan=8></td>
<td></td><td></td><!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td></td><td></td>
<td colspan=8>-a100[Enter]</td><td colspan=8></td>
<td></td><td></td><!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td></td><td></td>
<td colspan=6>
0A3E:0100 MOV AL,B6<br>
0A3E:0102 OUT 43,AL<br>
0A3E:0104 MOV AX,04A9<br>
0A3E:0107 OUT 42,AL<br>
0A3E:0109 MOV AL,AH<br>
0A3E:010B OUT 42,AL<br>
0A3E:010D IN AL,61<br>
0A3E:010F PUSH AX<br>
0A3E:0110 OR AL,03<br>
0A3E:0112 OUT 61,AL<br>
0A3E:0114 MOV AH,01<br>
0A3E:0116 INT 21<br>
0A3E:0118 POP AX<br>
0A3E:0119 OUT 61,AL<br>
0A3E:011B RET<br>
0A3E:011C
</td>
<td colspan=12>
;AL寄存器装入定时器初始化设置码<br>
;将设置码输出到43H端口<br>
;AX寄存器置入N值<br>
;将N值分两次输出到42H端口<br>
<br>
<br>
;取得61H端口的当前状态<br>
;在堆栈中保存61H端口的当前状态<br>
;准备将03H输出到61H端口<br>
;打开定时器及电子开关<br>
;选择DOS API的01H功能<br>
;调用21H中断等待键盘输入<br>
;从堆栈中取回61H端口的原状态<br>
;恢复61H端口的原状态<br>
;结束程序运行<br>
<br>
</td>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
<font face="黑体" lang="ZH-CN"><a name="412"><p>4.1.2 编制源程序</p></a></font>
我们已经用DEBUG编制了一些程序,相信大家对DEBUG已有了较深的了解。DEBUG虽然小巧,但它存在很多弱点。最明显的,当我们用"JMP"指令向高地址方向转移时,我们无法知道目的地址究竟是多少,只能先假设一个地址,等到全部程序输入完后在修改转移指令的目的地址。这个问题在DEBUG中无法解决,毕竟它不是一个真正的编译系统。那么如何应用汇编语言的编译系统?这就是我们现在要讨论的问题。先来看这样一个程序:
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td></td><td></td>
<td colspan=8>PROG7</td><td colspan=8></td>
<td></td><td></td><!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td></td><td></td>
<td colspan=2>
CODE<br>
<br>
MAIN<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</td>
<td colspan=2>
<i><u>SEGMENT</u></i><br>
<i><u>ORG</u></i><br>
<i><u>PROC</u></i><br>
MOV<br>
OUT<br>
MOV<br>
OUT<br>
MOV<br>
OUT<br>
IN<br>
PUSH<br>
</td>
<td colspan=4>
<br>
100H<br>
NEAR<br>
AL,10110110B<br>
43H,AL<br>
AX,4A9H<br>
42H,AL<br>
AL,AH<br>
42H,AL<br>
AL,61H<br>
AX<br>
</td>
<td colspan=8>
;定义代码段<br>
;设定偏移地址为0100H<br>
;定义主过程开始<br>
;AL寄存器置入定时器初始化设置码<br>
;初始化定时器<br>
;设置N值为04A9H<br>
;输出N值<br>
<br>
<br>
;取得61H端口当前状态<br>
;将61H端口的当前状态存入堆栈<br>
</td>
<td></td><td></td><!右边距>
</tr>
</font>
<!页脚线>
<tr valign="top">
<td></td><td colspan=20><hr></td><td></td>
</tr>
<!页脚>
<tr height=60 valign="top">
<td></td><td></td>
<td colspan=9><i>Copyright © 2004-2005 <a href="mailto:webmaster@nucstorm.com">Chunk Lee</a></i></td>
<td colspan=9 align="right"><i><a href="http://www.nucstorm.com" target="_top">www.nucstorm.com</a></i></td>
<td></td><td></td>
</tr>
</table>
<!导航条>
<p align="right"><a href="content1.html">目录</a> <a href="page46.html">上一页</a> <a href="page48.html">下一页</a> <a href="page80.html">下一章</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -