【教学课件】第四章汇编语言程序设计.ppt
《【教学课件】第四章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章汇编语言程序设计.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 汇编语言程序设计汇编语言程序设计 汇汇编编语语言言(Assemble Assemble LanguageLanguage):一一种种面面向向CPUCPU的的程程序序设设计计语语言言,为为特特定定的的处处理理器器或或处处理理器器系列而专门设计,是一种低级程序设计语言。系列而专门设计,是一种低级程序设计语言。机器语言:机器语言:CPUCPU能够能够直接直接识别和执行的语言。识别和执行的语言。汇汇编编语语言言程程序序翻翻译译成成机机器器语语言言程程序序的的过过程程称称为为汇编汇编。完完 成成 汇汇 编编 任任 务务 的的 程程 序序 叫叫 做做 汇汇 编编 程程 序序(Assemble
2、rAssembler).汇编语言程序的优点:汇编语言程序的优点:可充分利用机器的硬件功能和结构特点,可充分利用机器的硬件功能和结构特点,加快程序的执行速度,减少程序规模。加快程序的执行速度,减少程序规模。常用来编写实时控制程序、实时通信程序、常用来编写实时控制程序、实时通信程序、某些系统软件。某些系统软件。缺点:缺点:编程效率低编程效率低与自然表达方式相差大;与自然表达方式相差大;程序移植性差程序移植性差在一种结构的机器上开发在一种结构的机器上开发的程序很难移植到另一种不同结构的机器的程序很难移植到另一种不同结构的机器上去。上去。1、8086汇编语言程序结构举例汇编语言程序结构举例 DATA
3、SEGMENTDATA SEGMENT;定义一个段,名字为定义一个段,名字为DATADATA SUM DB 14H SUM DB 14H;定义字节单元定义字节单元 TAB DW 100 DUP(0);TAB DW 100 DUP(0);定义定义100100个字单元个字单元 DATA ENDSDATA ENDS;段定义结束段定义结束 STCK SEGMENT STCK SEGMENT STACKSTACK DW 500 DUP(?)DW 500 DUP(?)STCK ENDSSTCK ENDS CODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:
4、STCK ASSUME CS:CODE,DS:DATA,SS:STCK4-1 8086系列汇编语言程序结构系列汇编语言程序结构START:MOV AX,DATASTART:MOV AX,DATA;DATADATA段地址传送段地址传送AXAX MOV DS,AX MOV DS,AX;赋给数据段寄存器赋给数据段寄存器 MOV AX,STCK MOV AX,STCK;STACKSTACK段地址传送段地址传送AXAX MOV SS,AX MOV SS,AX;赋给堆栈段寄存器赋给堆栈段寄存器CYCLE:MOV AL,01HCYCLE:MOV AL,01H ADD SUM,AL ADD SUM,AL CM
5、P SUM,100 CMP SUM,100 JNZ CYCLE JNZ CYCLE MOV AL,SUM MOV AL,SUM CODE ENDSCODE ENDS END STARTEND START2、8086汇编语言源程序的格式汇编语言源程序的格式一个汇编源程序由多个段构成。一个汇编源程序由多个段构成。其一般格式为其一般格式为 NAME1 NAME1 SEGMENTSEGMENT 语句语句 NAME1 NAME1 ENDSENDS NAME2 NAME2 SEGMENTSEGMENT 语句语句 NAME2 NAME2 ENDSENDS ENDEND 标号标号由多个段组成;由多个段组成;每
6、个段有一个名字;每个段有一个名字;以符号以符号SEGMENTSEGMENT作为段定义的开始,以作为段定义的开始,以ENDSENDS作作为段的结束;为段的结束;整个源程序以语句整个源程序以语句 END END 标号标号 结束;结束;4-2 语句的构成语句的构成 4-2-1 语句的种类与格式语句的种类与格式1 1、语句分为两类:、语句分为两类:指令语句指令语句和和指示性语句指示性语句。指令语句指令语句:在汇编时生成目标代码,对应机器:在汇编时生成目标代码,对应机器的某种操作。如的某种操作。如 MOV AXMOV AX,DATADATA 指示性语句指示性语句:也叫:也叫伪指令语句伪指令语句,汇编时不
7、生成,汇编时不生成目标代码,只是用来指示、引导汇编程序在汇编目标代码,只是用来指示、引导汇编程序在汇编过程中完成一些操作。如过程中完成一些操作。如 SUM DB 34HSUM DB 34H2 2、语句的格式、语句的格式 指令语句的格式为:指令语句的格式为:标号标号:指令指令;注释注释例如例如 CYCLE:ADD SUM,AL CYCLE:ADD SUM,AL;两数相加;两数相加伪指令语句的格式:伪指令语句的格式:名字名字 定义符定义符 参数参数1 1,参数,参数2 2,;注释注释例如例如 DATA SEGMENTDATA SEGMENT;段定义段定义 SUM DB 34HSUM DB 34H;
8、定义字节定义字节3 3、几点说明、几点说明指令语句的标号后用指令语句的标号后用“:”分隔,指示性语句分隔,指示性语句的名字之后为空格分隔。的名字之后为空格分隔。指令语句的标号代表该指令的存放地址指令语句的标号代表该指令的存放地址,即符即符号地址。在汇编时,将符号地址替换为实际号地址。在汇编时,将符号地址替换为实际地址。地址。指令语句的标号可任选或省略;而伪指令的名指令语句的标号可任选或省略;而伪指令的名字可能是强制的、任选的或禁止的,不同语字可能是强制的、任选的或禁止的,不同语句有不同规定。句有不同规定。标号或名字可由最多标号或名字可由最多3131个字母、数字及字符个字母、数字及字符?_$_$
9、等组成,不能以数字开头。等组成,不能以数字开头。注释部分用注释部分用“;”分隔,对语句功能加以说明,分隔,对语句功能加以说明,以提高程序可读性。注释可有可无。以提高程序可读性。注释可有可无。80868086系列汇编程序定义了系列汇编程序定义了5 5种指示性语句种指示性语句(一)符号定义语句(一)符号定义语句1 1、等值语句、等值语句EQUEQU 格式:格式:名字名字 EQUEQU 符号或表达式符号或表达式 如如 A EQU 2A EQU 2 COUNT EQU CX COUNT EQU CX 功能:用功能:用名字名字代替右边的代替右边的符号或表达式符号或表达式。目的。目的是是提高程序的可读性提
10、高程序的可读性。在汇编时,汇编程序。在汇编时,汇编程序自动用被等值量代入。自动用被等值量代入。4-3 指示性语句(指示性语句(Directive Statements)2 2、解除语句、解除语句PURGEPURGE格式:格式:PURGE PURGE 名字名字1 1,名字,名字2 2,如如 PURGE APURGE A,SIZESIZE,COUNTCOUNT功能:对功能:对EQUEQU定义的语句,用该语句解除定义。定义的语句,用该语句解除定义。(二)数据定义语句(二)数据定义语句DB/DW/DDDB/DW/DD名字名字 DB/DW/DDDB/DW/DD 表达式表达式1 1,表达式,表达式2 2,
11、功能:为数据项分配存储单元,用一个符号功能:为数据项分配存储单元,用一个符号名代表这个存储单元偏移地址,并为这个数名代表这个存储单元偏移地址,并为这个数据项提供一个初值;据项提供一个初值;DB DB 定义字节;定义字节;DW DW 定义字;定义字;DD DD 定义双字(定义双字(3232位);位);如如 MYDATA SEGMENT MYDATA SEGMENT ARRAY ARRAY DBDB 1,2,3,4 1,2,3,4 simsim DB DB A,BA,B BUF BUF DWDW?,1234H?,1234H MYDATA ENDS MYDATA ENDS1 12 23 34 4指定
12、的指定的MYDATAMYDATA段中段中SIMSIMBUFBUFSIM+1SIM+1存储器存储器ARRAYARRAYAABB34H34HARRAY+1ARRAY+1ARRAY+2ARRAY+2ARRAY+3ARRAY+3BUF+2BUF+212H12H?符号名可任选或省略;符号名可任选或省略;表达式可以是表达式可以是:1):1)常数常数;2)2)?,表示不确定初,表示不确定初值;值;3)3)字符串字符串,用,用 表示,其数值为字符的表示,其数值为字符的ASCIIASCII码值;码值;4)4)重复子句重复子句,重复次数为重复次数为DUPDUP;如如 AREA DW 100 DUP(?);重复定义
13、重复定义100100个字单元个字单元 TABLE DB 100 DUP(5 DUP(4),7);4,4,4,4,4,7;重复重复100次字节定义次字节定义 TABLE1 DB 100 DUP(2,?,5 DUP(4),7);Tab dd 100 dup(200 dup(300 dup(0)例:定义字节型一维数组变量X、Y、Z,元素为10个;再定义二维数组W和简单变量S。令X=(31H,32H,33H 3AH)、Y=(9FH,8EH,7DH 06H)、Z=X+Y;二维数组变量编写程序实现上述功能。Data segment X db 10 dup(?)Y db 10 dup(?)Z db 10 d
14、up(00h)W db 2 dup(10 dup(?)S dw 00h Data ends Code segment assume cs:code,ds:data st:mov ax,data mov ds,ax mov si,offset X mov di,offset Y mov al,31h mov ah,0 mov cx,10 mov bl,9fhrept:mov si,al add S,ax mov di,bl mov di+20,al mov di+30,bl add al,bl mov 10di,al mov al,si inc al inc si inc di sub bl,1
15、1h dec cx jnz reptCode endsEnd st(三)段定义语句(三)段定义语句1 1)段定义)段定义 一个段由命令一个段由命令SEGMENTSEGMENT开始,由命令开始,由命令ENDSENDS结束,结束,它们必须成对出现;段必须有名字(强制的)。它们必须成对出现;段必须有名字(强制的)。格式格式 NAME SEGMENT NAME ENDS 段的名字段的名字NAMENAME代表该段的段地址。代表该段的段地址。2 2)ASSUME 格式:格式:ASSUME 段寄存器:段名,段寄存器:段名,段寄存器可以是:段寄存器可以是:CSCS,DSDS,SSSS,ESES 出现在代码段中
16、,指示汇编程序在该段程序出现在代码段中,指示汇编程序在该段程序中使用哪些被定义的段,每个段分别属于什么中使用哪些被定义的段,每个段分别属于什么段。段。ASSUME命令并不能给段寄存器赋值,程序命令并不能给段寄存器赋值,程序中仍需要对段寄存器赋值(代码段除外)。中仍需要对段寄存器赋值(代码段除外)。(四)过程(四)过程(PROCEDURE)定义语句定义语句格式:格式:NAME PROC NEAR/FAR RET NAME ENDP NAME为过程名。为过程名。当过程被定义为当过程被定义为NEAR属性时,该过程只能被属性时,该过程只能被段内的主程序调用;当被定义为段内的主程序调用;当被定义为FAR
17、属性时,属性时,可被其他代码段的程序调用。可省略,默认为可被其他代码段的程序调用。可省略,默认为NEAR属性。属性。(五)结束语句(五)结束语句 END 指令语句标号指令语句标号指令语句标号指令语句标号表示当程序执行时,第一条要表示当程序执行时,第一条要执执行行的指令的标号。的指令的标号。4-4 语句的表达方式语句的表达方式1 1、常量、常量80868086汇编语言可采用数字常量和字符串常量。汇编语言可采用数字常量和字符串常量。数字常量数字常量 可用二进制(可用二进制(B B)、)、八进制(八进制(Q Q)十六进制(十六进制(H H)、)、十进制(十进制(D D)表示表示 字符串常量字符串常量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 汇编语言 程序设计
限制150内