微机原理与接口课件第八次课

上传人:子 文档编号:52124574 上传时间:2018-08-18 格式:PPT 页数:56 大小:1.77MB
返回 下载 相关 举报
微机原理与接口课件第八次课_第1页
第1页 / 共56页
微机原理与接口课件第八次课_第2页
第2页 / 共56页
微机原理与接口课件第八次课_第3页
第3页 / 共56页
微机原理与接口课件第八次课_第4页
第4页 / 共56页
微机原理与接口课件第八次课_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《微机原理与接口课件第八次课》由会员分享,可在线阅读,更多相关《微机原理与接口课件第八次课(56页珍藏版)》请在金锄头文库上搜索。

1、 记录名 RECORD 字段名:宽度=初值表达式, 6 记录与结构定义伪指令(RECORD、 STRUC/ENDS) 1记录记录 定义伪义伪 指令RECORD 记录:能进行位处理的8位或16位二进制数。 字段:记录中相邻的若干位构成一个字段。 记录类记录类 型 :说说明记录记录 中有哪些字段,各字段 分别有多少位。(1)记录类型的定义 记录名和字段名遵循标号的取名法则。宽度表示该字段占有的二进制位数,最多不能超过16位,初值表达式可省,表示该字段的初值。 如: COLOR RECORD X : 3=5 ,Y:4=12 ,Z:9=255 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1

2、 115 13 12 9 8 0COLORXYZ注:当定义中的字段总位数不能占满整个字节 或字时,汇编程序就把所定义的字段与记 录的低位端对齐。 如: COOL RECORD A:5=17, B:7=127 X X X X 1 0 0 0 1 1 1 1 1 1 1 115 12 11 7 6 0COOL未定义AB(2) 记录类型变量的定义及存储器分配 记录可以用记录名称作为操作符。名称记录名称表达式DUP()一般格式:定义了一个记录型变量,其字段X、Y和Z的初值分别为5(缺省值),15和9,即 COLOR1= 101 1,111 0,0000,1001B如:COLOR1 COLOR (3)

3、记录的使用定义了记录型变量之后,在程序中可像 一个字节或字型变量来使用。 如:MOV DX, COLOR1 指令执行后, DX=1011,1110,0000,1001B=BE09H(4) 记录专用操作符 MASK操作符:使字段名所在位置的位全为 1,其余为0 。如:AND DX, MASK Z WIDTH操作符:返回纪录或纪录中字段的 位数。 2. 结构定义伪指令 STRUC/ENDS伪指令使用格式:结结构是一种复杂杂的数据类类型。结结构体中包含若干 个字段,其数据类类型一般为为基本的数据类类型。 结构名称 STRUC 字段名称 DB/DW/DD 结构名称 ENDS表达式, 表达式 DUP (

4、表达式, ) 结构类型的定义 COURSE STRUC NO DD ? NAME DB Assembler SCORE DW 0 COURSE ENDS 定义了结构名为COURSE的结构,该结构 包含三个成员变量,结构体长度为15(=4+9+2) 个字节。 (2) 结结构类类型变变量的定义义及存储储器分配如: COURSE1 COURSE 定义一个结构变量COURSE1,其初值为缺省。 格式:变量名 结构名 (3) 结结构的使用 定义了结构型变量之后,在程序中即可使用。 格式:结构变量名.字段名 如: MOV AX, COURSE1.SCORE 1. EQU伪指令格式:符号名 EQU 数值表达

5、式功能:为常量、变量、表达式或其他符号定义一个名字,但不申请分配内存。如:THREE EQU 3 TOP EQU $-STACK CBD EQU ADD7 符号定义伪指令(EQU, =,LABEL) “=”伪操作的功能与EQU相似, 使用EQU或=可使程序简单、明了和便于修改。 区别“=”可重复定义,而EQU不能。例: EMP=6EMP=7EMP=EMP+1注:2. 等号语句(=)格式: 符号名=表达式3. LABEL伪指令格式:变量名/标号 LABEL 类型功能:为当前存储单元定义一个指定类型的变量名或标号,其类型为BYTE、WORD、DWORD、结构名、记录名、NEAR和FAR。汇编语言程

6、序可划分为许多模块,对每个模块独立地进行汇编及调试,一般从低层到高层逐步进行。8 程序模块定义伪指令(NAME/END、 PUBLIC/EXTRN) 1. NAME和END伪指令功能:定义一个模块,作为一个独立的汇编单 位,NAME缺省时模块若使用了TITLE语 句,则TITLE语句中前6个字符为模块名 ,否则源文件名将作为模块名。格式:NAME 模块名 END 标号 注:一个模块是一个独立的汇编单位,汇编 处理只进行到模块结束语句END为止。注:符号必须用“ ,”分开,且均在本模块中定义过。注:2. PUBLIC伪指令格式:PUBLIC 符号表功能:用来说明该模块中被定义的那些 常量、变量和

7、标号(含过程名)可以被其他模块所引用。如:PUBLIC ABC,BCD,CDE3. EXTRN伪指令格式:EXTRN 符号:类型,功能:指出本模块中需要引用但却在其他 模块中定义并说明为PUBLIC属性的符号(含常量,变量,标号和过程)。被引用符号的类型说明:BYTE、WORD、 DWORD、NEAR、FAR、ABS(符号常量)。如:EXTRN ABC:WORD,BCD:ABS, CDE: NEAR 主模块EXTRNPUBLIC二级子模块1PUBLIC二级子模块2PUBLICPUBLIC二级子模块n1二级子模块n PUBLICPUBLICPUBLIC一级子模块1EXTRN一级子模块2EXTRN

8、一级子模块mEXTRN 汇编语言程序的模块结构程序中根据各种可能出现的情况及相应的处理方法分成若干支路,运行时,根据不同情况有选择地执行相应处理程序。分支程序设计 一段程序有时重复执行多次,就牵涉到循环程序结构,其组成部分为:1. 循环体即要求重复执行的程序段部分,包括循环工作部分和循环控制部分。2. 循环初态循环开始时往往要置初态,赋初值,包括循环工作部分初态和结束条件初态。循环程序设计 3. 循环结束条件在循环程序中必须给出循环结束条件,否则就会进入死循环,结束条件有好多种,最常见的有:(1) 用计数器控制循环(2) 按问题的条件控制循环(3) 用开关量控制循环(4) 多重循环39条件控制

9、法条件控制法 在许多情况下,事先无法确定循环次数,这时可选 用“条件”来控制循环。在问题的求解过程中,找出 一个终止循环的条件。每循环一次,对条件进行一次检测,如满足终止循每循环一次,对条件进行一次检测,如满足终止循 环的条件,便退出循环,否则继续循环。环的条件,便退出循环,否则继续循环。利用条件转移指令控制循环是否结束。利用条件转移指令控制循环是否结束。有些情况下为防止死循环,可以附加一个合适的循有些情况下为防止死循环,可以附加一个合适的循 环次数。环次数。42多重循环程序设计多重循环程序设计多重循环就其本质而言,就是循环层1包含循环层2, 循环层2可能又包含循环层3循环层1为最外层,内层循

10、环是外层循环的循环体的一部 分。43多重循环程序设计如果多重循环都使用如果多重循环都使用 LOOPLOOP语句,则要保语句,则要保 护好外层循环的计数护好外层循环的计数 器器CXCX,通常采用压,通常采用压 栈或退栈的方法或者栈或退栈的方法或者 转存的方法。转存的方法。汇编语言程序与DOS的接口 1 DOS和BIOS的功能调用 1DOS系统功能调用的一般步骤 DOS为磁盘操作系统(Disk Operating System)的 简称。DOS提供了极为丰富的子程序,能够实现控制 键盘、显示器、读写文件、串行通信等一系列功能。 使用DOS系统功能调用的一般过程:见下图所示。功能调用号AH 置入口参

11、数执行 “INT 21H ” 分析出口参数 系统功能调用的方法(1)键盘输入 (1号调用)格式:MOV AH,1 INT 21H功能:等待从键盘输入一个字符并将输入字符的ASCII码送入寄存器AL中,同时在显示器上显示该字符,碰到CTRL+Break则退出。2DOS系统统功能调调用的一般步骤骤 (2)显示单个字符 (2号调用)格式:MOV AH,2 MOV DL,待显字符的ASCII码 INT 21H功能:将DL中的字符送显示器显示,若为CTRL+Break的ASCII码则退出。(3)控制台输入 (8号调用)格式:MOV AH,8 INT 21H功能:与1号调用相似,但只从键盘上输入而不显示。

12、(4) 显示字符串 (9号调用)格式:LEA DX,字符串首偏移地址 MOV AH,9 INT 21H功能:将当前数据区中以 $结尾的字符串送显示器显示。例如,要显示下列DIS0数组变量中定义的 字符串 DIS0 DB PRESS ANY KEY TO QUIT,0DH,0AH, $ 程序如下: LEA DX, DIS0 MOV AH, 09H INT 21H (5) 键盘输入字符串 (10号调用)格式:LEA DX,缓冲区首偏移地址 MOV AH,10 INT 21H功能:从键盘上往指定缓冲区中输入字符串并送显示器显示。3常用BIOS调用 BIOS为基本输入输出系统(Basic Input

13、and Output System),它提供了最底层的控制程序。 (1)设置显示器显示模式 功能:设置显示器显示模式。格式:MOV AH, 00H MOV AL,显示模式代码 INT 10H(2)设置光标位置 功能:设置光标位置,使字符从该位置处开始显示。MOV AH, 02H MOV BH, 页号 MOV DH, 行号 MOV DL, 列号 INT 10H 2 用户程序与DOS的接口 1程序段前缀PSP 程序段前缀PSP是一个256字节的区域,从页的 边界开始存放有关信息。用户程序可从PSP中获得有 关键盘输入参数等信息。当DOS加载一个可执行文件的程序代码到内存 中去时,它首先为该程序建立一个程序段前缀PSP, 然后把可执行的程序代码加载到PSP后续的地址上。 2用户程序与DOS的接口 在DOS操作系统下,用户程序的主程序,对于操 作系统而言,也是一个过程,且必须说明为FAR属性 。 3结束用户程序返回DOS的方法 (1)INT 20H 说明:INT 20H为系统“结束任务返回DOS”的子程序。 (2)用户程序用RET指令返回 说明:用户程序必须定义为一个FAR过程。(3)用DOS系统功能调用4CH返回 格式: MOV AH, 4CH INT 21H

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

当前位置:首页 > 生活休闲 > 科普知识

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