四章汇编语言程序设计ppt课件.ppt
《四章汇编语言程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《四章汇编语言程序设计ppt课件.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 汇编语言程序设计汇编语言程序设计四章汇编语言程序设计ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第4章章 汇编语言程序设计汇编语言程序设计4.1 概述概述机器语言机器语言(Mechine Language(Mechine Language):二进制表示的指:二进制表示的指令和数据。令和数据。汇编语言(汇编语言(Assenbly Lauguage)Assenbly Lauguage):用助记符来编写用助记符来编写指令,地址和数据也可用符号
2、表示。用汇编语言指令,地址和数据也可用符号表示。用汇编语言编写的程序必须翻译成机器语言目标程序(或目编写的程序必须翻译成机器语言目标程序(或目标代码)才能执行,这种翻译过程称为标代码)才能执行,这种翻译过程称为汇编汇编。(图(图4-14-1,P141P141)高级语言:不针对某个具体的计算机,通用性强。:不针对某个具体的计算机,通用性强。但高级语言编写的源程序同样必须但高级语言编写的源程序同样必须“翻译翻译”成机成机器语言,计算机才能执行,所用的系统软件称为器语言,计算机才能执行,所用的系统软件称为编译程序或解释程序。编译程序或解释程序。第第4章章 汇编语言程序设计汇编语言程序设计4.2 汇编
3、语言程序结构与语句汇编语言程序结构与语句汇编语言源程序例子汇编语言源程序例子 DATA SEGMENT ;定义数据段定义数据段 DATA1 DB 0F8H,60H,0ACH,74H,3BH;被加数被加数 DATA2 DB 0C1H,36H,9EH,0D5H,20H;加数加数 DATA ENDS;数据段结束数据段结束 CODE SEGMENT;定义代码段定义代码段 ASSUME CS:CODE,DS:DATA;告诉汇编程序段范围告诉汇编程序段范围 START:MOV AX,DATA MOV DS,AX ;初始化初始化DS MOV CX,5 ;循环次数送循环次数送CX MOV SI,0 ;置置SI
4、初值为零初值为零第第4章章 汇编语言程序设计汇编语言程序设计汇编语言源程序的例子汇编语言源程序的例子 CLC ;清清CF标志标志LOOPER:MOV AL,DATA2SI;取一个字节加数取一个字节加数 ADC DATA1SI,AL;与被加数相加与被加数相加 INC SI ;SI加加1指向下一字节指向下一字节 DEC CX;计数器计数器CX减减1 JNZ LOOPER;不等于零,转不等于零,转LOOPER MOV AH,4CH ;停止停止(INT21H)INT 21H ;返回返回DOS CODE ENDS ;代码段结束代码段结束 END START;源程序结束,指定起始地址标号源程序结束,指定起
5、始地址标号第第4章章 汇编语言程序设计汇编语言程序设计汇编语言源程序标准格式汇编语言源程序标准格式DATA SEGMENT .DATA ENDSSTACK SEGMENT STACK .STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:PUSH DS;MOV AX,0;与;与DOS的接口的接口 PUSH AX;称为标准序;称为标准序 MOV AX,DATA;MOV DS,AX;重新设置;重新设置DS RET ;如果不用标准序,此处为;如果不用标准序,此处为MOV AH,4CH;INT 21HCODE ENDS END STA
6、RT0000h:INT 20h程序段前缀 (PSP)程序段 堆栈段 DS,ES第第4章章 汇编语言程序设计汇编语言程序设计汇编语言语句的组成和类型汇编语言语句的组成和类型指令性语句:可以产生相应的机器码指令性语句:可以产生相应的机器码 LOOPER:MOV AL,DATASI指示性语句(伪操作指令):不产生机器指示性语句(伪操作指令):不产生机器码。码。DATA1 DB 0F8H,60H,0ACH,74H宏指令:以宏名字定义的一段指令序列宏指令:以宏名字定义的一段指令序列语句的格式:语句的格式:名字名字 操作码操作码/伪操作伪操作 操作数操作数;注注释释第第4章章 汇编语言程序设计汇编语言程序
7、设计名字:变量和标号名字:变量和标号变量名变量名/段名段名/过程名过程名:伪指令语句中的名字。内存单元的名伪指令语句中的名字。内存单元的名字字,由由DB/DW/DD定义。定义。BUF DB?变量的三种属性:变量的三种属性:段值段值 SEG偏移量偏移量 OFFSET类型类型 BYTE/WORD/DWORD标号:指令语句中的名字。指令存放单元的符号地址。标号:指令语句中的名字。指令存放单元的符号地址。LOOPER:MOV AL,DATASI标号的三种属性:标号的三种属性:段值段值 SEG偏移量偏移量 OFFSET类型类型 NEAR/FAR注:对于汇编程序来说,变量和标号都是存储单元的符号地址。注:
8、对于汇编程序来说,变量和标号都是存储单元的符号地址。只是标号对应的存储单元中存放的是指令,而变量所对应的只是标号对应的存储单元中存放的是指令,而变量所对应的存储单元存放的是数据。存储单元存放的是数据。第第4章章 汇编语言程序设计汇编语言程序设计助记符和伪操作助记符和伪操作指令助记符:指令助记符:MOV,ADD,.指示性(伪指令)操作符:指示性(伪指令)操作符:DB,DW,SEGMENT,ENDS,ASSUME,END,.保留字:保留字:SEGMENT ENDS OFFSET SIZE DB DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC END
9、P CALL RET END 第第4章章 汇编语言程序设计汇编语言程序设计操作数操作数常数常数/寄存器寄存器/存储器操作数(标号存储器操作数(标号/变量)变量)/表达式表达式表达式:数值表达式(只有大小)和地址表达式表达式:数值表达式(只有大小)和地址表达式(有段属性、偏移量属性和类型属性)(有段属性、偏移量属性和类型属性)算术运算符算术运算符逻辑运算符逻辑运算符关系运算符关系运算符分析运算符分析运算符合成运算符合成运算符其它运算符其它运算符(表(表4-1 P146)第第4章章 汇编语言程序设计汇编语言程序设计运算符之一:算术运算符运算符之一:算术运算符、*、/、MOD、SHL、SHR都可应用
10、于数字运算。都可应用于数字运算。、可以用于表示存储器操作数的地址,或两个存储器可以用于表示存储器操作数的地址,或两个存储器单元(同一段内)的地址偏移量之差。单元(同一段内)的地址偏移量之差。例:例:SUM-2 CYCLE-GO第第4章章 汇编语言程序设计汇编语言程序设计运算符之二:逻辑运算符运算符之二:逻辑运算符AND、OR、XOR、NOT 按位的逻辑运算按位的逻辑运算例:例:IN AL,PORT_VAL OUT PORT_VAL AND 0FEH,AL ANDDX,PORT_VAL AND 0FEH第第4章章 汇编语言程序设计汇编语言程序设计运算符之三:关系运算符运算符之三:关系运算符EQ、
11、NE、LT、GT、LE、GE用于数字或存储器操作数运算,结果为数字(用于数字或存储器操作数运算,结果为数字(0或或0FFFFH)。)。例:例:MOV BX,PORT LT 5 MOV BX,(PORT_VAL LT 5)AND 20)OR(PORT_VAL GT 5)AND 30)第第4章章 汇编语言程序设计汇编语言程序设计运算符之四:分析运算符运算符之四:分析运算符SEG 变量变量/标号标号(返回段基址)(返回段基址)OFFSET 变量变量/标号标号(返回偏移量)(返回偏移量)TYPE 变量变量/标号标号(返回元素字节数)(返回元素字节数)变量返回类型:变量返回类型:1字节、字节、2字、字、
12、4双字双字标号返回类型:标号返回类型:-1NEAR、-2FARLENGTH 变量变量(返回变量单元数)(返回变量单元数)SIZE 变量变量(返回变量总字节数)(返回变量总字节数)第第4章章 汇编语言程序设计汇编语言程序设计运算符之四:分析运算符运算符之四:分析运算符DATA_TABLES SEGMENTBUFFER1DB 100 DUP(?)BUFFER2DW200 DUP(?)BUFFER3DD 100 DUP(?)DATA_TABLESENDS-MOVAX,SEG BUFFER1(或或BUFFER2,BUFFER3)MOVDS,AX-MOVBX,OFFSET BUFFER1MOVSI,OF
13、FSET BUFFER2MOVDI,OFFSET BUFFER3MOVBX,ALMOVSI,CXMOVWORD PTRDI,DXLENGTH BUFFER1=100LENGTH BUFFER2=200LENGTH BUFFER3=100SIZE BUFFER1=100SIZE BUFFER2=400SIZE BUFFER3=400第第4章章 汇编语言程序设计汇编语言程序设计运算符之五:合成运算符运算符之五:合成运算符PTR(修改类型属性)(修改类型属性)类型类型 PTR 表达式表达式 STUFF DD?MOV BX,WORD PTR STUFFTHIS(指定类型属性)(指定类型属性)THIS
14、类型类型 ABC EQU THIS BYTE EFG DW 100 DUP(?);可以将;可以将100字的字的EFG按按200字节的字节的ABC来使用来使用SHORT(短转移说明)(短转移说明)JMP SHORT 短标号短标号HIGH 和和LOW:(高低字节分离)(高低字节分离)HIGH 1234H=12HLOW 1234H=34H段超越运算符段超越运算符“:”ES:BX第第4章章 汇编语言程序设计汇编语言程序设计运算符之六:其它运算符运算符之六:其它运算符圆括号圆括号()(改变运算符优先级)(改变运算符优先级)方括号方括号 (下标或间接寻址)(下标或间接寻址)各种运算符运算的顺序(表各种运算
15、符运算的顺序(表4.2)优先级高的先运算优先级高的先运算优先级相同的按从左到右运算优先级相同的按从左到右运算圆括号提高优先级圆括号提高优先级第第4章章 汇编语言程序设计汇编语言程序设计4.3 汇编语言的伪指令语句汇编语言的伪指令语句符号定义伪指令符号定义伪指令数据定义伪指令数据定义伪指令段定义伪指令段定义伪指令过程和宏定义伪指令过程和宏定义伪指令模块定义与通信模块定义与通信*条件汇编伪指令条件汇编伪指令*列表伪指令列表伪指令第第4章章 汇编语言程序设计汇编语言程序设计伪指令之一:符号定义伪指令伪指令之一:符号定义伪指令EQU:将表达式的值赋予一个名字,不能重复定将表达式的值赋予一个名字,不能重
16、复定义义CR EQU 0DH ;常量;常量AA EQU ASCII_TABLE ;变量;变量VAR EQU TEN*2+1024 ;数值表达式;数值表达式ADR EQU ES:BP+DI+5 ;地址表达式;地址表达式GOTO EQU JMP ;指令助记符;指令助记符:与与EQU基本相同,可以对一个名字重复定义基本相同,可以对一个名字重复定义NUM=488 ;定义;定义NUM等于等于488NUM=NUM+1 ;定义;定义NUM等于等于489第第4章章 汇编语言程序设计汇编语言程序设计伪指令之二:数据定义伪指令伪指令之二:数据定义伪指令格式:格式:变量名变量名 伪操作伪操作 操作数操作数,操作,操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 ppt 课件
限制150内