1. 1、本文档共97页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter6-8.pdf

汇编语言程序设计 汇编语言程序设计 吴 向 军 中山大学计算机科学系 2003.03.20 中山大学计算机科学系 2 第6章程序的基本结构 6.1 源程序的基本组成 6.1.1 段的定义 在定义段时,每个段都有一个段名。在取段名时,要取一个具有一定含义 的段名。段定义的一般格式如下: 段名 SEGMENT [对齐类型] [组合类型] [类别] … ;段内的具体内容 段名 ENDS 其中:“段名”必须是一个合法的标识符,前后二个段名要相同。可选项“对 齐类型”、“组合类型”和“类别”的说明作用请见6.3节中的叙述。 段的长度是指该段所占的字节数: 如果段是数据段,则其长度是其所有变量所占字节数的总和; 如果段是代码段,则其长度是其所有指令所占字节数的总和。 在通常情况下,一个段的长度不能超过64K,在80386及其以后系统的保护 方式下,段基地址是32位,段的最大长度可达4G。 中山大学计算机科学系 3 第6章程序的基本结构 一个数据段的定义例子: DATA1 SEGMENT word1 DW 1, 9078H, ? byte1 DB 21, ‘World’ DD DATA1 ENDS 一个代码段的例子: CODE1 SEGMENT MOV AX, DATA1 ;把数据段DATA1的段值送AX MOV DS, AX ;把AX的值送给DS,即:DS存储数据段的段值 … MOV AX, 4C00H INT 21H ;调用DOS功能,结束程序的运行 CODE1 ENDS 中山大学计算机科学系 4 第6章程序的基本结构 6.1.2 段寄存器的说明语句 在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一 种对应关系。建立这种对应关系的说明语句格式如下: ASSUME 段寄存器名:段名[, 段寄存器名:段名, ……] 其中:段寄存器是CS、DS、ES、SS、FS和GS,段名在段定义语句说明。 例如, ASSUME CS:CODE1, DS:DATA1 说明了:CS对应于代码段CODE1,DS对应于数据段DATA1。 在ASSUME语句中,还可以用关键字NOTHING来说明某个段寄存器不与 任何段相对应。下面语句说明了段寄存器ES不与某段相对应。 ASSUME ES:NOTHING 在通常情况下,代码段的第一条语句就是用ASSUME语句来说明段寄存器 与段之间的对应关系。 在代码段的其它位置,还可以用另一个ASSUME语句来改变前面ASSUME 语句所说明的对应关系,这样,代码段中的指令就用最近的ASSUME语句所建 立的对应关系来确定指令中的有关信息。 中山大学计算机科学系 5 第6章程序的基本结构 例6.1:汇编语言段及其段说明语句的作用。 DATA1 SEGMENT ;定义数据段DATA1 word1 DW 5678h byte1 DB “ABCDEFG” CODE1 SEGMENT ;编写代码段CODE1 DATA1 ENDS ASSUME CS:CODE1, DS:DATA1, ES:DATA2 ;① DATA2 SEGMENT ;定义数据段DATA2

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档