【教学课件】第四章汇编语言程序设计.ppt
《【教学课件】第四章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章汇编语言程序设计.ppt(46页珍藏版)》请在三一办公上搜索。
1、第四章 汇编语言程序设计,汇编语言(Assemble Language):一种面向CPU的程序设计语言,为特定的处理器或处理器系列而专门设计,是一种低级程序设计语言。机器语言:CPU能够直接识别和执行的语言。汇编语言程序翻译成机器语言程序的过程称为汇编。完成汇编任务的程序叫做汇编程序(Assembler).,汇编语言程序的优点:可充分利用机器的硬件功能和结构特点,加快程序的执行速度,减少程序规模。常用来编写实时控制程序、实时通信程序、某些系统软件。缺点:编程效率低与自然表达方式相差大;程序移植性差在一种结构的机器上开发的程序很难移植到另一种不同结构的机器上去。,1、8086汇编语言程序结构举例
2、 DATA SEGMENT;定义一个段,名字为DATA SUM DB 14H;定义字节单元 TAB DW 100 DUP(0);定义100个字单元 DATA ENDS;段定义结束 STCK SEGMENT STACK DW 500 DUP(?)STCK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STCK,4-1 8086系列汇编语言程序结构,START:MOV AX,DATA;DATA段地址传送AX MOV DS,AX;赋给数据段寄存器 MOV AX,STCK;STACK段地址传送AX MOV SS,AX;赋给堆栈段寄存器CYCLE:MOV AL,
3、01H ADD SUM,AL CMP SUM,100 JNZ CYCLE MOV AL,SUM CODE ENDS END START,2、8086汇编语言源程序的格式一个汇编源程序由多个段构成。其一般格式为 NAME1 SEGMENT 语句 NAME1 ENDS NAME2 SEGMENT 语句 NAME2 ENDS END 标号,由多个段组成;每个段有一个名字;以符号SEGMENT作为段定义的开始,以ENDS作为段的结束;整个源程序以语句 END 标号 结束;,4-2 语句的构成,4-2-1 语句的种类与格式1、语句分为两类:指令语句和指示性语句。指令语句:在汇编时生成目标代码,对应机器的
4、某种操作。如 MOV AX,DATA 指示性语句:也叫伪指令语句,汇编时不生成目标代码,只是用来指示、引导汇编程序在汇编过程中完成一些操作。如 SUM DB 34H,2、语句的格式 指令语句的格式为:标号:指令;注释例如 CYCLE:ADD SUM,AL;两数相加伪指令语句的格式:名字 定义符 参数1,参数2,;注释例如 DATA SEGMENT;段定义 SUM DB 34H;定义字节3、几点说明指令语句的标号后用“:”分隔,指示性语句的名字之后为空格分隔。,指令语句的标号代表该指令的存放地址,即符号地址。在汇编时,将符号地址替换为实际地址。指令语句的标号可任选或省略;而伪指令的名字可能是强制
5、的、任选的或禁止的,不同语句有不同规定。标号或名字可由最多31个字母、数字及字符?_$等组成,不能以数字开头。注释部分用“;”分隔,对语句功能加以说明,以提高程序可读性。注释可有可无。,8086系列汇编程序定义了5种指示性语句(一)符号定义语句1、等值语句EQU 格式:名字 EQU 符号或表达式 如 A EQU 2 COUNT EQU CX 功能:用名字代替右边的符号或表达式。目的是提高程序的可读性。在汇编时,汇编程序自动用被等值量代入。,4-3 指示性语句(Directive Statements),2、解除语句PURGE格式:PURGE 名字1,名字2,如 PURGE A,SIZE,COU
6、NT功能:对EQU定义的语句,用该语句解除定义。(二)数据定义语句DB/DW/DD名字 DB/DW/DD 表达式1,表达式2,功能:为数据项分配存储单元,用一个符号名代表这个存储单元偏移地址,并为这个数据项提供一个初值;,DB 定义字节;DW 定义字;DD 定义双字(32位);如 MYDATA SEGMENT ARRAY DB 1,2,3,4 sim DB A,B BUF DW?,1234H MYDATA ENDS,符号名可任选或省略;表达式可以是:1)常数;2)?,表示不确定初值;3)字符串,用 表示,其数值为字符的ASCII码值;4)重复子句,重复次数为DUP;如 AREA DW 100
7、DUP(?);重复定义100个字单元 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 dup(00
8、h)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,11h de
9、c cx jnz reptCode endsEnd st,(三)段定义语句1)段定义 一个段由命令SEGMENT开始,由命令ENDS结束,它们必须成对出现;段必须有名字(强制的)。格式 NAME SEGMENT NAME ENDS 段的名字NAME代表该段的段地址。,2)ASSUME 格式:ASSUME 段寄存器:段名,段寄存器可以是:CS,DS,SS,ES 出现在代码段中,指示汇编程序在该段程序中使用哪些被定义的段,每个段分别属于什么段。ASSUME命令并不能给段寄存器赋值,程序中仍需要对段寄存器赋值(代码段除外)。,(四)过程(PROCEDURE)定义语句格式:NAME PROC NEAR
10、/FAR RET NAME ENDP NAME为过程名。当过程被定义为NEAR属性时,该过程只能被段内的主程序调用;当被定义为FAR属性时,可被其他代码段的程序调用。可省略,默认为NEAR属性。,(五)结束语句 END 指令语句标号指令语句标号表示当程序执行时,第一条要执行的指令的标号。,4-4 语句的表达方式,1、常量8086汇编语言可采用数字常量和字符串常量。数字常量 可用二进制(B)、八进制(Q)十六进制(H)、十进制(D)表示 字符串常量。用 表示,如A、JUMP,其数值为字符的ASCII码值。2、标识符 如伪指令语句的名字(段名、过程名、变量名)、指令语句的标号等,由程序员自由建立。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 汇编语言 程序设计
链接地址:https://www.31ppt.com/p-5665115.html