文档详情

微机原理汇编语言.ppt

发布:2025-04-04约7.71千字共10页下载文档
文本预览下载声明

[变量名]伪指令操作数[,操作数…][;注释]数据定义伪指令的一般格式为:定义字节变量伪指令DB定义字变量伪指令DW定义双字变量伪指令DD定义四字变量伪指令DQ定义十字节变量伪指令DT常用的数据定义伪指令例DATA SEGMENT;定义数据段 B1 DB 10H,30H;存入两个字节10h,30h B2 DB 2*3+5;存入表达式的值0BH S1 DB ‘good!’;存入5个字符 W1 DW 1000H,2030H;存入两个字 W2 DD;存入双字 S2 DB ‘AB’;存入41H,42H S3 DW‘AB’;存入42H,41HDATA ENDS ;数据段结束除了常数、表达式和字符串外,问号也可以作为数据定义伪指令的操作数,此时仅给变量保留相应的存储单元,而不赋予变量某个确定的初值。格式为:nDUP(初值)n为重复次数,圆括号中为重复内容例DATA SEGMENT BUF1 DB ? BUF2 DB 8 DUP(0);给字节变量BUF2分配8个存储单元,初值为0 BUF3 DW 5 DUP(?);给BUF3分配5个字单元 BUF4 DW 10 DUP(0,1,?);10个0,1,? BUF5 DB 50 DUP(2,2DUP(4),6);50个2446DATA ENDS例如:1D1DB 01,30,10H 2D2DW 01,2*3,1003D3DB AB4D4DW AB5字符串可以看成串常数,用单或双引号引住,得到的是字符串的ASCII码值。6在汇编期间存储器中存入数据情况如图3.8所示。7例如:A1DB2DUP(0,2DUP(1,2),3),4,5以下指令使用变量B1和B2的方法是合法的:B1DB 11H,22H,33H,44HB2DW 55H,66H,77H?MOVAL,B1 ;取字节,(AL)=11HMOVBL,B1+2 ;取字节,(BL)=33HMOVAX,B2 ;取字,(AX)=0055HMOVCX,B2+4 ;取字,(CX)=0077H对于同样的变量B1和B2,以下使用是非法的:MOVAL,B2 ;AL是1字节,B2类型属性为2字节,不匹配MOVCX,B1 ;CX是2字节,B1类型属性为1字节,不匹配5.4.2符号定义伪指令符号定义伪指令的用途是给一个符号重新命名,或定义新的类型属性等。这些符号可以包括汇编语言的变量名、标号名、过程名、寄存器名以及指令助记符等。常用的符号定义伪指令有EQU、=、LABLE。1.EQU伪指令作用:将表达式的值赋于一个名字,表达式可以是常数、变量、寄存器名、指令助记符、数值表达式或地址表达式等。例:COUNT EQU 100 ;COUNT代替常数VAL EQU ASCII_TABLE ;代替变量SUM EQU 30*25 ;代替数值表达式ADR EQU ES:[BP+DI+10] ;代替地址表达式C EQU CX ;代替寄存器M EQU MOV ;代替指令助记符格式:名字=表达式=与EQU伪指令区别:等号可以对同一个名字重复定义。例COUNT EQU 10 ;代替常数COUNT EQU 10+20;不能再次定义但COUNT=10 ;代替常数COUNT=10+20 ;可以重复定义2.等号伪指令3.LABLE伪指令用途:在原来标号或变量的基础上定义一个类型不同的新的标号或变量。格式:变量名或标号名 LABLE 类型符LABEL伪操作使同一个变量具有不同的类型LABEL伪操作的格式为:nameLABELtype数据项表示法中type为BYTE,WORDDWORD例如:ARR_BYTELABELBYTEARR_WORDDW1122H,3344H,5566H,7788H,9900H对于以ARR_WORD变量名为开始的存储器中同一个单元,同时定义了字节属性和字属性,使用ARR_BYTE变量名时,为字节属性;使用ARR_WORD变量名时,为字属性。如果指令中写作:MOVAL,ARR_BYTE那么读一字节数据22H到AL;如果写作:MOVAX,ARR_WORD那么读一个字数据1122H到AX。4.程序开始和结束伪操作程序开始可用NAME和TITLE为模块取名字,并不是必要的。格式为:

显示全部
相似文档