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

📄 附录一 shell 排序测试.htm

📁 汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂
💻 HTM
📖 第 1 页 / 共 4 页
字号:
                  <BR>&nbsp;269:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BX,8000H 
                  <BR>&nbsp;270:&nbsp;ZDEL1: 
                  <BR>&nbsp;271:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BP 
                  <BR>&nbsp;272:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZCH2 
                  <BR>&nbsp;273:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,SI 
                  <BR>&nbsp;274:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH&nbsp;&nbsp;&nbsp;&nbsp;DI 
                  <BR>&nbsp;275:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CL,10 
                  <BR>&nbsp;276:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REPZ&nbsp;&nbsp;&nbsp;&nbsp;CMPSB 
                  <BR>&nbsp;277:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DI 
                  <BR>&nbsp;278:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SI,AX 
                  <BR>&nbsp;279:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JNZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZDEL2 
                  <BR>&nbsp;280:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,2020H 
                  <BR>&nbsp;281:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[SI],AX 
                  <BR>&nbsp;282:&nbsp;ZDEL2: 
                  <BR>&nbsp;283:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SI,10 
                  <BR>&nbsp;284:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DI,10 
                  <BR>&nbsp;285:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;ZCHGSEG 
                  <BR>&nbsp;286:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZDEL1 
                  <BR>&nbsp;287:&nbsp;ZBW1&nbsp;&nbsp;&nbsp;&nbsp;DW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 
                  <BR>&nbsp;288:&nbsp;ZBW2&nbsp;&nbsp;&nbsp;&nbsp;DW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 
                  <BR>&nbsp;289:&nbsp;ZFCB&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'YRRR',0 
                  <BR>&nbsp;290:&nbsp;ZSTR1&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'FILE&nbsp;NOT&nbsp;FOUND&nbsp;!$' 
                  <BR>&nbsp;291:&nbsp;CG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDS 
                  <BR>&nbsp;292:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;START 
                  <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;本段程式,计用了80小时,源程式为&nbsp;3,581字元,执行程式则为&nbsp;803&nbsp;字元。执行48,000词组排序,需时70秒。 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;及后,因为C语言所写的程式,无法处理48,000个词组,一直试到8,000&nbsp;条,C才能胜任。再用组合语言程式测试,仅需时8秒。 
                  <BR><BR>三、C&nbsp;语言之制作过程: 
                  <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;我们用相同的方法,利用C写作如下程式: 
                  <BR>&nbsp;&nbsp;&nbsp;1:&nbsp;#&nbsp;include&nbsp;&lt;fcntl.h&gt; 
                  <BR>&nbsp;&nbsp;&nbsp;2:&nbsp;#&nbsp;include&nbsp;&lt;sys\stat.h&gt; 
                  <BR>&nbsp;&nbsp;&nbsp;3:&nbsp; 
                  <BR>&nbsp;&nbsp;&nbsp;4:&nbsp;extern&nbsp;unsigned&nbsp;char&nbsp;yr[]; 
                  <BR>&nbsp;&nbsp;&nbsp;5:&nbsp; 
                  <BR>&nbsp;&nbsp;&nbsp;6:&nbsp;main(argc,&nbsp;argv) 
                  <BR>&nbsp;&nbsp;&nbsp;7:&nbsp;int&nbsp;argc; 
                  <BR>&nbsp;&nbsp;&nbsp;8:&nbsp;char&nbsp;*argv[]; 
                  <BR>&nbsp;&nbsp;&nbsp;9:&nbsp;{ 
                  <BR>&nbsp;&nbsp;10:&nbsp;&nbsp;int&nbsp;&nbsp;i,&nbsp;n,&nbsp;fd,&nbsp;result; 
                  <BR>&nbsp;&nbsp;11:&nbsp;&nbsp;long&nbsp;&nbsp;rsum; 
                  <BR>&nbsp;&nbsp;12:&nbsp;&nbsp;unsigned&nbsp;char&nbsp;*yrp[8000],&nbsp;*yrptr,&nbsp;eof[1]; 
                  <BR>&nbsp;&nbsp;13:&nbsp; 
                  <BR>&nbsp;&nbsp;14:&nbsp;&nbsp;fd&nbsp;=&nbsp;open(argv[1],&nbsp;O_RDWR); 
                  <BR>&nbsp;&nbsp;15:&nbsp;&nbsp;rsum&nbsp;=&nbsp;0; 
                  <BR>&nbsp;&nbsp;16:&nbsp;&nbsp;while&nbsp;((result&nbsp;=&nbsp;read(fd,&nbsp;&amp;yr[rsum],&nbsp;16384))&nbsp;&gt;&nbsp;0) 
                  <BR>&nbsp;&nbsp;17:&nbsp;&nbsp;{ 
                  <BR>&nbsp;&nbsp;18:&nbsp;&nbsp;&nbsp;rsum&nbsp;+=&nbsp;result; 
                  <BR>&nbsp;&nbsp;19:&nbsp;&nbsp;&nbsp;printf("%d&nbsp;%ld\n",&nbsp;result,&nbsp;rsum); 
                  <BR>&nbsp;&nbsp;20:&nbsp;&nbsp;} 
                  <BR>&nbsp;&nbsp;21:&nbsp;&nbsp;close(fd); 
                  <BR>&nbsp;&nbsp;22:&nbsp;&nbsp;printf("after&nbsp;reading&nbsp;file\n"); 
                  <BR>&nbsp;&nbsp;23:&nbsp;&nbsp;fd&nbsp;=&nbsp;creat(argv[1],&nbsp;S_IREAD&nbsp;|&nbsp;S_IWRITE); 
                  <BR>&nbsp;&nbsp;24:&nbsp;&nbsp;printf("after&nbsp;creat&nbsp;file\n"); 
                  <BR>&nbsp;&nbsp;25:&nbsp;&nbsp;yrp[0]&nbsp;=&nbsp;yrptr&nbsp;=&nbsp;yr; 
                  <BR>&nbsp;&nbsp;26:&nbsp;&nbsp;n&nbsp;=&nbsp;1; 
                  <BR>&nbsp;&nbsp;27:&nbsp;&nbsp;while&nbsp;(*yrptr&nbsp;&amp;&amp;&nbsp;n&nbsp;&lt;&nbsp;8000) 
                  <BR>&nbsp;&nbsp;28:&nbsp;&nbsp;{ 
                  <BR>&nbsp;&nbsp;29:&nbsp;&nbsp;&nbsp;while&nbsp;(*yrptr++&nbsp;!=&nbsp;'\n'); 
                  <BR>&nbsp;&nbsp;30:&nbsp;&nbsp;&nbsp;yrp[n++]&nbsp;=&nbsp;yrptr; 
                  <BR>&nbsp;&nbsp;31:&nbsp;&nbsp;} 
                  <BR>&nbsp;&nbsp;32:&nbsp;&nbsp;sort(yrp,&nbsp;n); 
                  <BR>&nbsp;&nbsp;33:&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++) 
                  <BR>&nbsp;&nbsp;34:&nbsp;&nbsp;{ 
                  <BR>&nbsp;&nbsp;35:&nbsp;&nbsp;&nbsp;yrptr&nbsp;=&nbsp;yrp[i]; 
                  <BR>&nbsp;&nbsp;36:&nbsp;&nbsp;&nbsp;do 
                  <BR>&nbsp;&nbsp;37:&nbsp;&nbsp;&nbsp;{ 
                  <BR>&nbsp;&nbsp;38:&nbsp;&nbsp;&nbsp;&nbsp;write(fd,&nbsp;yrptr,&nbsp;1); 
                  <BR>&nbsp;&nbsp;39:&nbsp;&nbsp;&nbsp;}&nbsp;while&nbsp;(*yrptr++&nbsp;!=&nbsp;'\n'); 
                  <BR>&nbsp;&nbsp;40:&nbsp;&nbsp;} 
                  <BR>&nbsp;&nbsp;41:&nbsp;&nbsp;eof[0]&nbsp;=&nbsp;0x1a; 
                  <BR>&nbsp;&nbsp;42:&nbsp;&nbsp;write(fd,&nbsp;eof,&nbsp;1); 
                  <BR>&nbsp;&nbsp;43:&nbsp;&nbsp;close(fd); 
                  <BR>&nbsp;&nbsp;44:&nbsp;} <BR>&nbsp;&nbsp;45:&nbsp; 
                  <BR>&nbsp;&nbsp;46:&nbsp; 
                  <BR>&nbsp;&nbsp;47:&nbsp;sort(v,&nbsp;n) 
                  <BR>&nbsp;&nbsp;48:&nbsp;unsigned&nbsp;char&nbsp;*v[]; 
                  <BR>&nbsp;&nbsp;49:&nbsp;int&nbsp;&nbsp;n; 
                  <BR>&nbsp;&nbsp;50:&nbsp;{ 
                  <BR>&nbsp;&nbsp;51:&nbsp;&nbsp;int&nbsp;&nbsp;gap,&nbsp;i,&nbsp;j; 
                  <BR>&nbsp;&nbsp;52:&nbsp;&nbsp;unsigned&nbsp;char&nbsp;*temp; 
                  <BR>&nbsp;&nbsp;53:&nbsp; 
                  <BR>&nbsp;&nbsp;54:&nbsp;&nbsp;printf("enter&nbsp;sorting\n"); 
                  <BR>&nbsp;&nbsp;55:&nbsp;&nbsp;for&nbsp;(gap&nbsp;=&nbsp;n&nbsp;/&nbsp;2;&nbsp;gap&nbsp;&gt;&nbsp;0;&nbsp;gap&nbsp;/=&nbsp;2) 
                  <BR>&nbsp;&nbsp;56:&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;gap;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++) 
                  <BR>&nbsp;&nbsp;57:&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j&nbsp;=&nbsp;i&nbsp;-&nbsp;gap;&nbsp;j&nbsp;&gt;=&nbsp;0;&nbsp;j&nbsp;-=&nbsp;gap) 
                  <BR>&nbsp;&nbsp;58:&nbsp;&nbsp;&nbsp;&nbsp;{ 
                  <BR>&nbsp;&nbsp;59:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strcmp(v[j],&nbsp;v[j&nbsp;+&nbsp;gap])&nbsp;&lt;=&nbsp;0) 
                  <BR>&nbsp;&nbsp;60:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; 
                  <BR>&nbsp;&nbsp;61:&nbsp;/*&nbsp;&nbsp;&nbsp;&nbsp;printf("swapping\n");*/ 
                  <BR>&nbsp;&nbsp;62:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;v[j]; 
                  <BR>&nbsp;&nbsp;63:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v[j]&nbsp;=&nbsp;v[j&nbsp;+&nbsp;gap]; 
                  <BR>&nbsp;&nbsp;64:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v[j&nbsp;+&nbsp;gap]&nbsp;=&nbsp;temp; 
                  <BR>&nbsp;&nbsp;65:&nbsp;&nbsp;&nbsp;&nbsp;} 
                  <BR>&nbsp;&nbsp;66:&nbsp;} <BR>&nbsp;&nbsp;67:&nbsp; 
                  <BR>&nbsp;&nbsp;68:&nbsp;strcmp(v1,&nbsp;v2) 
                  <BR>&nbsp;&nbsp;69:&nbsp;unsigned&nbsp;char&nbsp;*v1,&nbsp;*v2; 
                  <BR>&nbsp;&nbsp;70:&nbsp;{ 
                  <BR>&nbsp;&nbsp;71:&nbsp;/*&nbsp;printf("enter&nbsp;strcmp\n");*/ 
                  <BR>&nbsp;&nbsp;72:&nbsp;&nbsp;for&nbsp;(;&nbsp;*v1&nbsp;==&nbsp;*v2;&nbsp;v1++,&nbsp;v2++) 
                  <BR>&nbsp;&nbsp;73:&nbsp;&nbsp;&nbsp;if&nbsp;(*v1&nbsp;==&nbsp;'\n') 
                  <BR>&nbsp;&nbsp;74:&nbsp;&nbsp;&nbsp;&nbsp;return(0); 
                  <BR>&nbsp;&nbsp;75:&nbsp;&nbsp;return(*v1&nbsp;-&nbsp;*v2); 
                  <BR>&nbsp;&nbsp;76:&nbsp;} 
                  <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;本段程式由设计到制作完成,仅用了20小时。但在测试时,花了不少时间,费尽心机,始终无法令本程式运行,原因是资料太大系统空间不够。&nbsp; 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;最后不得已将资料删至8,000&nbsp;条,才运行成功,需时30秒。 
                  <BR><BR></FONT></P></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD width="100%" bgColor=#f2f2f2 height=20>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD width="100%">
                  <P class=9 align=right><FONT face=细明体><A 
                  href="http://www.wisesoul.net/web/asm/asm/asm05.htm">上一页</A> 
                  <A 
                  href="http://www.wisesoul.net/web/asm/asm/index.html">目录</A> 
                  <A 
                  href="http://www.wisesoul.net/web/asm/asm/asm07.htm">下一页</A> 
                  </FONT></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>

⌨️ 快捷键说明

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