a4-1-汇编语言语法全-白底.ppt

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

2) 操作数也可以是字符串,如: MESSAGE DB ‘HELLO’ DB ‘AB’ DW ‘AB’ ? 2.?数据定义伪指令 3) 操作数‘?’可以保留存储空间,但不存入数据。如: ABC DB 0,?,?,?,0 DFF DW ?,52,? ? 2.?数据定义伪指令 4) 操作数字段还可以使用复制操作符(duplication)来复制某个(或某些)操作数。 DUP操作符的格式为: repeat_count DUP(operand,…,operand) 其中repeat_count可以是一个常数或常数表达式, 它的值应该是一个正整数,用来指定括号中的操作数的重复次数。 ? 2.?数据定义伪指令 在上述类型的表达式中,可以用方括号代替’+’号。 例如,[BX+SI]同[BX][SI]是一样的。 当寄存器表达式作为一个操作数时,因为没有显式指明引用的类型(字节、字等),所以称为匿名引用。 在一个操作数是寄存器的双操作数指令中,汇编器将根据寄存器的类型决定引用类型。例如: MOV CX, [BX] ;传送BX指向的字 在所有其它使用匿名引用的情况下,都必须用PTR运算符指定所引用的类型。 例如: MOV WORD PTR [DI], 5 ;将5赋值给一个字 INC BYTE PTR [BX] ;字节增一 在使用寄存器表达式时还要注意以下规则: 只有BX、BP、SI、DI四个寄存器可以在方括号中出现; BX和BP,SI和DI不能同时出现在方括号中; 方括号中的寄存器值只能进行加法运算,或者加、减一个常数; 方括号中含有BP的表达式约定寻址堆栈段。 根据以上规定,下列地址表达式均是非法的: [BX+BP],[SI+DI],[BX+CX],[50-SI],……。 ③ 数组地址表达式:简单地址表达式与寄存器地址表达式结合可以形成更复杂的数组地址表达式,数组名为变量名或标号名,数组的下标可以是常数、数值表达式或BX、BP、SI、DI寄存器中的内容,其一般形式为:name[exp]。 如: BUF DB 12,34,56,78,90 MOV AL, BUF[0] ; AL = 12 MOV AL, BUF[2*2] ; AL = 90 MOV SI, 3 MOV AL, BUF[SI] ; AL = 78 运算符 1) 算术运算符 算术运算符有+、-、*、/和MOD。 算术运算符可用于数值表达式或地址表达式。 当其用于地址表达式时,只有当结果有明确的的物理意义时,运算才是有效的。 例如,两个存储器地址相乘或相除是没有意义的。 在相同段的两个存储器地址相减,是这两个存储单元之间的距离,即它们的地址偏移量的差,是有意义的。 对存储器地址经常使用的算术运算是加或减一个数字量。 SUM+1是指SUM字节单元的下一个字节单元的地址 SUM-1是指SUM的前一个字节单元的地址 2) 逻辑运算符 逻辑运算符有AND、OR、XOR和NOT。 它们是按位操作的,并且只能用于数值表达式。 注意:AND、OR、XOR和NOT,也是8086/8088指令的助记符。 运算符是在程序汇编时计算的,而作为指令助记符,则是在程序执行时计算的。例如下列指令: AND DX,PORT_VAL AND 0FEH 在程序汇编时,计算PORT_VAL AND 0FEH,产生一个立即数;在程序执行时,这个立即数与寄存器DX的内容作“与”运算,结果送至DX。 3) 关系运算符 关系运算符有EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)6种。 关系运算的两个操作数必须都是数字或是同一个段内的两个存储器地址。结果是一个数值。 若关系是假,则结果为0;若关系是真,则结果为0FFFFH。 例如: MOV BX,((PORT_VAL LT 5) AND 20 ) OR ((PROT_VAL GE 5) AND 30) 当PORT_VAL5时,汇编的结果是: MOV BX, 20 当PORT_VAL=5时,汇编的结果是: MOV BX, 30 4) 数值回送运算符 数值回送运算符有 TYPE、LENGTH、SIZE、OFFSET、SEG和$。 它们返回标号或变量的属性值。 格式:TYPE varlab 这里 varlab:是变量、结构或标号的名字。 说明:TYPE运算符返回表示操作数类型的值。该值在某些指令序列中是有用的,在这些序列中操作数的类型用以计算增加指针所使用的值。下面是每一种操作数类型返回的值。 ① TYPE运算符 操作数类型 返

文档评论(0)

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

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

1亿VIP精品文档

相关文档