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

📄 chapter4.htm

📁 我们学校教授的课件 很好的学习助手啊 里面讲的很详细 汉好
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<blockquote>
  <p align="left"><font face="宋体" color="#FFFFFF"><big><big>伪指令:汇编程序在汇编期间处理的操作。</big></big></font></p>
</blockquote>

<p align="left"><font face="宋体" color="#FFFFFF"><big><big>一、指令集选择伪指令</big></big></font></p>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">.8086&nbsp;&nbsp; .286 
  &nbsp;&nbsp; .286P&nbsp; .386&nbsp; .386P&nbsp; .486&nbsp; .486P</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">.8087&nbsp;&nbsp; .287 
  &nbsp;&nbsp; .387</font></p>
</blockquote>

<p align="left"><font FACE="宋体" size="5" color="#FFFFFF">二、表达式赋值伪指令</font></p>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1、EQU</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; 符号名 
  &nbsp;&nbsp; EQU&nbsp; 表达式</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <blockquote>
      <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MAX_VAL&nbsp; EQU 
      &nbsp;&nbsp; 100</font></p>
    </blockquote>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2、=</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; 符号名 = 
  表达式</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <blockquote>
      <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MIN_VAL = 10</font></p>
    </blockquote>
  </blockquote>
  <p align="left"><img src="ii1.gif" alt="ii1.gif (154 bytes)" width="34" height="34"><font
  FACE="宋体" size="5" color="#FFFFFF">“EQU”与“=”的区别:</font></p>
  <p align="left"><font face="宋体" size="5" color="#FFFF00">EQU不允许对同一个符号名进行重复赋值。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3、PURGE</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">解除赋值和宏定义伪指令</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; PURGE &nbsp; 
  符号名/宏名</font></p>
</blockquote>

<p align="left"><font FACE="宋体" size="5" color="#FFFFFF">三、定义存储单元伪指令</font></p>

<blockquote>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DB---定义一个字节单元</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DW---定义一个字单元</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DD---定义一个双字单元</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DQ---定义一个四字单元</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">DT---定义一个十字节单元</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; [变量名] 
  &nbsp; DB&nbsp; 变量初值</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp; VAL1&nbsp;&nbsp; DB 
    &nbsp; 12H,34H</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp; VAL2&nbsp;&nbsp; DW 
    &nbsp; 1234H</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1)单元初值为“空”的表示方法</font></p>
  <p align="left"><font face="宋体" size="5" color="#FFFF00">使用“?”来代替具体的初值。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp; VAL3 
    &nbsp;&nbsp; DB&nbsp; ?</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2)多个单元的定义</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; [变量名] 
  &nbsp; DB&nbsp; 单元个数&nbsp; DUP(初值)</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp; VAL4&nbsp; DB&nbsp; 5 
    &nbsp; DUP(0)</font></p>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp; VAL5&nbsp; DW&nbsp; 3 
    &nbsp; DUP(?)</font></p>
  </blockquote>
</blockquote>

<p align="left"><font FACE="宋体" size="5" color="#FFFFFF">四、指明存储单元类型伪指令</font></p>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1、指明数据类型</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">BYTE 、 WORD&nbsp; 、DWORD</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp; MOV&nbsp; BYTE 
    &nbsp; PTR&nbsp; [BX],0</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2、指明地址类型</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SHORT 、 NEAR 、 FAR</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如:</font></p>
  <blockquote>
    <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp; CALL&nbsp; FAR &nbsp; 
    PTR&nbsp; SUBR1</font></p>
  </blockquote>
</blockquote>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">五、过程定义伪指令</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:</font></p>
  <blockquote>
    <blockquote>
      <p align="left"><font face="宋体" size="5" color="#FFFF00">过程名&nbsp; PROC &nbsp; 
      NEAR/FAR</font></p>
      <p align="left"><font face="宋体" size="5" color="#FFFF00">...</font></p>
      <p align="left"><font face="宋体" size="5" color="#FFFF00">过程名&nbsp; ENDP</font></p>
    </blockquote>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp;&nbsp; 
  当过程的定义和调用在同一个段中时,使用NEAR属性,当过程的定义和调用不在同一个段中时,使用FAR属性。</font></p>
</blockquote>

<p align="left"><font FACE="宋体" size="5" color="#FFFFFF">六、段定义伪指令</font></p>

<blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">一)完整段定义</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1、格式:</font></p>
  <blockquote>
    <p align="left"><font face="宋体" size="5" color="#FFFF00">段名&nbsp; SEGMENT&nbsp; [定位类型] 
    [组合类型] [类别]</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFF00">...</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFF00">段名&nbsp; ENDS</font></p>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2、定位类型:段从具有何种特征的物理地址处开始。 
  &nbsp; </font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1)PARA---隐含类型,段从小段边界(PA能被16整除)开始。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2)PAGE---段从页边界(PA能被256整除)开始。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3)WORD---段从字边界(偶数地址)开始。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">4)BYTE---段可以从任何地址开始。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3、组合类型/连接类型:不同程序模块中的相同名字的段以何种方式连接。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1)PUBLIC---几个段首尾相连。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2)COMMON---几个段从共同的起始地址开始覆盖。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3)STACK---表明该段为堆栈段,系统对SS和SP赋值。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">4)AT&nbsp; 表达式---利用表达式指明段地址,偏移地址为零。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">5)MEMERY---与PUBLIC相同。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp;&nbsp; 
  若在段的定义中未指明组合类型,则表示该段为独立的段,不与任何的其他分段连接。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3、类别:具有相同类别名字的段放在连续的存储空间。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; 
  ‘类别名’</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如,代码段均用‘CODE’。 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">4、指定分段寄存器伪指令</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; ASSUME &nbsp; 
  段寄存器:段名/组名</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">例如: </font></p>
  <blockquote>
    <blockquote>
      <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">ASSUME&nbsp; CS:CODE,DS:DATA</font></p>
    </blockquote>
  </blockquote>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">5、组说明伪指令</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式: 组名&nbsp; GROUP 
  &nbsp; 段名1,段名2,...</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp;&nbsp; 
  将指定的几个分段分配在一个物理段的区域之内(64KB)。它们可以共用一个段寄存器,该寄存器通过组名由ASSUME指定。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">二)简化段定义</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp;&nbsp; 
  只能用于MASM5.0以上版本,不能用于*.COM文件。便于汇编语言模块与其他语言模块的连接。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">1、指定段次序</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:DOSSEG</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp;&nbsp; 
  用于主模块前面,各个分段在内存中的顺序按照DOS段次序约定排列。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">2、指定内存模式</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; .MODEL 
  模式类型</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">指定使用的数据段和代码段的个数和长度。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">TINY---所有的段都在一个物理段区域之内,只有一个段,整个文件最大长度为64KB。即*.COM格式。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">FLAT---32位操作系统模式,只有一个段,但段的最大长度为4GB。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">SMALL---小模式。一个数据段,一个代码段。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">MEDIUM---中模式。一个数据段,多个代码段。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">COMPACT---压缩模式。多个数据段,一个代码段。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">LARGE---大模式。多个数据段,多个代码段。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">HUGE---巨模式。多个数据段,多个代码段。并且允许使用大于64KB的数据语句。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">3、堆栈段语句</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:&nbsp; .STACK &nbsp; 
  [字节长度个数]</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">隐含段名为@STACK,定位类型为PARA</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">组合类型为STACK,类别标志符为‘STACK’</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">隐含长度为1024字节。</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">4、代码段语句</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">格式:.CODE [名字]</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">只有一个代码段时,隐含段名为@CODE,定位类型为WORD,</font></p>
  <p align="left"><font FACE="宋体" size="5" color="#FFFFFF">组合类型为PUBLIC,类别标志符为‘CODE’</font></p>

⌨️ 快捷键说明

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