欢迎来到天天文库
浏览记录
ID:40203479
大小:427.50 KB
页数:72页
时间:2019-07-25
《微机原理课件-第4章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章汇编语言程序设计用汇编语言编写的程序称为汇编语言源程序,将汇编语言源程序翻译成机器语言的系统程序称为汇编程序assembler,翻译的过程叫做汇编assemble。汇编程序有两种:ASM小汇编程序,MASM宏汇编程序。1汇编语言指令到机器指令的示意图24.1.1汇编语言源程序的结构数据段名SEGMENT……数据段名ENDS附加数据段名SEGMENT……附加数据段名ENDS堆栈段名SEGMENT……堆栈段名ENDS代码段名SEGMENT……代码段名ENDSEND每段以SEGMENT语句开始整个程序以END语句结束以ENDS语句结束3下面举例来加
2、以说明:这是一个两个字相加的程序DSEGSEGMENT;定义数据段DATA1DW0F865H;定义被加数DATA2DW360CH;定义加数DSEGENDS;数据段结束ESEGSEGMENT;定义附加段SUMDW2DUP(?);定义存放结果区ESEGENDS;附加段结束4CSEGSEGMENT;定义代码段ASSUMECS:CSEG,DS:DSEG,ES:ESEGSTART:MOVAX,DSEGMOVDS,AX;初始化DSMOVAX,ESEGMOVES,AX;初始化ESLEASI,SUM;存放结果的偏移地址送SIMOVAX,DATA1;取被加数ADDA
3、X,DATA2;两数相加MOVES:[SI],AX;和送附加段的SUM单元中HLTCSEGENDS;代码段结束ENDSTART;源程序结束5总结:1、标号域语句中的标号是一个标示符,表示一条指令所在的存储单元的地址,或叫符号地址。2、操作码域:所有指令的助记符、伪指令等都在操作码域。3、操作数域:操作数以逗号间隔。操作数可以是常数、寄存器、标号、变量、表达式。4、注释域:说明。标号和操作码之间用冒号,或空格;操作码和操作数之间用空格;操作数和注释之间用分号。64.1.2汇编语言语句类型语句类型:指令性语句、指示性语句指令性语句由指令组成、CPU可以
4、执行;指示性语句用来告诉编译程序MASM如何对源程序进行汇编,它不生成目标代码,不由CPU执行,所以常称为伪操作指令;例如:START:MOVAX,DATADATADB11H,12H,13H区别:START是指令性语句的标号,它是指令的符号地址,后边通常加上“:”;DATA是指示性语句的名字,名字通常表示变量名、段名和过程名,后边不加“:”指示性语句中的操作数可以有多个,相互之间用逗号分开;74.1.3数据项及表达式操作数可以是寄存器、存储器单元或数据项。存储器可以按字节、字、双字DoubleWord、四字QuadWord、十字节操作。而数据项又可
5、以是常量、标号、变量或表达式。1、常量:分为数字常数和字符串常数。B:二进制D:十进制,可以省略H:十六进制(以字母开始的16进制数,要在前面加一个0)字符串常数用‘’单引号括起来,编译程序将其翻译成ASCII码。82、标号Label指令的标号由程序员确定:不能与指令助记符或伪指令重名;不允许由数字打头;字符个数不超过31个;标号代表存放一条指令的存储单元的地址;标号可以作为程序转移、过程调用、循环控制等指令的操作数;标号有三种属性:段、偏移量、类型偏移量是一个16位的无符号数;类型有两种:近过程属性NEAR(2字节)和远过程属性FAR(4字节);
6、9DELAYPROCPUSHBXPUSHCXMOVBL,2NEXT:MOVCX,2801HW20ms:LOOPW20msDECBLJNZNEXTPOPCXPOPBXRETDELAYENDP103、变量Variable变量是存储器中某个数据区的首地址,在指令中可以作为存储器操作数使用;变量也具有三种属性:段、偏移量、类型段值:一般在DS或ES寄存器;变量的类型:有BYTE、WORD、DWORD、QWORD、TBYTE;常用数据类型伪指令DB、DW、DD、DQ、DT来定义。例如:NUMDB11H,22H,33HDATA2DW100H,200H长度LEN
7、GTH:变量的个数。大小SIZE:分配给同一变量名的所有变量的总字节数。11变量名与标号名的区别:变量名是变量的符号地址,标号是指令的符号地址。例如:MOVAX,VAR1MOVBL,VAR2JMPDONE……DONE:ADDAL,5124、表达式表达式由常数、标号、变量、寄存器和运算符组成。表达式不是指令,本身不能执行。表达式中的运算是在汇编时完成的,而不是在指令执行时完成的。表达式常用运算符有:算术运算符:+、-、*、/和MOD(取余数)逻辑运算符:AND、OR、XOR、NOT关系运算符:EQ(等于)、NE(不等于)、LT(小于)、GT(大于)、
8、LE(小于等于)、GE(大于等于)取值运算符:OFFSET、SEG属性运算符:PTR其他运算符:[]、:13表达式中的运算
此文档下载收益归作者所有