汇编语言程序设计基本方法4.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.3汇编语言程序设计的基本方法 TITLE ADDING PAGE 60,70 STACK SEGMENT PARA STACK ‘STACK’ TOP LABEL WORD STACK ENDS DATA SEGMENT ADR1 DB 54H,76H,12H,00H DB 21H,98H,04H,00H ADR2 DW 4 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV SP,OFFSET TOP MOV DI,OFFSET TOP MOV AX,4[DI] ADD AX,[DI] MOV ADR2,AX MOV AX,6[DI] ADC AX,2[DI] MOV ADR2+2,AX MOV AH,4CH INT 21H CODE ENDS END START 4.3.1汇编语言程序设计的基本步骤 1.? 分析问题 2. 确定算法 3. 编写程序 4.? 程序的校验 5. 编写说明文件 算法: 算法描述:自然语言、类程序设计语言或流程图(本书采用) (1)?????? 起始和终止框 (2)?????? 执行框 (3)?????? 判断框 ( 4 ) 连接符 编写程序 (1)???? 了解所用CPU的编程模型、指 令系统、寻址方式及有关指令 (2)?????? 进行存储空间和工作单元的合 理分配 (3)?????? 子程序和宏指令 ( 4 ) 用标号或变量来代替绝对地址 和常数 4.3.2 汇编语言源程序的完整结构及伪指令 1. 段定义伪指令  格式:段名 SEGMENT [定位类     型][组合类型][‘类别’] ? . . . 段名 ENDS (1)?????? 段名 段名:所定义的段的名称。 属性:包括段地址、偏移地址、定位类型、组合类型和类别。 (2)?????? 定位类型 定位类型:对段的起始边界的要求,类型有PAGE、PARA、WORD、BYTE。 PAGE=XXXXXXXXXXX页) PARA=XXXXXXXXXXXXXXXX0000(节) WORD=XXXX XXXXXXXXXXXXXXX0(字) BYTE=XXXXXXXXXXXXXXXXXXXX(字节) PAGE: 段起始地址的低8位是0,其值能被256整除(称为页边界)。 PARA: 段起始地址的低4位是0,其值能被l 6整除(称为段边界)。此方式为系统的隐合定位方式, WORD:段起始地址的最低位是0,其值能被2整除(称为字边界)一偶地址。 BYTE:段起始地址是任意值。 ? 定义类型的默认段为PARA类型。 3。组台类型    为连接程序提供此段与其他段之间关系的信息.共有六种选择。 NONE: 系统隐含连接方式,表示此段与其他段没有逻辑上的联系,每段多有自己的基址。 PUBLIC:指示连接程序把此段与其他同名同类别的段连接起来.形成一个物理段.公用一个段的起始地址。连接顺序由连接程序决定。 STACK:表示此段是堆栈段,连接方式同PUBLIC,源程序至少要有一个堆栈段。连接后的段起始地址在SS寄存器中.否则提示错误。通常,寄存器SS指向第一个遇到的堆栈段。  COMMON:表示此段与其他同名同类别的段共用同一个段起始地址,使这些段相互重叠,段的长度取最长段的长度。 MEMORY:表示此段在连接时定位在其他所有段之上(高地址处)。对于多个MEMORY段.汇编程序将把第一个段认为是MEMORY.其余为COMMON。  AT表达式:表示此段定位在表达式值指定的段地址处。 (4)类别  凡是类别名相同的段校先后顺序连接起来时.组成一个段组.共用同一个类别名。类别名必须用单引号括起来,例如,’CODE’、’DATA’、‘STACK’。 STACK SEGMENT ? STACK ENDS DATA SEGMENT ? DATA ENDS DATA1 SEGMENT ? DATA1 ENDS CODE SEGMENT ? CODE ENDS ?END ASSUME伪指令  格式:ASSUME 段寄存器:名称[,段

文档评论(0)

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

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

1亿VIP精品文档

相关文档