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