《接口与通讯》第四章概要

上传人:今*** 文档编号:107189579 上传时间:2019-10-18 格式:PPT 页数:83 大小:899.50KB
返回 下载 相关 举报
《接口与通讯》第四章概要_第1页
第1页 / 共83页
《接口与通讯》第四章概要_第2页
第2页 / 共83页
《接口与通讯》第四章概要_第3页
第3页 / 共83页
《接口与通讯》第四章概要_第4页
第4页 / 共83页
《接口与通讯》第四章概要_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《《接口与通讯》第四章概要》由会员分享,可在线阅读,更多相关《《接口与通讯》第四章概要(83页珍藏版)》请在金锄头文库上搜索。

1、微机原理,制作者: 张幸,在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定” 重新设置徽标大小 单击徽标内任意位置。徽标外部出现的方框是“调整控点” 使用这些重新设置对象大小 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。,第四章 宏汇编语言设计,第一节 概述 第二节 MASM中表达式 第三节 伪指令语句 第四节 DOS系统功能调用 第五节 程序设计方法,第一节 概述,一、汇编语言与汇编程序 二、汇编语言程序格式 三、数据项,一、汇编语言与汇编程序 1.汇编语言 用指令的助记符、符号常量、标量等语言书写的 程序设计语言称为汇编语言。 汇编

2、语言编写的源程序与机器语言一一对应,2.汇编程序: 把汇编语言书写的源程序翻译目标代码的程序称 为汇编程序 汇编程序的功能: 1、将汇编语言源程序翻译成机器语言 2、按用户指定自动分配存储空间 3、自动把各种进制转换成两进制 4、把字符转换成ASCII码 5、计算表达式 6、自动对源程序进行检查,若有错,给出出错信息,二、汇编语言程序格式 汇编语言语句有两类:指令性语句、指示性语句 指令性语句: 与机器指令相对应,可翻成目标代 码 指示性语句: 也称伪指令,告诉汇编语言应该进 行什么操作。,1.指令性语句格式: 标号: 指令助记符 操作数 ,操作数 ;注释 标号为指令语句的符号地址,标号后面紧

3、跟“:”可省略 标号可用字符为字母(AZ,az)数字(09)特殊字 符(、_、?) 第一字符不允许数字,长度为31个字符 指令助记符 语句的指令名称,即指令的操作类型,不可省 操作数按指令要求可跟一个、两个、可无,操作数和操作数 之间用“,”分隔。 注释可跟用户要求选用,注释前加“;”,2.指示性语句(伪指令)格式: 名字 伪指令指示符 操作数,操作数;注释 名称为伪指令的符号地址,用空格分隔,可省略 伪指令的名称是变量、段名、过程名、符号名 伪指令指示汇编语言完成的操作,不可省 操作数按伪指令的要求给,可无,可一个、多个,多个操作 数之间用“,”分隔。 注释同前,三、数据项 汇编语言有常量、

4、变量、标号三个数据项 1.常量 固定值,没有属性。 常量的形式:二进制 10100111B、八进制 1073Q或1072O、十进制5678 或1234D 、十六进制 0AF6H ASCII码 ABC。 2.变量 指存储单元中值,运行过程可修改。 变量有三个属性:段属性、偏移属性、类型属性 3.标号 可执行指令语句的符号地址 ,用于确定转移指令 的目标地址。 标号有三个属性 :段属性、偏移属性、距离属性,第二节 MASM 表达式,表达式:由运算对象与运算符,经表达式运算后 可以是数字,也可以是地址。 MASM中的运算符有6类:算术运算符、逻辑运算 符、关系运算符、数值返回运算符、属性修改运 算符

5、、其它运算符。,算术运算符:加(+)、减(-)、乘(*)、除(/) 模(MOD)、左移(SHL)、右移(SHR) 若运算结果是地址,运算符仅限+、-运算符,一、算术运算符,例1: ARRAY DB 1,2,3,4,5,6,7,8 TRY DB 20 MOV AX,30*5 MOV CX,(TRY-ARRAY),MOV AX,150,MOV CX,8,例2: DA EQU 300 MOV AX,DA-80 MOV BX,DA MOD 100 MOV CX,DA/100 MOV DH,01100100B SHR 2,MOV AX,220,MOV BX,0,MOV DH,19H,MOV CX,3,指

6、示性语句,指令性语句,逻辑运算符:AND(与)、OR(或)、NOT(非) XOR(异或),二、逻辑运算符,MOV AL,NOT 0FFH MOV BL,8CH AND 73H MOV AH,8CH OR 73H MOV CH,8CH XOR 73H,AND AL,55 AND 0FH,MOV AL,0,MOV BL,0,MOV AH,0FFH,MOV CH,0FFH,逻辑运算符,逻辑运算指令,三、关系运算符,关系运算符:EQ(相等)、NE(不相等)、 LE(小于或等于)、LT(小于)、 GE(大于或等于)、GT(大于),MOV AX,10H GT 16 ADD BL, 6 EQ 0110B,M

7、OV BL,0FFH,MOV AX,0,MOV CX,(PORT LT 5) AND 100) OR(PORT GE 5) AND 200),IF PORT5 ; MOV CX,100,IF PORT=5; MOV CX,200,四、数值返回运算符,数值返回运算符也称分析运算符 1、OFFSET 加在变量或标号前 回值是该变量或标号的偏移地址,MOV BX,OFFSET DA1,LEA BX,DA1,2、SEG,加在变量或标号前 回值是该变量或标号的段地址,MOV AX,SEG M1 MOV DS,AX,格式: OFFSET 变量或标号,格式: SEG 变量或标号,3、TYPE,格式 TYPE

8、 变量或标号,加在变量前,回值是变量的类型属性,加在标号前,回值是标号的距离属性,例 A1 DB 20H,30H A2 DW 0438H A3 DD ? L1: MOV AH,TYPE A1 MOV BH,TYPE A2 MOV AL,TYPE A3 MOV BL,TYPE L1,MOV BH,2,MOV AL,4,MOV BL,0FFH,MOV AH,1,4、LENGTH,格式 LENGTH 变量,当变量中使用DUP时,LENGTH返回此变量所包含的单元数 对其它变量,则返回1,M1 DW 100 DUP (?) M2 DW 1,2,3 M3 DB ABCD MOV CX,LENGTH M1

9、 MOV BL,LENGTH M2 MOV AL,LENGTH M3,MOV CX,100,MOV BL,1,MOV AL,1,5、 SIZE,格式 SIZE 变量,加在变量前,回值是该变量所包含的总字节数 SIZE=LENGTH*TYPE,MOV CX, SIZE M1 MOV BL, SIZE M2 MOV AL, SIZE M3,MOV CX,200,MOV BL,2,MOV AL,1,五、修改属性运算符,修改属性运算符也称综合运算符 1、段操作符,格式 段前缀:变量或地址表达式,MOV AX,ES:BX,2、PTR,格式 类型/距离 PTR 变量/标号,N1 DB 15H,36H N2

10、 DW 1122H,3344H LO: MOV AX,WORD PTR N1 MOV BL,BYTE PTR N2 JMP LO JMP FAR PTR LO,AX= 3615H,BL= 22H,段内直接寻址,段间直接寻址,3、THIS,格式 变量/标号 EQU THIS 类型/距离,FIRST EQU THIS BYTE TABLE DW 200 DUP (?),FIRST 和TABLE具有相同的段属性,偏移属性,但FIRST是 字节属性,TABLE是类型属性,SP EQU THIS FAR SP1: MOV AX,100 JMP SP1 ;段内直接寻址 JMP SP ;段间直接寻址,4、S

11、HORT,格式 SHORT 标号,短转移符,使用该操作符指出转向的目标地址和 本指令之间的距离在-128127,L1: JMP SHORT L2 ;8位立即数 L2: MOV AX,0,5、HIGH和LOW,格式 HIGH /LOW 变量或标号,HIGH 和LOW 为字节分离运算符,HIGH分离高位字节,LOW分离低位字节,K1 EQU 0ABCDH K2 EQU 1234H MOV AH,HIGH K1 MOV BL, LOW K2,MOV AH,0ABH,MOV BL,34H,6、其它运算符 (), ,, . ,MASK,WIDTH ( ) 用于改变运算符的优先级 用于表示地址表达式或多重

12、变量 , 圆点.用于结构变量 MASK,WIDTH用于记录 运算符计算时注意优先级,第三节 伪指令语句,数据定义语句 表达式赋值语句 段定义语句 过程定义语句 程序开始和结束语句,一、数据定义语句,格式1: 变量名 助记符 操作数,操作数, ;注释 格式2: 变量名 助记符 n dup (操作数,操作数,) ;注释 数据定义语句完成将操作数存入指定的内存单元,助记符: DB 定义字节 DW 定义字 DD 定义双字 DQ 定义八个字节 DT 定义十个字节,操作数:常数、字符串、变量、标号、表达式 多个操作数用“,”分隔,注释和变量名可有,可无,例1: DA1 DB 10H,52H,DA2 DW

13、1122H,34H,DA3 DD 5*20,0FFEEH,例2 操作数是字符串,FIRST DB HELLO SECOND DW OK,例3 操作数用?,M1 DB ? M2 DW 0D55H,?,例4 用DUP重复定义 ONE DB 5 DUP(0) TWO DW 10 DUP(?) THREE DB 4 DUP (1,2 DUP (20H),例5 用地址表达式定义变量,ONE DW PAR1 TWO DW ADR2 THREE DD ADR3,PAR1 为变量 ADR2,ADR3为标号,例6 变量类型属性可通过属性操作符PTR指令,OPE1 DB 1,2 OPE2 DW 2233H,556

14、6H,MOV AX,OPE1+1,MOV AL,OPE2,MOV AX,WORD PTR OPE1+1,MOV AL,BYTE PTR OPE2,二、表达式赋值语句,1.赋值语句EQU 格式: 符号名 EQU 表达式,赋值语句不可重复定义,重复定义前用PURGE解除,COUNT EQU 100 DATA EQU COUNT+2 A1 EQU BX+SI B1 EQU OFFSET A1 C1 EQU ADD,使用赋值语句可以给变量、标号、常数、指令、 表达式定义符号名,EQU语句如有变量或表达式,则在该语句前须定义它,2.等号语句= 等号语句与EQU 语句具有相同功能,但EQU 语句不允许 重

15、复定义,而=可重复定义,例 COUNT=100 COUNT =COUNT+10 A1=BX+SI MOV AX,A1 A1=BX MOV CX,A1,三、段定义语句,1.段定义语句 SEGMENT ENDS,SEGMENT ENDS:段定义伪指令助记符,不可省 SEGMENT 后面的三个参数可根据要求选用,1)定位类型 表示段对起始边界的要求 * PARA 以节为起始边界 (默认值) XXXXXXXXXXXXXXXX0000 * BYTE以字节为起始边界 XXXXXXXXXXXXXXXXXXXX * WORD以字为起始边界 XXXXXXXXXXXXXXXXXXX0 * PAGE以页为起始边界 XXXXXXXXXXXX00000000,2)组合类型:指示连接程序,该段和其他段的关系 *NONE 该段与其它同名段不发生关系 *PUBLC 该段与其它模块中同名段连接时,由低地址到高 地址连接起来,组成一个逻辑段 *COMMON 该段在连接时与其他模块中的同名段有相同的 起始地址,即以覆盖方式连接,连接长度为各分段最大长度 *AT 表达式 定位该段的起始地址在表达式所指出的节边界

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

当前位置:首页 > 高等教育 > 大学课件

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