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

📄 chapter4.htm

📁 我们学校教授的课件 很好的学习助手啊 里面讲的很详细 汉好
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      face="宋体" size="5" color="#FF0000">MOV&nbsp; DI,CX</font></p>
      <blockquote>
        <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; BX,0</font></p>
      </blockquote>
      <p align="left"><font face="宋体" size="5" color="#FFFF00">LOOP2:MOV&nbsp; AX,TABLE[BX]</font></p>
      <blockquote>
        <p align="left"><font face="宋体" size="5" color="#FFFF00">CMP&nbsp; AX,TABLE[BX+2]</font></p>
        <p align="left"><font face="宋体" size="5" color="#FFFF00">JBE&nbsp; GOON</font></p>
        <p align="left"><font face="宋体" size="5" color="#FFFF00">XCHG&nbsp; AX,TABLE[BX+2]</font></p>
        <p align="left"><font face="宋体" size="5" color="#FFFF00">MOV&nbsp; TABLE[BX],AX</font></p>
      </blockquote>
      <p align="left"><font face="宋体" size="5" color="#FFFF00">GOON:ADD&nbsp; BX,2</font></p>
      <blockquote>
        <p align="left"><font face="宋体" size="5" color="#FFFF00">LOOP&nbsp; LOOP2</font></p>
        <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; CX,DI</font></p>
        <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">LOOP&nbsp; LOOP1</font></p>
      </blockquote>
      <blockquote>
        <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">RET</font></p>
      </blockquote>
      <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MAIN&nbsp; ENDP</font></p>
      <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CODE&nbsp; ENDS</font></p>
      <blockquote>
        <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">END&nbsp; START</font></p>
      </blockquote>
    </blockquote>
  </blockquote>
</blockquote>

<h3 align="left"><font FACE="宋体" size="5" color="#FFFFFF">三、子程序结构设计</font></h3>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1、子程序的定义和调用</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1)定义:同过程的定义。</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">过程名&nbsp; PROC &nbsp; 
    NEAR/FAR</font></p>
    <blockquote>
      <blockquote>
        <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">....</font></p>
      </blockquote>
    </blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">过程名&nbsp; ENDP</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2)调用:CALL指令。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2、现场的保存和恢复</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">现场:当前寄存器和一些关键变量的值。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如,在某个子程序中:</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SUBPRO&nbsp; PROC&nbsp; NEAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">PUSH&nbsp; AX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">PUSH&nbsp; BX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">PUSH&nbsp; CX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">PUSH&nbsp; DX</font></p>
    <blockquote>
      <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">....</font></p>
    </blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">POP&nbsp; DX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">POP&nbsp; CX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">POP&nbsp; BX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">POP&nbsp; AX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">RET</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SUBPRO&nbsp; ENDP</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3、子程序的参数传递</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1)通过寄存器传递参数。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:将从键盘输入的0~0FFFFH的十六进制数以有符号的十进制数显示出来。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CODE&nbsp; SEGMENT</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MAIN&nbsp; PROC&nbsp; FAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">ASSUME&nbsp; CS:CODE</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">START:PUSH&nbsp; DS</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">XOR&nbsp; AX,AX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">PUSH&nbsp; AX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; HEXTOBIN</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; CRLF</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; BINTODEC</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; CRLF</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">RET</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MAIN&nbsp; ENDP</font></p>
  <p align="left"> </p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">HEXTOBIN&nbsp; PROC &nbsp; 
  NEAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; BX,0</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">NEWCHAR:MOV&nbsp; AH,01</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">INT&nbsp; 21H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SUB&nbsp; AL,30H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">JB&nbsp; EXIT</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CMP&nbsp; AL,10</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">JB&nbsp; DIGIT</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SUB&nbsp; AL,07</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CMP&nbsp; AL,0AH</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">JB&nbsp; EXIT</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CMP&nbsp; AL,10H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">JAE&nbsp; EXIT</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DIGIT:MOV&nbsp; CL,4</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SHL&nbsp; BX,CL</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; AH,0</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">ADD&nbsp; BX,AX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">JMP&nbsp; NEWCHAR</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">EXIT:RET</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">HEXTOBIN&nbsp; ENDP</font></p>
  <p align="left"> </p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">BINTODEC&nbsp; PROC &nbsp; 
  NEAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">AND&nbsp; BX,BX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">JNS&nbsp; POSITIVE</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">NEG&nbsp; BX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; DL,‘-’</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; AH,02</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">INT&nbsp; 21H</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">POSITIVE:MOV&nbsp; CX,10000</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; DECDIV</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; CX,1000</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; DECDIV</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; CX,100</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; DECDIV</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; CX,10</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; DECDIV</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; CX,1</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CALL&nbsp; DECDIV</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">RET</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">BINTODEC ENDP</font></p>
  <p align="left"> </p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DECDIV PROC NEAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; AX,BX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; DX,0</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DIV&nbsp; CX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; BX,DX</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; DL,AL</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">ADD&nbsp; DL,30H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; AH,02</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">INT 21H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">RET</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DECDIV&nbsp; ENDP</font></p>
  <p align="left"> </p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CRLF&nbsp; PROC NEAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; DL,0AH 
    &nbsp;&nbsp; ;line feed</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; AH,02</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">INT 21H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; DL,0DH 
    &nbsp;&nbsp; ;carriage return</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MOV&nbsp; AH,02</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">INT 21H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">RET</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CRLF&nbsp; ENDP</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CODE ENDS</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">END&nbsp; START</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2)通过地址表传递参数地址</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
</blockquote>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DATA&nbsp; SEGMENT</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">ARY&nbsp; DW&nbsp; 100 &nbsp; 
    DUP(?)</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">COUNT&nbsp; DW&nbsp; 100</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SUM&nbsp; DW&nbsp; ?</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">TABLE&nbsp; DW&nbsp; 3 &nbsp; 
    DUP(?)</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DATA&nbsp; ENDS</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">CODE&nbsp; SEGMENT</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MAIN&nbsp; PROC&nbsp; FAR</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">ASSUME&nbsp; CS:CODE,DS:DATA,ES:DATA</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">START:PUSH&nbsp; DS</font></p>
  <blockq

⌨️ 快捷键说明

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