第17节 汇编语言伪指令参考资料.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第17章 汇编语言伪指令参考资料 17.1 存储器访问与指令运算符 17.2 汇编语言伪指令 17.1 存储器访问与指令运算符 17.1.1 存储器访问(寻址) 对于存储器单元的访问,是通过存储器的单元地址来实现的。 1. 直接寻址 在存储器直接寻址时,指令中的一个操作数会指出一个已定义的变量名称,如下列的COUNTER: ADD CX,COUNTER 该指令执行时,微处理器把此变量的偏移地址加上数据段的(起始)地址来确定它在内存中的位置。 2. 间接寻址 存储器间接寻址时,操作数可选用基址寄存器(BX、BP)或变址寄存器(SI、DI),寄存器的内容就是操作数的偏移地址,使用常数、位移量及变量可使寻址变得更灵活。用方括号表示间接寻址,并具有加号(+)的作用。其用法如下: (1) 使用基址寄存器BX时写成[BX],默认段寄存器为DS;使用基址寄存器BP时写成[BP],默认段寄存器为SS。例如,用BX的内容作为偏移地址(默认段寄存器为DS),将所指单元的内容传送到DX内: MOV DX,[BX] ;基址寄存器 (2) 使用变址寄存器DI时写成[DI],使用SI时写成[SI],默认段寄存器均为DS。例如,用SI的内容作为偏移地址(默认段寄存器为DS),将所指单元的内容传送到AX内: MOV AX,[SI] ;变址寄存器 (3) 使用[常数]即把一个立即数或变量名放在方括号内。例如,将AX的内容传送到DS作为段地址,BX作为基址,SI作为变址加上常数4所形成的逻辑地址单元内: MOV [BX+SI+4],AX (4) 配合变址寄存器“+”或“-”位移量。对于常数或位移只有极小的差别。例如,将以DS为数据段段地址,结合位移量8,DI变址寄存器,加上常数4所指的单元内容传送到AX内: MOV AX,8[DI][4] ;位移量+变址+常数 17.1.2 汇编语言指令运算符 汇编语言的运算符可分为属性运算符、返回值运算符,以及定义记录和结构的运算符等。本节先讨论前两类,定义记录和结构的运算符将在下节中讨论。 1. LENGTH 运算符 LENGTH运算符返回DUP伪指令操作数所定义的数据项个数。下面的MOV指令将返回长度10给DX: TABLEA DW 10 DUP(?) ... MOV DX, LENGTH TABLEA 若操作数中不含DUP项,则运算符返回值01。LENGTH的其他用法,另参考本节中的SIZE及TYPE。 2. OFFSET 运算符 OFFSET运算符返回变量或标号的偏移地址(亦即数据段或指令段内的偏移地址)。其一般格式为: OFFSET 变量名(标号名) OFFSET 变量名(标号名) 下面这条MOV指令返回TABLEA的偏移地址。请注意,LEA指令不使用OFFSET也会返回相同的值。 MOV DX,OFFSET TABLEA LEA DX,TABLEA 上面这两条指令功能相同。 3. PTR运算符 PTR运算符用BYTE、WORD或DWORD来更改变量、常数原先设定的类型(DB、DW或DD),并且用NEAR及FAR来更改标号原来隐含的距离属性。其一般格式为: New-type PTR 变量名(标号名) New-type字段放置所要赋予的新类型,如BYTE。下列为PTR运算符的例子: FLDB DB 22H DB 35H FLDW DW 2672H ;以7226存储 … MOV AH,BYTE PTR FLDW ;AH移入低字节(72)

文档评论(0)

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

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

1亿VIP精品文档

相关文档