您好,欢迎访问三七文档
myfile.asm编辑程序汇编程序连接程序myfile.crfotherfiles.objmyfile.lstmyfile.objmyfile.mapmyfile.exe(如:MASM、TASM等)(如:DOS下的EDIT、window下的记事本)(如:LINK、TLINK等)程序运行步骤及生成的文件汇编程序的主要功能:•检查源程序,给出出错信息。•产生目标文件(.obj)和列表文件(.lst)。•展开宏指令。汇编程序功能第4章MASM伪指令系统4.2汇编语言语句种类与格式4.2.1汇编语言语句的种类汇编语言源程序可以使用如下三类语句:1.指令性语句2.伪指令语句3.宏指令语句4.2.2汇编语言语句的格式由于宏指令实质上不是一类语句,故我们主要分析指令性语句和伪指令语句的格式。指令性语句的格式为:[标号:]指令助记符[操作数[,操作数]][;注释]伪指令语句的格式为:[名字]伪指令定义符[参数,…,参数][;注释]4.3.2数据定义伪指令与变量1.数据定义语句变量名DB初值表达式变量名DW初值表达式功能:让汇编程序在内存中划出指定个数的存储单元,然后将这些存储单元与变量名联系起来,并在存储单元中预置初值。DB伪指令定义字节类型变量,其每个初值都占一个字节的存储空间。DW伪指令用来定义字类型变量,其每个初值都占一个字的存储空间。例如:B0DB2B1DB3,5,?,9B2DW10H,2DUP(1234H,?)图4-1DBDW初值示意图(1)表达式中也可以有用引号引起来的字符串,它表示将字符的ASCII码作为初值。例如:C1DB‘ABCD’图4-2DB初值示意图2.变量的访问(1)当变量只代表一个数据时,用变量名可直接对其代表的单元进行操作。(2)当变量对应着多个数据时,变量名仅代表其第一个数据项,对其后数据项的存取可用变量名加一偏移量来实现。3.变量的属性(1).段属性表示变量对应数据区所在段的段基址。(2).偏移属性表示变量对应数据区的段内的偏移量。变量的段属性与偏移属性构成了变量的逻辑地址。(3).类型属性指变量对应数据项的存取单位,它与变量定义时使用的伪指令有关。变量要根据其类型进行访问例:假设NUM1DB11HNUM2DW22H则MOVAL,NUM1;正确MOVAX,NUM2;正确MOVAL,NUM2;错误MOVAX,NUM1;错误4.3.5段定义伪指令1.段定义伪指令格式:段名SEGMENT[定位类型][组合类型][‘类别’]………段名ENDS例:DATASEGSEGMENTABCDB‘1234’DEFDW12HDATASEGENDS4.4程序的段结构DATASEGMENTVARDB12HDATAENDSSTACK1SEGMENTSTACKDB300HDUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXINCVARMOVBL,VARMOVAH,4CHINT21HCODEENDSENDSTART汇编源程序框架举例(两个段的)DATASEGMENT;定义数据段…DATAENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATASTART:;程序执行的起始地址MOVAX,DATAMOVDS,AX;段寄存器DS←数据段段地址……;程序的主体部分MOVAX,4CH;INT21H;结束程序运行并且返回DOSCODEENDSENDSTART;结束汇编汇编源程序框架举例(一个段的)CODESEGMENT;定义代码段ASSUMECS:CODESTART:;程序执行的起始地址……;程序的主体部分MOVAX,4CH;int21h;结束程序运行并且返回DOSCODEENDSENDSTART;结束汇编综合练习题编写一个完整的汇编语言源程序,要求把数据段D_SEG中的NUM1和NUM2相加,并把结果存放在SUM中。其中NUM1,NUM2和SUM均为字变量,NUM1赋值为1111H,NUM2赋值为2222H。(代码段段名用C_SEG)。附:加法指令格式ADDDST,SRC参考答案D_SEGSEGMENTNUM1DW1111HNUM2DW2222HSUMDW?D_SEGENDSC_SEGSEGMENTASSUMECS:C_SEG,DS:D_SEGSTART:MOVAX,D_SEGMOVDS,AXMOVAX,NUM1ADDAX,NUM2MOVSUM,AXMOVAH,4CHINT21HC_SEGENDSENDSTARTDATASEGMENTMSGDB‘HELLOWORLD’,‘$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,MSGMOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART汇编语言程序的上机过程1、用用文字编辑工具(EDIT或记事本)将源程序输入,其扩展名为.ASM。2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3、用LINK将.OBJ文件连接成可执行的.EXE文件。4、在DOS状态下运行产生的.EXE文件。5、若程序本身在屏幕上无显示或未出现预期结果,用DEBUG查看程序结果或者调试程序。6、如果修改了源程序,则必须重新进行汇编、连接。
本文标题:第4章伪指令
链接地址:https://www.777doc.com/doc-3135794 .html