- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四、ASSUME伪操作 格式 ASSUME 段寄存器:段名 [, 段寄存器:段名, … ] 其中 段寄存器为CS、DS、ES、SS中的一个 段名为用伪操作SEGMENT定义过的段名 例 ASSUME CS: cc , DS:aa ASSUME 伪操作的作用 将段名和段寄存器关联,不能向段寄存器赋段起始地址的值 注意: 1. 段寄存器分配伪指令一般放在代码段的开始; 2.代码段寄存器CS、SS的值在可执行文件装入内存时由DOS设定,其余段寄存器值由用户通过指令确定——段寄存器的初始化。 MOV AX,段名 MOV 段寄存器,AX 段寄存器的初始化通常在段寄存器分配之后进行 3.段寄存器分配伪指令可多次使用,重新约定段寄存器和段的关系 五、表达式及表达式中的操作符 表达式 由常量、标号、变量和一些操作符构成。 汇编程序对表达式进行运算后,得到一个确定的数值, 再把这个数值汇编到指令中。 据表达式所表示的内容,分数字表达式、地址表达式。 表达式可以是指令或伪操作的操作数; 表达式中的操作符由汇编程序完成 例 MOV AX, 12 - 4 ;MOV AX, 8 ;数字表达式 LEA BX, [ string + 4 ] ;地址表达式 表达式中的操作符 有以下几类: 1. 算术运算符 ( +、-、*、/、MOD ) 2. 逻辑运算符 ( AND、OR、NOT、XOR ) 3. 关系运算符 ( EQ、NE、GT、GE、LT、LE ) 真:FFFFH; 假: 0 4. 数值返回操作符 ( SEG、OFFSET、TYPE、LENGTH、SIZE) 5. 类型操作 ( PTR ) 6. 地址记数器( $ ) 例: 1. 算术运算符 ( +、-、*、/、MOD(取余数) ) MOV AX, 6 * 8 ← MOV AX, 48 2. 逻辑运算符 (AND、OR、NOT、XOR) MOV AX, 80h OR 70h ← MOV AX,0F0h 3. 关系运算符 ( EQ、NE、GT、GE、LT、LE ) 真:FFFFH; 假: 0 MOV AX, 1 GE 2 ← MOV AX, 0 4. 数值返回操作符 ( SEG、OFFSET 、TYPE、LENGTH、SIZE ) 把一些特征或存贮器地址的一部分作为数值回送。 SEG 取符号地址的段地址 例 MOV AX , SEG yy OFFSET 取符号地址的偏移地址 例 MOV BX , OFFSET yy 注意:SEG、OFFSET只能对符号地址操作 MOV AX, SEG [BX] 错 MOV BX, OFFSET [SI] 错 ·TYPE 格式:TYPE variable 变量则回送该变量的以字节数表示的类型(DB为1,DW为2,DD为4,DQ为8,DT为10) 或 TYPE 标号 回送标号类型数值(NEAR为-1,FAR为-2) 例:ARRAY DW 1,2,3 ADD SI,TYPE ARRAY 汇编程序其形式: ADD SI,2 ·LENGTH 格式:LENGTH variable 变量中使用时DUP汇编回送分配给变量单元数,其他情况回送1。 例:FEES DW 100 DUP(0) 对于 MOV CX,LENGTH FEES 汇编程序将其形式: MOV CX,100 其他情况 例:ARRAY DW 1,2,3 对于指令 MOV CX,LENGTH ARRAY 汇编程序将使其形式为:MOV CX,1 例:TABLE DB ‘ABCD’ 对于指令 MOV CX,LENGTH TABLE 汇编程序使其形式为:MOV CX,1 · SIZE 格式:SIZE variable 回送分配给该变量的字节数LENGTH*TYPE 例:FEES DW 100 DUP(0) MOV CX,SIZE ARRAY 将形成:MOV CX,200 例:TABLE DB ‘ABCD’
文档评论(0)