资源描述:
《第四章 汇编语言程序设计1.ppt-程序设计语言概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章第四章汇编语汇编语言言程程序序设计设计程序设计语言概述用于程序设计的语言分为:1、机器语言:用二进制表示的程序,能被机器直接识别2、高级语言:basic、c等语言独立于机器的通用语言3、汇编语言:用指令的助记符、符号地址、标号等编写成的机器语言的符号表示,较低级。1EDITMASM5.0汇编语言源程序机器语言目标程序*.ASM*.OBJ编辑汇编LINK链接机器语言执行程序DOS下汇编语言程序*.EXE的上机与处理过程24-1汇编语言程序格式汇编语言源程序的框架结构例:打印输出字符串“THISISASAMPLEPROGRAM.”DATASEGMENTMESSAGEDB‘THIS
2、ISASAMPLEPROGRAM.’DB0DH,0AH,’$’DATAENDSSTACKSEGMENTSTACK‘STACK’ST1DB100DUP(?)STACKENDS3CODESEGMNETASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROCFARMOVAX,STACKMOVSS,AXPUSHDS;标准序,保证返回MOVAX,0PUSHAX;DOS操作系统MOVAX,DATA;送数据段的段地址,MOVDS,AX;使其可寻址,并初始化LEABX,MESSAGELOOP1:CMPBYTEPTR[BX],‘$’JELOOP2MOVAH,5MOVDL,[BX
3、];5号DOS功能调用INT21H4INCBXJMPLOOP1;返回DOS操作系统LOOP2:RETSTARTENDP;过程结束CODEENDS;代码段结束ENDSTART;整个程序汇编结束不采用标准序返回DOS的方法:不定义主程序为FAR过程,且没有标准序部分,则在代码结束前,不能使用RET返回指令,添加以下2条指令MOVAH,4CHINT21H5源程序的结构和特点1.由若干逻辑段组成,各段都有一个段名,由段定义语句来进行定义和说明2.在代码段的起始处,用ASSUME命令来说明各个段寄存器与逻辑段的关系3.每个逻辑段由若干行汇编语句组成,每行只有一条语句,且不超过128个字符;整
4、个源程序用END结束4.每个源程序在代码段中都必须有返回DOS操作系统的指令语句,保证程序执行完毕可以返回DOS系统。64.1.1指令性语句它与机器指令一一对应,汇编程序可将它翻译成目标代码。语句格式:[标号:]指令助记符[操作数],[操作数][;注释]例:MOVAX,00H;把00送到AX中4.1.2伪指令语句它没有对应的机器指令,汇编程序汇编源程序时对伪指令进行处理,它可完成数据定义,存储区分配,段定义,段分配,指示程序结束等功能。7语句格式:[名字]伪指令指示符[操作数],[操作数][;注释]名字是给伪指令取的名称,用符号地址表示,后面不带冒号,名字可以省略。通常是变量名,段
5、名,过程名,符号名等。例:1.MESSAGEDB‘THISISASAMPLEROGRAM’DB0DH,0AH,’$’2.DATASEGMENTDATAENDS都属于伪指令语句84.1.2数据项可以是常数,寄存器,存储器,变量,标号或表达式。1、常数常数必须是固定值,没有属性,是确定的数据。例1101B,0F0H,100D,‘ABC’。2、变量通常是指存放在存储单元中的值,在程序运行中是可以修改的。变量具有三个属性。(1)段值(段基址)(2)段内偏移地址(3)类型(BYTE/WORD/DW)3、标号是可执行指令语句的符号地址,它可作为转移指令和调用指令CALL的目标操作数,以确定转向
6、的目标地址。亦具有三个属性:(1)段值(2)段内偏移地址(3)类型(距离属性NEAR/FAR)94.1.3MASM中的表达式表达式由运算对象及运算符组成,汇编时由汇编程序对它进行运算,运算结果作为一个语句中的操作数使用。运算对象包括常数、变量和标号,运算结果可以是常数,或是存储器的地址,该地址存放了数据或指令。故表达式也分成两类:数值表达式—由常数、字符常量或符号常量等与算术、逻辑或关系运算符连接而成。汇编结果是数值。地址表达式—由常量、变量、标号、寄存器(如BX,BP,SI,DI)的内容和运算符组成。汇编结果是存储器地址。具有3个属性,主要表示指令中的操作数。10MASM中使用了
7、6类运算符(表4-1p128)一.算术运算符(ArithmeticOperators)包括:+,-,*,/,MOD,SHL,SHR7种。左移一位相二.逻辑运算符(LogicalOperators)当于乘2,包括:AND,OR,NOT,XOR4种。右移?三.关系运算符(RelationalOperators)包括:EQ,NE,LT,GT,LE,GE6种。关算术运算逻辑运算Equ系a运算l;N符的符可以符oE按位运算qu两a个操作数对l;数据和地址Le,ss只th必须能a