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

📄 附录二 程式语言效率分析.htm

📁 汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.wisesoul.net/web/asm/asm/asm07.htm -->
<HTML><HEAD><TITLE>附录二 程式语言效率分析</TITLE>
<META http-equiv=Content-Type content=text/html;CHARSET=GB2312>
<META content="Produced by Doc-2-Doc product, http://www.WinPerTurn.com" 
name=WinPerTurn>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE>BODY {
	LINE-HEIGHT: 20px
}
TD {
	LINE-HEIGHT: 20px
}
.Paragraph {
	FONT-SIZE: 9pt
}
.9 {
	FONT-SIZE: 9pt
}
A:link {
	COLOR: #0033cc; TEXT-DECORATION: none
}
A:visited {
	COLOR: #0033cc; TEXT-DECORATION: none
}
A:active {
	COLOR: #0000ff; TEXT-DECORATION: none
}
A:hover {
	COLOR: #ff0000; TEXT-DECORATION: underline
}
</STYLE>
</HEAD>
<BODY bgColor=#f2f2f2>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=706 border=0>
  <TBODY>
  <TR>
    <TD width=706 bgColor=#000000>
      <TABLE height=98 cellSpacing=0 cellPadding=6 width="100%" border=0>
        <TBODY>
        <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/asm06.htm">上一页</A> 
                  <A 
                  href="http://www.wisesoul.net/web/asm/asm/index.html">目录</A> 
                  <A 
                  href="http://www.wisesoul.net/web/asm/asm/asm08.htm">下一页</A> 
                  </FONT></P></TD></TR></TBODY></TABLE></TD></TR>
        <TR bgColor=#dfe0d1>
          <TD width="100%" bgColor=#f2f2f2 height=21>
            <P align=center><FONT face=细明体><STRONG>附录二 程式语言效率分析</STRONG> 
            </FONT></P></TD></TR>
        <TR bgColor=#f5f7ee>
          <TD align=middle width="100%" bgColor=#f2f2f2 height=51>
            <TABLE>
              <TBODY>
              <TR>
                <TD>
                  <P class=Paragraph><FONT 
                  face=细明体><BR>附录二&nbsp;&nbsp;&nbsp;&nbsp;程式语言效率分析 
                  <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;以下为利用ASSEMBLY,BASIC,PASCAL,C,FORTRAN&nbsp;等程式语言,将一个24x&nbsp;24之点阵字形,放大成为48x&nbsp;48,并分别比较其处理速度、占用空间以及制作时间。 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;为了正确计算执行时间,特意作&nbsp;10,000&nbsp;次处理,至于指定的24x&nbsp;24字形,则假设为一空格。 
                  <BR><BR>一、ASSEMBLY 
                  <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;组合语言变化无穷,先以一般的作法,用点阵位移来处理。 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;1:&nbsp;PAGE&nbsp;&nbsp;&nbsp;60,&nbsp;132 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;2:&nbsp;CG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SEGMENT 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;3:&nbsp;BUFIN&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;72&nbsp;DUP(0) 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;4:&nbsp;BUFOT&nbsp;&nbsp;DB&nbsp;&nbsp;72*4&nbsp;DUP(0) 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;5:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSUME&nbsp;CS:CG,DS:CG,ES:CG 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;6:&nbsp;START: 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,CG 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;8:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DS,AX 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ES,AX 
                  <BR>&nbsp;&nbsp;&nbsp;10:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLD 
                  <BR>&nbsp;&nbsp;&nbsp;11:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BP,10000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;处理10,000次 
                  <BR>&nbsp;&nbsp;&nbsp;12:&nbsp;S3: 
                  <BR>&nbsp;&nbsp;&nbsp;13:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SUB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CX,CX 
                  <BR>&nbsp;&nbsp;&nbsp;14:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BX,CX 
                  <BR>&nbsp;&nbsp;&nbsp;15:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DX,1803H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;计数用 
                  <BR>&nbsp;&nbsp;&nbsp;16:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SI,OFFSET&nbsp;BUFIN&nbsp;&nbsp;;&nbsp;24*24&nbsp;点阵起始位址 
                  <BR>&nbsp;&nbsp;&nbsp;17:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DI,OFFSET&nbsp;BUFOT&nbsp;&nbsp;;&nbsp;预定48*48储存位址 
                  <BR>&nbsp;&nbsp;&nbsp;18:&nbsp;MVBYTE: 
                  <BR>&nbsp;&nbsp;&nbsp;19:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BH,DL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;做三列 
                  <BR>&nbsp;&nbsp;&nbsp;20:&nbsp;MVDB: 
                  <BR>&nbsp;&nbsp;&nbsp;21:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LODSB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;取原点阵 
                  <BR>&nbsp;&nbsp;&nbsp;22:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BL,AL 
                  <BR>&nbsp;&nbsp;&nbsp;23:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CL,8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;做八位元 
                  <BR>&nbsp;&nbsp;&nbsp;24:&nbsp;MVDB1: 
                  <BR>&nbsp;&nbsp;&nbsp;25:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BL,1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;左移一次 
                  <BR>&nbsp;&nbsp;&nbsp;26:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSHF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;保存状态 
                  <BR>&nbsp;&nbsp;&nbsp;27:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;两字同时左移一次 
                  <BR>&nbsp;&nbsp;&nbsp;28:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POPF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;取出原移位状态 
                  <BR>&nbsp;&nbsp;&nbsp;29:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;再一次,得双位点值 
                  <BR>&nbsp;&nbsp;&nbsp;30:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOOP&nbsp;&nbsp;&nbsp;&nbsp;MVDB1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;八次回路 
                  <BR>&nbsp;&nbsp;&nbsp;31:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STOSW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;存入 
                  <BR>&nbsp;&nbsp;&nbsp;32:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DI+4],AX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;上下放大一行 
                  <BR>&nbsp;&nbsp;&nbsp;33:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;共&nbsp;3列 
                  <BR>&nbsp;&nbsp;&nbsp;34:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JNZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MVDB 
                  <BR>&nbsp;&nbsp;&nbsp;35:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DI,6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;移向次行 
                  <BR>&nbsp;&nbsp;&nbsp;36:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DH 
                  <BR>&nbsp;&nbsp;&nbsp;37:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JNZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MVBYTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;共24行 
                  <BR>&nbsp;&nbsp;&nbsp;38:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;执行10,000次 
                  <BR>&nbsp;&nbsp;&nbsp;39:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JNZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;完成 
                  <BR>&nbsp;&nbsp;&nbsp;40:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,4C00H 
                  <BR>&nbsp;&nbsp;&nbsp;41:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21H 
                  <BR>&nbsp;&nbsp;&nbsp;42:&nbsp;CG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDS 
                  <BR>&nbsp;&nbsp;&nbsp;43:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;START 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;本程式制作时间,为十五分钟。 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;经汇编后,得934&nbsp;字元的执行程式,执行耗时14.5秒。 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;若将上段程式加以分析,可以发现到此段程式执行时间全部浪费在23至30这一段「回路」中。为了增加速度,可以将空间加大,避开回路,连续执行八次「移位」动作如次: 
                  <BR>&nbsp;&nbsp;&nbsp;23:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BL,1 
                  <BR>&nbsp;&nbsp;&nbsp;24:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RCL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,1 
                  <BR>&nbsp;&nbsp;&nbsp;25:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,1 

⌨️ 快捷键说明

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