第4章程序设计1解说.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 汇编语言程序设计 例:ALL_ZERO DB 0,0,0,0,0,0ALL_ZERO DB 6 DUP(0) ④ 定义字符串(只能用DB定义 ) 例: str1 DB TsingHua ‘str2 DB INPUT: , 0dH , 0aH ,$ ③ 定义一个表(数组) 例:W_TABLE DW 1122H,3344HB_TABLE DB1,2,4,9,16 DUP是重复操作符 str1 str2 54 73 69 6e 67 48 75 61 49 4e 50 55 54 3a 0d 0a 24 ‘T’ ‘s’ ‘i’ ‘n’ ‘g’ ‘H’ ‘u’ ‘a’ ‘I’ ‘N’ ‘P’ ‘U’ ‘T’ ‘:’ 0dH 0aH ‘$’ 当表中的操作数相同时,可用DUP来缩写。格式:重复次数 DUP ( 操作数) 第4章 汇编语言程序设计 ⑤ 当操作数是标号或变量时,可用DW或DD将标号或变量操作数的偏移地址或全地址来初始化存储器。 例:XXDWCYCLEYYDDCYCLE…CYCLE: MOV BX,AX ;CYCLE是程序中一条指令语句的标号 例:VAR3DWVAR+1 ; 将VAR+1的偏移地址存入VAR3开始的两个字节 或VAR3DDVAR+1 ; 将VAR+1的全地址存入VAR3开始的两个字 第4章 汇编语言程序设计 (3)分析操作符与合成操作符分析操作符(数值返回运算符)—— 运算对象是存储器操作数,它返回变量或标号的属性值。合成操作符(修改属性运算符)——作用于存储器操作数时可以改变它们的属性。 ① 分析操作符(SEG、OFFSET、TYPE、SIZE 、LENGTH)使用格式: 操作符 标号或变量 例:ARRAY DB 100 DUP(0)…MOV AX,SEG ARRAYMOVDS,AX;对DS初始化MOVBX,OFFSET ARRAYMOVAL,[BX] 用分析或合成操作符,可以返回或修改存储器操作数的三种属性。 SEG、OFFSET — 返回标号或变量的段地址和偏移地址 TYPE LENGTH SIZETYPE— 返回存储器操作数(标号或变量)的类型值LENGTH — 返回使用DUP定义的变量数据项元素数,其他为1SIZE— 返回TYPE和LENGTH的乘积(为变量所分配的字节单元总数) 对变量:字节1/字2/双字4 对标号:段内-1/段间-2 例:MOV AX,TYPE ARRAY;ARRAY是字节变量,该语句汇编结果为 MOV AX,1例: M1 DW 100 DUP(?)M2 DW 1,2,3MOV CX,LENGTH M1MOV BL,LENGTH M2 汇编时形成指令 MOV CX,100MOV BL,1 第4章 汇编语言程序设计 第4章 汇编语言程序设计 PTR — 临时指定或修改存储器操作数的类型属性,保持原有的段、偏移地址属性,且原定义的类型属性不变。 使用格式: 类型 PTR 标号或变量 例:INCBYTE PTR [BX]INCWORD PTR [BX] 对变量: ② 合成操作符 (PTR、THIS) 仅在当前所在的指令中有效 第4章 汇编语言程序设计 THIS — 与EQU配合使用。使用格式: 标号或变量名 EQU THIS 类型例:BWORD EQU THIS BYTE; 定义字节ARRAYDW 100 DUP(?) ;定义字 将原定义的字缓冲区ARRAY按字节区BWORD来使用,存储单元地址相同 第4章 汇编语言程序设计 3. 程序分段伪指令(将程序分成若干逻辑段) 具体来说 规定 段的起始和结束 指定 属性 开始地址边界 段类型同名段的组合方式 ——用于告诉汇编程序和链接程序,如何按逻辑段来组织程序和利用存储器。 第4章 汇编语言程序设计 (1)段定义伪指令 SEGMENT/ENDS——定义 DS/ES/SS/CS 段,指出段名和段的各种属性。 段定义由伪操作SEGMENT开始、ENDS结束。SEGMENT/ENDS必须成对出现,且段名必须相同。 SEGMENT和ENDS语句之间可以有指令和其他伪指令,表示存放在该段内存中的变量、指令或其他伪指令对该段内存的处理。 程序中可以定义多个段。 格式:段名 SEGMENT [定位类型][组合属性][‘类别名’]…(段体)…段名ENDS段的三个属性,顺序不可交换 第4章 汇编语言程序设计 段的三个属性,为源程序的汇编与链接提供了必要的信息。 ①定位类型 — 告诉链接程序链接时段的起始边界。有4种选择。 ②组合

文档评论(0)

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

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

1亿VIP精品文档

相关文档