- 1、本文档共293页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章Intel80868088指令系统课件.ppt
说明: 对于使用DUP重复定义的变量, LENGTH运算符返回最外层DUP的给定值。 例如: K1 DB 20H DUP (2, 4 DUP(1, 3 DUP(0))) MOV AL, LENGTH K1 ;AL←20H SIZE返回数组变量所占的总字节数, 等于LENGTH和TYPE两个运算符返回值的乘积。 例如: 段基址为 (DS)=6800H ORG 2800H ARRAY DW 50 DUP(0AH) … MOV AX, SEG ARRAY ; AX←6800H MOV DS, AX MOV CX, LENGTH ARRAY ; CX←50 MOV SI, SIZE ARRAY ; SI←100 MOV DI, OFFSET ARRAY ; DI←2800H … (5) 属性修改运算符。 用于设定或说明变量或标号的属性, 以及对运算对象的操作数类型的设定, 使之在运算过程中具有相同属性。见表4-9。 表4-9 属性修改运算符 说明: PTR运算符对变量设定的类型属性有: BYTE、 WORD、 DWORD、FWORD和QWORD;对标号设定的类型属性为:NEAR或FAR, 它用在指令语句中。 例如: VAR1 DB 4 DUP(4, 2) VAR2 DW 1068H, 2000H, 3000H … MOV DX, WORD PTR VAR1 ; DX←0204H ADD DH, BYTE PRT VAR2 ; DH←DH+68H MOV BYTE PTR[BX], 2 ; [BX]←02H JMP FAR PTR SUB1 ; 段间转移 用了PTR运算符, VAR1变量由原来的字节属性“临时”改变为字(WORD)属性,仅在当前指令语句中有效,而存储分配并不改变。 THIS运算符一般与EQU伪指令连用,放置在数据段,表明一个变量或标号具有两种属性(用不同的变量名表示),在代码段直接引入相应变量名即可, 类型说明与PTR类型说明相同。 例如: N1 EQU THIS BYTE N2 DW 2426H, 3537H … MOV AX, N2 ; AX←2426H MOV BH, N1 ; BH←26H HIGH/LOW运算符用于将操作数高/低字节分离。 例如: CONT EQU 5657H ORG 60H N1 DB 44H, 66H, 88H N2 DW 4000H, 6000H … MOV AH, HIGH 6844H ; AH←68H MOV AL, LOW CONT ; AL←78H MOV BL, LOW (OFFSET N1) ; BL←60H MOV BH, HIGH (OFFSET N2) ; BH←00H 4.3.6 汇编语言源程序结构 1. 汇编语言源程序结构 汇编语言源程序的完整段结构如下: NAME 模块名 TITLE 标题文本 EQU 定义语句 EXTRN 引用并定义符号名的类型 PUBLIC 定义符号名为全局符号 堆栈段名 SEGMENT PARA STACK ; 堆栈段 堆栈空间的预置 … 堆栈段名
文档评论(0)