资源描述:
《3_3 汇编语言程序设计N.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微型计算机原理与应用第3章8086/8088指令系统与汇编语言程序设计第3章汇编语言程序设计主要内容3.18086/8088CPU的寄存器组与寻址方式3.28088/8086的指令系统3.38086/8088汇编语言源程序的结构3.4变量、标号与表达式3.5常用伪指令3.6DOS系统功能调用3.7汇编语言程序的基本控制结构和开发过程低级程序设计语言创建代码序列短小、运行快速的可执行程序§3.38086/8088汇编语言源程序的结构一个基本的汇编语言程序框架如下:stackSEGMENTDB100DUP(‘stack’)stackENDSdataSEGMEN
2、T<数据、变量在此定义>dataENDScodeSEGMENTASSUMECS:code,DS:data,SS:stackstart:MOVAX,dataMOVDS,AX<此处加入你自己的程序段>MOVAH,4CHINT21HcodeENDSENDstart堆栈段数据段代码段调用DOS系统的4CH功能,返回DOS。3.3.1汇编语言的语句格式汇编语言的语句有两类:指令性语句——由8086指令助记符构成的语句指示性语句——由伪指令构成的语句指令性语句的格式为:[标号:]指令助记符目的操作数,源操作数[;注释]指示性语句的格式为:名字伪指令操作数1,操作数2,
3、…,操作数n[;注释]汇编语言语句的构成元素1.标号(名字):是给指令或某一存储单元地址所起的名字。可由下列字符组成:字母:A~z;数字:0~9;特殊字符:?、.、@、_、$。数字不能作标识符的第一个字符,而圆点仅能用作第一个字符,标识符最长为31个字符,不能用保留字(如寄存器名,指令助记符,伪指令)当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址;当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。汇编语言语句的构成元素2.(伪)指令助记符:表示不同操作的指令,可为的指令助记符,或伪指令。3.操作(参)数:是指令的操作对象。对指令性语句——
4、0,1,2个对指示性语句——根据需要而定操作数之间以逗号分隔操作数可以是:寄存器、存储单元、常数或表达式例如:AX,[DI+BX+10],200,16*8+TABLE,等等汇编语言语句的构成元素4.注释:该项可省,是为源程序所加的注解以分号开头,可放在指令后,也可单独一行。注意注释的写法。要写指令(段)在程序中的作用,而不要写指令的操作。例如:以下为同一条指令写的注释1)MOVCX,100;传送100到CX2)MOVCX,100;循环计数器置初值显然,第二种写法要比第一种写法要好。汇编语言的一个实例:hello.asmdataSEGMENTHelloDB‘
5、Hello,world!’,0DH,0AH,’$’dataENDSprogSEGMENTASSUMECS:prog,DS:datastart:MOVAX,dataMOVDS,AXLEADX,hello;取字符串首地址MOVAH,9INT21H;显示字符串MOVAH,4CHINT21H;退回DOSprogENDSENDstart名字标号3.3.2段定义伪语句SEGMENT和ENDS伪指令段定义伪指令一般格式为:段名SEGMENT[定位类型][组合类型][类别]…段名ENDS2.ASSUME伪指令一般形式:ASSUME段寄存器名:段名,……,段寄存器名:段名功
6、能:说明段与段寄存器之间的缺省对应关系,即指出某个段的段地址在哪个段寄存器中。例如:ASSUMECS:cseg,DS:dseg,SS:sseg;指出cseg、dseg和sseg分别为代码段、数据段和堆栈段。CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMOVAX,DATAMOVDS,AX<此处加入你自己的程序段>MOVAH,4CHINT21HCODEENDS【例】对DS进行初始化,将数据段的段地址装入DS。3.过程定义伪指令PROC和ENDP在程序设计中,可将具有一定功能的程序段看成为一个过程(相当于一个子程序),它可以
7、被别的程序调用。过程由伪指令PROC和ENDP来定义,其格式为:过程名PROC[类型]过程体RET过程名ENDP过程名是为过程所起的名称,不能省略,过程的类型由FAR(远过程,为段间调用)和NEAR(近过程,在本段内调用)来确定,如果缺省类型,则该过程就默认为近过程。ENDP表示过程结束。过程体内至少应有一条RET指令,以便返回被调用处。4.END伪指令END伪指令称为源程序结束伪指令,其格式为:END[地址]功能:表示汇编语言源程序到此结束,对END之后的语句不再进行汇编。可选的地址指出程序执行的起始点,通常是标号或过程名。§3.4变量、标号与表达式3.
8、4.1常量常量可以是一个常整数、字符串或者由若干运算符与运算分量构