8086伪指令(汇编语言程序格式)

8086伪指令(汇编语言程序格式)

ID:44870531

大小:204.22 KB

页数:28页

时间:2019-10-31

8086伪指令(汇编语言程序格式)_第1页
8086伪指令(汇编语言程序格式)_第2页
8086伪指令(汇编语言程序格式)_第3页
8086伪指令(汇编语言程序格式)_第4页
8086伪指令(汇编语言程序格式)_第5页
资源描述:

《8086伪指令(汇编语言程序格式)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、8086伪指令(汇编语言程序格式)汇编语言程序中的语句可以由指令、伪指令和宏指令组成。上一章我们介绍了8086指令系统中的6类指令,每一条指令都对应一种CPU操作。伪指令又称为伪操作,它是在对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结束等功能。宏指令是由用户按照宏定义格式编写的一段程序,其中语句可以是指令、伪指令,甚至是已定义的宏指令。宏指令将在第七章中介绍。伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其操作;而伪指令是在汇编期间由

2、汇编程序执行的操作命令,除了数据定义及存储器分配伪指令分配存储器空间外,其它伪指令不生成目标码。和各种指令一样,伪指令也是程序设计不可缺少的工具。下面介绍一些常用的伪指令。4.2.1段定义伪指令 段定义伪指令是表示一个段开始和结束的命令,80x86有两种段定义的方式:完整段定义和简化段定义,分别使用不同的段定义伪指令来表示各种段。4.2.1.1完整的段定义伪指令完整段定义伪指令的格式如下:段名SEGMENT  .  .  .段名ENDS段名由用户命名。对于数据段、附加段和堆栈段来说,段内一般是存储单元的定义、分配等伪指令语句;对于代码段

3、中则主要是指令及伪指令语句。定义了段还必须说明哪个段是代码段,哪个段是数据段。ASSUME伪指令就是建立段和段寄存器关系的伪指令,其格式为:ASSUME段寄存器名:段名,…段寄存器名必须是CS、DS、ES和SS中的一个,而段名必须是由SEGMENT定义的段名。·定位类型:说明段的起始边界值(物理地址)。  ·组合类型:说明程序连接时的段组合方法。·类别:在单引号中给出连接时组成段组的类型名。连接程序可把相同类别的段的位置靠在一起。例4.1  ;***********************  data_seg1segment      

4、 ;定义数据段            .            .            .  data_seg1ends  ;***********************  data_seg2segment       ;定义附加段            .            .            .  data_seg2ends  ;***********************  code_segsegment       ;定义代码段   assumecs:code_seg,ds:data_seg1,es:data_s

5、eg2  start:            ;程序执行的起始地址  ;setDSregistertocurrentdatasegment     mov  ax,data_seg1  ;数据段地址     mov  ds,ax     ;存入DS寄存器  ;setESregistertocurrentextrasegment     mov  ax,data_seg2  ;附加段地址     mov  es,ax     ;存入ES寄存器            .            .            .  code_seg

6、ends        ;代码段结束  ;**************************    end  start  由于ASSUME伪指令只是指定某个段分配给哪一个段寄存器,它并不能把段地址装入段寄存器中,所以在代码段中,还必须把段地址装入相应的段寄存器中:  MOV   AX,DATA_SEG1   ;数据段地址  MOV   DS,AX      ;存入DS寄存器  MOV   AX,DATA_SEG2   ;附加段地址  MOV   ES,AX      ;存入ES寄存器  如果程序中还定义了堆栈段STACK_SEG,也

7、需要把段地址装入SS中:  MOV   AX,STACK_SEG   ;堆栈段地址  MOV   SS,AX      ;存入ES寄存器  注意,在程序中不需要用指令装入代码段的段地址,因为在程序初始化时,装入程序已将代码段的段地址装入CS寄存器了。  为了对段定义作进一步地控制,SEGMENT伪指令还可以增加类型及属性的说明,其格式如下:  段名  SEGMENT [定位类型][组合类型]['类别']           .            .            .  段名  ENDS  []中的内容是可选的,一般情况下,这

8、些说明可以不用。但是,如果需要用连接程序把本程序与其他程序模块相连接时,就需要提供类型和属性的说明。表4.2.1·定位类型:说明段的起始边界值(物理地址)。定位类型说明BYTE段可以从任何地址边界开始WOR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。