微机原理与汇编 伪指令.pptVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与汇编 伪指令

1. 段定义伪指令 段定义伪指令指示汇编程序如何按段组织程序和使用存储器。 段定义伪指令主要有: SEGMENT/ENDS ASSUME ORG 1.段定义伪指令 SEGMENT/ENDS 格式: 段名SEGMENT [定位类型][, 组合类型][, 字长类型][, 类别]?? …… ( 段体 ) …… 段名 ENDS 2.段分配伪指令 ASSUME  段分配伪指令用来完成段的分配,说明当前哪些逻辑段被分别定义为代码段、数据段、堆栈段和附加段。 ?? 1、代码段用来存放被执行的程序; 2、数据段用来存放程序执行中需要的数据和运算结果; 3、当用户程序中使用的数据量很大或使用了串操作指令时,可设置附加段来增加数据段的容量; 4、堆栈段用来设置堆栈。 ??说明:格式中,ASSUME是伪指令名,是语句中 的关键字,不可省略。段寄存器名后面必须有冒号,如果分配的段名不止一个,则应用逗号分开。段名是指用SEGMENT/ENDS伪指令语句定义过的段名。ASSUME伪指令设置在代码段内(只能设置在代码段内),放在段定义语句之后。 在用ASSUME语句来完成段的分配时,要注意以下几点: ① 在一个代码段中,如果没有另外的ASSUME语句重新设置,则原有的ASSUME语句的设置一直有效。 【例1】 DATA ??? SEGMENT ; 定义数据段 XX ????? DB ?? ? YY ????? DB ?? ? ZZ ????? DB ??? DATA ??? ENDS EXTRA ? SEGMENT ; 定义附加段 RSS1 ?? DW ? ?? RSS2 ?? DW ??? RSS3 ?? DD ? EXTRA ? ENDS STACK ? SEGMENT ; 定义堆栈段 ??????? DW 50 DUP( ) TOP ??? EQU THIS WORD STACK ? ENDS CODE ?? SEGMENT ; 定义代码段 ??????? ASSUME CS: CODE, DS: DATA ??????? ASSUME ES: EXTRA, SS: STACK START: MOV AX, DATA ?????? MOV DS, AX ?????? MOV AX, EXTRA ?????? MOV ES, AX ?????? MOV AX, STACK ?????? MOV SS, AX ?????? MOV SP, OFFSET TOP ?……? CODE ENDS END START 例1解析: 在例1中,用SEGMENT和ENDS分别定义了四个段:数据段、附加段、堆栈段和代码段。在数据段和附加段中分别定义了一些数据,在堆栈段中定义了50个字单元的堆栈空间。段分配伪指令ASSUME指明CS寄存器指向代码(CODE)段,DS指向数据(DATA)段,ES指向附加(EXTRA)段,SS指向堆栈(STACK)段,如果一行写不下,可分为两个ASSUME语句来说明。 2. 变量定义伪指令 变量定义伪指令用来定义变量的类型,并为变量中的数据项分配存储单元。变量定义伪指令有两种不同的格式。 格式1  格式:[变量名] DB/DW/DD/DQ/DT 表达式 格式2 格式1. [变量名] DB/DW/DD/DQ/DT 表达式功能: 格式1又可分为以下几种具体用法 : (1)用数值表达式定义变量 【例2】 K1 DB 10, 4, 10H ?????? K2 DW 100, 100H, -5 ??K3 DD 3*20, 0FFFDH 变量K1, K2, K3经汇编后的结果如图1所示。 图1: (2)用地址表达式定义变量 【例3】 RS1 DW ADDR1 ???????????????? DW ? ADDR2 ?????????? RS2 ? DD LOOP1 ???????????????? DD LOOP2  汇编程序在汇编时,在相应存储区域中存入有关变量或标号的地址值,其中偏移地址或段基址均占一个字,低位字节占用第一个字节地址,高位字节占用第二个字节地址。若用DD定义变

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档