资源描述:
《已经完成的第3章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章汇编语言程序设计本章重点:典型的汇编语言源程序的结构程序设计的步骤程序结构设计的方法程序的四种基本结构及相关的设计方法程序结构转换的方法多种数码之间的转换原理及程序设计方法冒泡排序、选择排序、对半检索程序的设计方法数据表和链表的删除、插入方法教学建议:在讲述伪指令的基础上讲述汇编语言源程序的结构。对程序设计步骤、方法和结构转换结合例子讲述。数码转换部分内容可以自学为主。冒泡排序、选择排序、对半检索程序在讲述一般原理基础上让学生通过实验掌握。本章用10学时,另加6学时用于实验。3.1汇编语言3.1.1汇编语言概述汇编程序汇编语言源程序目标程序汇编汇编语言应用范围1)系统程序或大型软
2、件的核心部分2)实时性要求比较高的系统3)和硬件关系密切的设备驱动程序或接口软件3.1.2语句的类型和格式指示性语句的格式3.1.3运算符․算术运算符․逻辑与移位运算符․关系运算符․分析运算符编译时执行1.算术运算符+(正或加)-(负或减)﹡(乘)/(整除)MOD(取模)算术运算可用于数据和地址,如MOVAL,Val/5MOVCX,DATAEND-DATAMOVDATA+12.逻辑与移位运算符1)逻辑运算符AND(与)OR(或)NOT(非)XOR(异或)例:INAL,PORTAND0FEH2)移位运算符SHL、SHR(逻辑左、右移)例:MOVCX,1024SHR53.关系运算符CQ、N
3、E、LT、GT、LE、GE注意:2个操作数均为数值,或其中一个为地址;结果为FFFFH或0.例:MOVAX,DATAGE80MOVAX,((DATAGE80)AND100)OR((DATALT80)AND60)4.分析运算符SEGOFFSETTYPELENGTHSIZE1)段码运算符SEG例:MOVAX,SEGDATA;获取DATA所在的段码MOVDS,AX2)偏移量运算符OFFSET例:MOVSI,OFFSETDATA;提取Data的地址偏移量3)类型运算符TYPE结果:1、2、4、6、8和10例:ADDSI,TYPEDATA4)长度运算符和重复运算符DUPLENGTH(返回重复的长
4、度)例1:DATADW10DUP(0)例2:MOVCX,LENGTHDATA例3:BUFFERDW8DUP(4DUP(0),1,2)MOVCX,LENGTHBUFFER5)容量运算符SIZE(=LENGTH*TYPE)例:MOVCX,SIZEDATA5.综合运算符PTRTHISSHORT1)指针运算符PTR(1)指定存储器操作数的类型例:INCBYTEPTR[SI]INCWORDPTR[SI](2)更改已定义的数据类型例:DATADW1234H,5678HMOVAL,BYTEPTRDATA(3)指定转移地址的类型例1:JMPDWORDPTRFIRST例2:JMPFARPTRPRINT2
5、)THIS运算符例1:BYTETYPEEQUTHISBYTEWORDTYPEDW1234H例2:FIRSTEQUTHISFARMOVAX,[SI]3)SHORT运算符JMPSHORT标号SHORT范围:-127-128SHORT不需要用PTR指定,但NEAR和FAR必须需要PTR6.分离运算符1)HIGH(提取高位字节)2)LOW(提取低位字节)3)HIGHWORD4)LOWWORD例:MOVAL,LOWDATA7.运算符的优先级运算符优先级由高到低的顺序如下:1)圆括号,尖括号,方括号,圆点,LENGTH,SIZE;2)PTR,OFFSET,SEG,TYPE,THIS和冒号;3)乘除
6、法和移位:*,/,MOD,SHL和SHR;4)HIGH,LOW,HIGHWORD和LOWWORD;5)加减法:+,-;6)关系运算:EQ,NE,LT,LE,GT和GE;7)逻辑运算:NOT;8)逻辑运算:AND;9)逻辑运算:OR,XOR;10)SHORT。3.2伪指令分为8种:方式选择伪指令程序命名和结束伪指令段定义伪指令过程定义伪指令定义存储单元伪指令标号伪指令赋值伪指令设置地址伪指令。3.2.1方式选择伪指令以句点(.)开头,格式和功能如下:.8086选择8086、8088指令系统;.286选择实地址方式下的80286指令系统;.286P选择保护方式下的80286指令系统;.38
7、6选择实地址方式下的80386指令系统;.386P选择保护方式下的80386指令系统;…3.2.2程序命名和结束伪指令1.程序命名伪指令1)NAME伪指令NAME模块名2)TITLE伪指令TITLE标题2.程序结束伪指令具体格式如下:END[标号]3.2.3段定义和段约定伪指令1.段定义伪指令SEGMENT段名SEGMENT[定位][组合][使用][类名]段体段名ENDS(1)定位类型共有如下5种选项:①BYTE:该段从下一个可用字节开始;②W