微机原理与接口技术课件(铁道大学)第4章.ppt

微机原理与接口技术课件(铁道大学)第4章.ppt

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

4.1.3 汇编语言的运算符 1、 分析运算符 分析运算符的运算对象是存储器操作数,即由变量名或标号形成的地址表达式,运算结果是一个数值。运算符的格式为: 运算符 地址表达式 分析运算符包括:OFFSET、SEG、TYPE、SIZE和LENGTH等,合成运算符有PTR、THIS、SHORT等。 ①SEG:利用SEG操作符可以得到一个标号或变量的段值 例: MOV AX , SEG BUFF ②OFFSET:利用OFFSET可以得到一个标号或变量的偏移地址 例:MOV BX , OFFSET BUFF;(LEA BX,BUFF) ③TYPE:运算符TYPE的运算结果是一个数值,这个数值与存储器操作数类型属性的对应关系如下: 对于变量有3种: 1 字节型; 2 字型; 4 双字型; 对于标号有2种:-1 NEAR(段内), -2 FAR(段间)。 例: BUFF DB 20H MOV BX , TYPE BUFF ? MOV BX,01 ④LENGTH操作符:LENGTH运算符得到这个变量的个数。如果未用DUP说明,得到的结果为1。 ⑤SIZE操作符:如果一个变量已经用DUP说明,则利用SIZE运算符可以得到分配给该变量的字节总数,如果未用DUP说明,则结果是TYPE运算的结果。即: SIZE=TYPE×LENGTH 例:BUFF DW 10 DUP(?) MOV CX, LENGTH BUFF ? MOV CX, 10 MOV CX, SIZE BUF ? MOV CX, 20 (1) PTR运算符:功能是对已分配的存储器地址临时赋予另一种类型属性,但不改变操作数本身的类型属性 格式: 类型 PTR 表达式 利用PTR运算符还可以建立一个新的存储器操作数,它与原来的同名操作数具有相同的段和偏移量,但可以有不同的类型,不过这个新类型仅在当前语句有效。如: STUFF DD ? …… MOV BX, WORD PTR STUFF (2) THIS运算符:THIS运算符用来定义一个新类型的变量或标号。但它只指定变量或标号的类型属性,并不为它分配存储区,它的段属性和偏移属性与下一条可分配地址的变量或标号属性相同。 格式: THIS 类型 例:FIRST EQU THIS BYTE SECOND DW 100 DUP (?) 这里FIRST和SECOND实际上代表同一个数据区,其中共有200个字节,但FIRET的类型为字节、SECOND的类型为字。以下指令是正确的: MOV AX,SECOND+2 MOV BH,FIRST+4 (3)LABEL运算符 ①用该运算符赋予标号以类型属性 名称 LABEL NEAR 名称 LABEL FAR 例如: NEXT_FAR LABEL FAR NEXT: MOV AX, 2030H 这里两个标号NEXT_FAR和NEXT具有相同的逻辑地址 , NEXT_FAR可以段间调用, NEXT只能段内调用。 ②用该运算符赋予变量以类型属性 变量 LABEL BYTE ;将变量定义为字节属性 变量 LABEL WORD ;将变量定义为字属性 变量 LABEL DWORD ;将变量定义为双字属性 例如: DA_BYTE LABEL BYTE DA_WORD DW 20H DUP(?)

文档评论(0)

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

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

1亿VIP精品文档

相关文档