{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51

上传人:卓****库 文档编号:140908312 上传时间:2020-08-02 格式:PPTX 页数:85 大小:344.89KB
返回 下载 相关 举报
{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51_第1页
第1页 / 共85页
{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51_第2页
第2页 / 共85页
{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51_第3页
第3页 / 共85页
{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51_第4页
第4页 / 共85页
{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51》由会员分享,可在线阅读,更多相关《{冶金行业管理}经典讲义微机原理及应用和汇编语言程序设计讲义chap51(85页珍藏版)》请在金锄头文库上搜索。

1、主要内容: 宏汇编语言的语法 汇编程序与上机过程 表达式 语句 伪指令,第五章 汇编语言及汇编程序,上课认真听讲,下课按时完成布置的习题,这门课就一定不会挂!,重 点 1.介绍宏汇编语言的语法 2.介绍系统功能调用 3.汇编过程 难 点 伪指令的格式与应用,5.1 宏汇编语言的语法,机器语言:机器能识别并执行,称目标程序,是二进制码。 汇编语言:用指令助记符、符号地址、标号等书写的语言。 汇编语言源程序:用汇编语言编写的程序。 汇编:汇编语言源程序 目标程序,一、汇编语言语句的类型和格式,类型:指令语句,伪指令语句和宏指令语句 格式:标号 指令助记符 操作数;注解 1.标号:是给指令或某一存储

2、单元地址所起的名字。 2.指令助记符:表示不同操作的指令 3.操作数:是指令执行的对象。 4.注释:为源程序所加的注解,用于提高程序的可读性。 用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,二.常数、变量和标号,1.常数:(1) 数字常量: (2)字符串常量:ASCII码 2.变量 变量是代表存放在存储单元的数据。 变量名,可认为是存放数据的存储单元的符号地址 变量的属性: 段值(SEG)、偏移量(OFFEST)、 类型(BYTE,WORD,DWORD),定义变量的伪指令 符号 DB 定义字节 DW 定义字 DD 定义双字 (DQ 定义四字 DT 定义十字) 例1:

3、DAT1 DB 12H DAT2 DB 34H DAT3 DW 1234H DAT4 DW 0A3F1H,4981H;DAT4字单元内容为0A3F1H,它的下一个字单元内容为4981H 例2:DAB DB ?;分配一个字节单元 DAW DW ?, ?;分配两个字单元,例3:STRING1 DB ABCDEF STRING2 DW AB,CD STRING3 DD AB,CD,A,A,B,B,C,C,D,D,例4:带DUP的表达式:定义重复数据操作符 变量名 DB/DW/DD 表达式 DUP(表达式2) 重复次数 重复内容 DB1 DB ?,?,?,?,?,? DB2 DB 6 DUP(?) D

4、B3 DB 10 DUP(4) 3.标号 标号是一条指令的目标代码的符号地址。 属性有: 段 值(SEG) 偏移量(OFFSET) 距离属性:NEAR(近),只能被本段内访问。 FAR(远),可以被其它段访问 。,三、表达式与运算符,表达式由操作数和运算符组成,汇编时产生一个值。 1.算数运算符:+ - * MOD,取余运算符 SHL,左移运算符 SHR,右移运算符 例: 32 MOD 5 ;汇编时,得到的值=2 2.逻辑运算符: AND、OR、NOT、XOR 例: 24H OR 0FH ;汇编时,得到的值=2FH,3.关系运算符: 关系运算符是逻辑判断式,为真时,结果取0FFFFH,为假时,

5、结果取0。 EQ(等于)、NE(不等于)、 LT(小于)、GT(大于)、 LE(小于等于)、GE(大于等于) 例:25 LT 26 ;其值=0FFFFH 26 GT 25 ;其值=0FFFFH 24 GE 8 ;其值=0,4.分析运算符 SEG OFFSET TYPE LENGTH SIZE (1)SEG:操作数的段地址 (2)OFFSET:操作数地址的偏移量 例: TABLE DW 67,89 . MOV AX,SEG TABLE MOV BX,OFFSET TABLE MOV CX,TABLE,(3)TYPE 求符号名类型的数值 格式:TYPE (符号名) 符号名类型值:DB: 送 1,D

6、W:送 2,DD:送 4 例:ARRY DW 1,2 MOV SI ,TYPE ARRAY 汇编为:MOV SI,2 (4)LENGTH 为符号名分配的项数。 格式:LENGTH (符号名) 使用DUP,回送变量的单元数;否则送1。 例:SUM DW 100 DUP(0) MOV CX, LENGTH SUM 汇编后:MOV CX,100,(5) SIZE 变量:回送分配给变量的字节数。 格式:SIZE (符号名) 例: SUM DW 100 DUP(0) MOV DX, SIZE SUM 汇编后:MOV DX, 200 5.组合运算符 (1) 定义符号名为新类型 格式:类型 PTR (符号名

7、) 例: OPER1 DB 10H,21H,30H,45H MOV AX,WORD PTR OPER1+2 ;AX 4530H,(2).指定新类型THIS 格式: THIS (类型) 例: LABC EQU LABD THIS BYTE LABD DW 4321H,2255H MOV AL, LABC ;AL=21H MOV AX, LABD ;AX=4321H 符号LABC与LABD有相同的段地址和偏移地址, LABC是字节类型, LABD是字类型. 6.分离运算符 格式: LOW :取低字节 格式: HIGH :取高字节 MOV AL, LOW 3080H ;AL=80H,5.2 伪指令,

8、伪指令:汇编时不产生机器代码,而是由MASM识别,又称汇编命令。 1) 标号字段: 任选字段,标号名后不能用冒号“:”,这是与指令 性语句的突出区别. 2) 伪指令字段 数据定义伪指令:DB,DW 段定义伪指令:SEGMENT,ENDS 3) 操作数字段: 4) 注释字段,一、标号赋值伪指令 格式: EQU EQU 功能:把表达式的值赋给符号名。 解除语句: 格式:PUREG 符号1,符号2,符号3 功能:解除对符号1、符号2、符号3的赋值。 例: PORT1 EQU 3 PORT2 EQU PORT1+2 PORT3 EQU PORT2 CONT EQU CX 即: PORT1=3 ,POR

9、T2=5 PORT3=5 ,CX与CONT意义相同 PUREG PORT1 ;解除PORT1的赋值 PORT1 EQU 10 即: PORT1 = 10,二、内存数据定义伪指令 格式: 字 节 定 义: 符号 DB 表达式 字 定 义: 符号 DW 表达式 四字节定义: 符号 DD 表达式 八 字 定义: 符号 DQ 表达式 十字节定义 : 符号 DT 表达式 例: SOB DB ? SUM DW ? SLEV DD ? TAB1 DB 28 N1 DD 2.5, 3.2E+2,例:有如下定义 TABLE1 DD 0,1,2,3 TABLE2 DB 30H,31H,32H,33H TABLE3

10、 DB 12345678910 ZER DW 8 DUP(0) DEM DB HELLO? 判断下列指令是否正确: 1. MOV AX,TABLE1 2. MOV BX,TABLE2 3. MOV AL, TABLE3 4. MOV AX, WORD PTR TABLE1, ,三、定义存储单元的类型 功能:指定存储单元的类型是字节型. 功能:指定存储单元的类型是字型. 功能:指定存储单元的类型是双字型. 例:有如下定义: SUM DB 12H , 80H TAB DW 1234H1).MOV AX,WORD PTR SUM 汇编后: MOV AX,8012H 2).MOV BH,BYTE PT

11、R TAB 汇编后: MOV BH,34H,BYTEWORD DWORD,四、段定义语句 格式: 段名 SEGMENT 定位类型 组合类型 类别 . 段名 ENDS (1)定位类型:指定段的起始地址边界. 4种: PARA(页边界) (能被256除) PAGE(段边界) (能被16除) WORD(字边界) (能被2除) BYTE (2)组合类型 6种:PUBLIC STACK 空 COMMON MEMORY AT (3)类别名,五.段说明 ASSUME :给各程序段指定段寄存器 六.过程定义语句过程定义格式: 过程名 PROC NEAR或FAR RET 过程名 ENDP 过程调用格式: CAL

12、L 过程名 七.定位伪指令 ORG 2000H;指定起始地址的偏移量,八. 结束伪指令 格式: END 启动标号或过程 九. 定位伪指令 格式: ORG 表达式 十. 列表为指令 TITLE SUBTTL PAGE 十一.连接伪指令 PUBLIC EXTRN INCLUDE GROUP 十二.其它,5.3 宏指令,为了简化汇编语言的书写,把一些频繁出现的程序段定义为“宏指令”. 在汇编过程中,将宏指令所代替的程序段汇编成相应的机器代码,并插入到源程序中 宏指令要使用前:(1)宏定义 (2)宏调用 (3)宏扩展,1.宏代换 格式:宏名 MACRO 形式参数1,形式参数1, ENDM 功能:为指令

13、序列定义一个宏名,称为宏指令. 2.局域符号定义语句 格式: LOCAL 符号符号1,符号2, 功能:指出符号1,符号2,仅在宏代换中有意义. 3.删除宏定义语句 格式: PURGE 宏定义名1宏定义名2, 功能:注销程序中引用的宏指令. 4.退出宏定义语句 格式:EXITM,5.重复定义语句 格式: IRPC 形式参数,字符串 指令序列 ENDM 6.包含语句: 格式: INCLUDE 文件名 ;把命令后的文件插入该语句处一起编译. 例:定义一条宏指令,完成算术左移. SHT MACRO X,Y MOV CL,X SAL Y,CL ENDM 宏调用: SHT 6,BL 经宏展开: MOV C

14、L,6 SAL BL,CL 宏指令与子程序的区别,5.4 系统功能调用,主要内容:系统功能调用 一.简介 MS-DOS设置了几十个内部子程序,可以完成 I/O设备管理,存储管理,文件管理,合作业管理.它们被做成中断服务程序,其入口地址已由系统置入中断向量表中,可以用软中断指令调用. 类型号:2027H 系统功能调用:INT 21H,二、DOS系统功能调用,1.DOS系统功能调用格式 1)、在AH中设置功能号 2)、在指定的积存器中设置入口参数 3)、用INT21H指令执行系统功能调用 4)、根据出口参数分析执行情况 2.DOS系统功能调用INT 21H的部分I/O操作 1). 键盘输入一个字符

15、并回显 功能号AH=01H,出口参数 AL=字符; 使用格式: MOV AH , 01H INT 21H,2). 键盘输入字符到缓冲区: 功能号 :AH=0AH, 入口参数 :DS:DX=缓冲区首址 使用格式 BUF DB 20 DB ? DB 20 DUP (?) MOV DX , OFFSET BUF MOV AH , OAH INT 21H,3).输出一个字符 功能号 :AH=2 入口参数 :DL=字符,光标随字符移动 使用格式: MOV DL , A MOV AH , 02H INT 21H 执行上面程序后,将在屏幕上显示字符 A. 4).输出字符串, 功能号 : AH=9, 入口参数 :DS:DX=串地址,字串结束为“$”符号 使用格式: BUF DB HELLO! MOV DX, OFFSET BUF MOV AH, 09H INT 21H .,5)直接控制台输入输出单字符 功能号:AH=06H 入口参数:DL=0FFH(输入) DL=字符(输出) 出口参数:AL=输入字符 6)键盘输入一个字符无回显 功能号:AH=08H 出口参

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号