📄
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0036)http://go.163.com/~czlyzhj/table.htm -->
<HTML><HEAD><TITLE>一种查表程序</TITLE>
<META content="text/html; charset=gb_2312-80" http-equiv=Content-Type>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
<META content="D:\MICROSOFT OFFICE\OFFICE\html.dot" name=Template></HEAD>
<BODY bgColor=#cccccc link=#0000ff vLink=#800080><B><FONT face=宋体 lang=ZH-CN
size=5>
<P align=center>一种查表程序</P></FONT></B>
<P align=justify><FONT face=宋体
lang=ZH-CN>作者在开发‘带拼读的语音示教仪’时,遇到了这样一个要求:根据</FONT><FONT face=Arial>3</FONT><FONT
face=宋体
lang=ZH-CN>个自变量(声母的键值、韵母的键值、四声键的键值)确定一个函数值(根据这三者拼出的读音的代号),其中自变量的值,函数的值都是已知的,但它们之间没有明确的对应关系,另外要求判断自变量是否有对应的函数值,一般常规的查表法不能使用,经过一番研究,作者自编了一个查表程序,解决了这个问题。</FONT></P><B><FONT
face=宋体 lang=ZH-CN size=4>
<P align=justify>一、查表要求:</P></FONT></B>
<P align=justify><FONT face=宋体 lang=ZH-CN>输入变量:</FONT><FONT
face=Arial>1</FONT><FONT face=宋体 lang=ZH-CN>)声母的键值,</FONT><FONT
face=Arial>2</FONT><FONT face=宋体 lang=ZH-CN>)韵母的键值,</FONT><FONT
face=Arial>3</FONT><FONT face=宋体 lang=ZH-CN>)四声键的键值(在</FONT><FONT
face=Arial>47-50</FONT><FONT face=宋体 lang=ZH-CN>间变化)。</FONT></P><FONT face=宋体
lang=ZH-CN>
<P align=justify>输出结果:对应的读音的代号。</P>
<P align=justify>查表要求:根据输入判断是否有对应值,如有,则输出对应代号,如没有,则给出没有找到的标记。</P></FONT><B><FONT
face=宋体 lang=ZH-CN size=4>
<P align=justify>二、查表程序:</P></FONT></B><FONT face=Arial>
<P
align=justify>;**********************************************************************</P></FONT>
<P align=justify><FONT face=Arial>;</FONT><FONT face=宋体
lang=ZH-CN>双拼拼读处理</FONT></P>
<P align=justify><FONT face=Arial>;</FONT><FONT face=宋体
lang=ZH-CN>入口</FONT><FONT face=Arial>:2EH</FONT><FONT face=宋体
lang=ZH-CN>和</FONT><FONT face=Arial>2DH</FONT><FONT face=宋体
lang=ZH-CN>中分别存入拼读的声母和韵母</FONT><FONT face=Arial>,2CH</FONT><FONT face=宋体
lang=ZH-CN>中存放拼读的四声键值</FONT><FONT face=Arial>,</FONT></P>
<P align=justify><FONT face=Arial>;</FONT><FONT face=宋体
lang=ZH-CN>出口</FONT><FONT face=Arial>:</FONT><FONT face=宋体
lang=ZH-CN>找到则返回声音信号的序号值</FONT><FONT face=Arial>50H</FONT><FONT face=宋体
lang=ZH-CN>中</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>且</FONT><FONT face=Arial>06H</FONT><FONT face=宋体
lang=ZH-CN>置</FONT><FONT face=Arial>1</FONT></P>
<P align=justify><FONT face=Arial>;</FONT><FONT face=宋体
lang=ZH-CN>如未找到</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>则</FONT><FONT face=Arial>06H</FONT><FONT face=宋体
lang=ZH-CN>清</FONT><FONT face=Arial>'0'</FONT></P>
<P align=justify><FONT face=Arial>;R6</FONT><FONT face=宋体
lang=ZH-CN>作拼读总数计数器</FONT></P><FONT face=Arial>
<P
align=justify>;***********************************************************************</P>
<P align=justify>J_XH2:</P>
<DIR>
<DIR>
<P align=justify>PUSH PSW</P>
<P align=justify>MOV R6,#0</P>
<P align=justify>MOV DPTR,#J_X2</P></DIR></DIR>
<P align=justify>J2_LP0:</P></FONT>
<DIR>
<DIR><FONT face=Arial>
<P align=justify>INC R6</P>
<P align=justify>CLR A</P>
<P align=justify>MOVC A,@A+DPTR</P></FONT>
<P align=justify><FONT face=Arial>CJNE A,2EH,J2_NOTEQH ;</FONT><FONT face=宋体
lang=ZH-CN>取声母</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>比较</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>不等则转</FONT></P><FONT face=Arial>
<P align=justify>INC DPTR </P>
<P align=justify>MOVC A,@A+DPTR </P></FONT>
<P align=justify><FONT face=Arial>CJNE A,2DH,J2_NOTEQL ;</FONT><FONT face=宋体
lang=ZH-CN>若声母等</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>则韵母</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>不等转</FONT></P><FONT face=Arial>
<P align=justify>MOV A,2CH </P></FONT>
<P align=justify><FONT face=Arial>SUBB A,#47 ;</FONT><FONT face=宋体
lang=ZH-CN>减去</FONT><FONT face=Arial>47(</FONT><FONT face=宋体
lang=ZH-CN>基数</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>使键值从</FONT><FONT face=Arial>'0'</FONT><FONT face=宋体
lang=ZH-CN>开始</FONT><FONT face=Arial>,0</FONT><FONT face=宋体
lang=ZH-CN>到</FONT><FONT face=Arial>3)</FONT></P>
<P align=justify><FONT face=Arial>MOV R7,A ;R7</FONT><FONT face=宋体
lang=ZH-CN>作四声键值记数器</FONT></P></DIR></DIR><FONT face=Arial>
<P align=justify>J2_LOOP: </P></FONT>
<DIR>
<DIR>
<P align=justify><FONT face=Arial>CJNE R7,#0,J2_LOOP1 ;R7</FONT><FONT face=宋体
lang=ZH-CN>中的值不为</FONT><FONT face=Arial>0,</FONT><FONT face=宋体
lang=ZH-CN>则转去循环</FONT></P><FONT face=Arial>
<P align=justify>AJMP J2_DONE </P></FONT></DIR></DIR><FONT face=Arial>
<P align=justify>J2_LOOP1: </P></FONT>
<DIR>
<DIR><FONT face=Arial>
<P align=justify>INC DPTR </P>
<P align=justify>DEC R7</P>
<P align=justify>AJMP J2_LOOP</P></FONT>
<P align=justify><FONT face=Arial>J2_DONE: ;</FONT><FONT face=宋体
lang=ZH-CN>取数</FONT> </P><FONT face=Arial>
<P align=justify>INC DPTR</P>
<P align=justify>CLR A</P>
<P align=justify>MOVC A,@A+DPTR</P></FONT>
<P align=justify><FONT face=Arial>MOV 50H,A ;</FONT><FONT face=宋体
lang=ZH-CN>存数</FONT></P><FONT face=Arial>
<P align=justify>SETB 06H</P>
<P align=justify>AJMP J2_RET </P></FONT></DIR></DIR><FONT face=Arial>
<P align=justify>J2_NOTEQH:</P>
<DIR>
<DIR>
<P align=justify>INC DPTR </P></DIR></DIR>
<P align=justify>J2_NOTEQL: </P></FONT>
<DIR>
<DIR><FONT face=Arial>
<P align=justify>INC DPTR</P>
<P align=justify>INC DPTR</P>
<P align=justify>INC DPTR</P>
<P align=justify>INC DPTR </P></FONT>
<P align=justify><FONT face=Arial>CJNE R6,#SPZS,J2_LP0 ;</FONT><FONT face=宋体
lang=ZH-CN>不等于双拼总数</FONT><FONT face=Arial>,</FONT><FONT face=宋体
lang=ZH-CN>则继续循环</FONT> </P><FONT face=Arial>
<P align=justify>CLR 06H </P></FONT></DIR></DIR><FONT face=Arial>
<P align=justify>J2_RET:</P>
<DIR>
<DIR>
<P align=justify>POP PSW</P></DIR></DIR>
<P align=justify>RET</P>
<P align=justify>J_X2: DB 18 26 100 101 102 103 ;zi</P>
<P align=justify>DB 19 26 104 105 106 107 ;ci</P>
<P align=justify>DB 20 26 108 109 110 111 ;si</P>
<P align=justify>.</P>
<P align=justify>.</P>
<P align=justify>.</P></FONT><B><FONT face=宋体 lang=ZH-CN size=4>
<P align=justify>三、说明</P></FONT></B>
<P align=justify><FONT face=宋体
lang=ZH-CN>使用本程序前,必须确切地知道表中共有多少个数据,并将定义一个常量:</FONT><FONT
face=Arial>SPZS</FONT><FONT face=宋体 lang=ZH-CN>,即在程序的头部作如下定义(设表中共有</FONT><FONT
face=Arial>100</FONT><FONT face=宋体 lang=ZH-CN>个数据):</FONT></P><FONT face=Arial>
<P align=justify>SPZS EQU 100</P></FONT>
<P align=justify><FONT face=宋体
lang=ZH-CN>根据这个程序,不难得到三拼的查表程序。以上程序已通过验证,证明运行无误。</FONT></P>
<P align=justify><FONT face=宋体 lang=ZH-CN>这是我很早以前作的工作,请各位莫要见笑。</FONT></P>
<P align=justify><FONT face=宋体 lang=ZH-CN> </FONT></P>
<DIV align=center><FONT face=宋体 lang=ZH-CN><A
href="http://go.163.com/~czlyzhj/other.htm"><IMG border=0 height=55
src="一种查表程序.files/back1.gif" width=43></A></FONT> </DIV>
<DIV align=center></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -