资源描述:
《微型计算机原理与汇编语言 第5章 汇编语言程序设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章汇编语言程序设计5.1汇编语言的基本概念5.2汇编语言源程序的格式5.3伪指令语句5.4宏指令语句5.5汇编语言程序的上机过程5.6汇编语言程序设计的基本方法教学内容本章以Microsoft公司的宏汇编程序MASM为背景,介绍面向80x86的汇编语言程序设计方法。包括汇编语言源程序的格式、伪指令、宏指令以及顺序结构、分支结构、循环结构、过程调用等汇编语言程序设计方法。具体内容如下:1、汇编语言源程序的格式及汇编语言上机过程2、伪指令3、宏指令4、汇编语言程序设计的基本方法(包括顺序程序、分支程序
2、、循环程序、子程序)学习要求汇编语言程序设计是“微型计算机原理”课程非常重要的内容之一。通过本章学习,应该达到如下要求:1、熟练掌握汇编语言格式及调试方法。2、掌握DOS调用和BIOS调用的方法。3、熟练掌握顺序程序、分支程序、循环程序设计的基本方法和一般技巧。4、掌握子程序和宏指令的概念、定义及其调用方法。§5.1汇编语言语法§5.1.1基本概念机器语言—用二进制数来表示指令和数据.汇编语言--用指令助记符来书写程序的一种编程语言。助记符—反映指令的功能和主要特征,便于人们理解和记忆。汇编语言源程序
3、—用汇编语言编写的程序。汇编语言源程序需翻译成机器语言,变成可执行文件,机器才能执行,这个翻译过程叫汇编。高级语言—编程时不需要对机器指令系统有深入了解,稍加培训即可掌握。可读性强,功能强。*为什么要用汇编语言?汇编语言编写的程序节省内存,执行速度快,并为用户直接控制对象提供了手段。实时性要求很高的程序多采用汇编语言程序。机器语言:依赖于机器的低级语言,书写格式为二进制代码。优点:执行速度快,效率高。缺点:表达的意义不直观,编写、阅读、调试较困难。汇编语言:一种符号语言,与机器语言一一对应;使用助记符
4、优点:用户理解容易缺点:不能被机器直接识别高级语言:独立于机器的通用语言,接近人类的自然语言。优点:易学易用,可移植性较好缺点:目标代码冗长,占用内存多,执行效率不高例一编程实现c=a+b,并在屏幕上显示结果解1:用C语言实现#include"stdio.h"intmain(intargc,char*argv[]){inta,b,c;a=1;b=2;c=a+b;printf(“c=%d",c);return0;}编译后的目标文件达到3.59KBdatasegmentadb?bdb?cdb?stri
5、ngdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:dataassumees:datastart:pushdssubax,axpushaxmovax,datamovds,axmoves,axmova,1movb,2moval,aaddal,bmovc,alleadx,stringmovah,09int21haddc,30hmovdl,cmovah,2int21hmovdl,0ahint21hmovdl,0dhint21hretmainendp
6、codeendsendstart解2:用汇编语言实现汇编后的目标文件只有208字节§5.1.2汇编语言语句种类及格式1语句种类汇编语言有三种基本语句:指令语句、伪指令语句、宏指令语句每一语句行由4部分组成:名字操作码操作数;注释名字是一个符号,它可以是标号或变量,它是由程序员建立起来的有特定意义的字符系列,由英文字母、数字(0~9)及专用字符(?,,@,_,$)组成,最大长度不能超过31个,且不能由数字打头,不能用保留字(如寄存器名,指令助记符,伪指令)。操作码是一个助记符,它可以是指令、伪指令或宏
7、指令。操作数由寄存器、存储单元、数据项或表达式构成。汇编时一个表达式得到一个值。注释用来说明程序或语句的功能,用分号作为注释开始。(名字、操作数和注释部分视情况而定,可有可无)2语句格式指令性语句,其格式为:标号:指令助记符操作数;注释伪指令语句,又叫指示性语句,其格式为:变量名伪指令操作数;注释这两种语句的差别:指令语句是计算机可执行的,而伪指令语句不能执行,用来定义变量,分配存储单元,指示程序开始和结束等。形式上的区别:带不带冒号,是否可以转向它.本质上的区别:汇编时能否形成对应的机器码.§5.1
8、.3常数、标号、变量及表达式语句中操作数部分可以是常数、标号、变量及表达式。1常量(1)数字常量二进制常量,以B结尾十进制常量,以D结尾或省略十六进制常量,以H结尾,如0A8C6H.(2)字符串常量用单引号引起来的字符或一串字符。例:’A’,’BCDE’,汇编时被翻译成对应的ASCII码41H和42H,43H,44H,45H。字符串最长可有255个字符2标号标号是某条指令所存放单元的符号地址,可作为转移指令或CALL指令的转移地址。标号有三种属性:段地址