资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,几点要求: 1. 进实验室请穿上鞋套,按学号坐. 2. 严格执行上机间. 3. 不准带软盘、U盘进入机房. 4. 实验前要预习并写好预习报告即预先编写好程序,课前检查,做为平时成绩的一部分. 5. 在实验时间内可自由掌握进度,先做完者先结束.欢迎做选做的实验。 不得抄袭或拷贝他人程序. 实验结束后,写实验报告,包括如下内容: 实验目的、内容;流程图;相应的程序;实验结果;实验小结,关于实验内容安排: 软件部分 1. ex01:汇编程序的编写与调试实验 P43-51 2. ex02:两个多位十进制数相加的实验 P54 3. ex03:两个数相乘的实验 P64 ex04:从键盘输入进制数据 P63 转换成二进制显示出来的实验 ex05:排序实验 P65 硬件部分 ex06: 8255 控制交通灯实验 P69 ex07:8253可编程计数器、定时器实验P71 8. ex08:可编程中断控制器8259实验 P74 9. 实验考试,本次课的学习内容: 1、汇编程序的建立流程 2、汇编过程中,5个汇编指令的用法及含义 3、DOS系统功能调用中几种常用的功能指令 4、调试程序时各种DEBUG指令的使用,一、 计算机的上机与下机步骤. 、 上机步骤: 打开微机电源, 在E盘下新建一个文件夹,我们编写的所有程序都要存在该文件夹里。统一命名为DZ06XX,XX为学号后两位, 例如 10号为DZ0610 (2) 双击桌面的MS-DOS方式,出现E: ,建立新的路径名,到达新建文件夹里: E:CD DZ06XX 回车 出现E:DZ0610 (3) 可以开始编辑 E:DZ0610EDIT EX*.ASM 回车. 进入编辑状态 EDIT的编辑功能大家都已熟悉. 2、 关机步骤: (1) 在EDIT状态下将文件存盘,退出EDIT状态. 出现E:DZ0610 (2) 关电源.,二、 汇编语言编程过程 第一步:根据要求和功能画出程序流程图 第二步:用编辑软件Edit按一定的格式根据流程图编辑程序(注:被编辑的文件扩展名应为.ASM) 第三步:用汇编程序MASM进行汇编,如果有问题还要回到第二步重新编辑,如此反复,直至正确 第四步:用链接程序 LINK链接,形成可执行程序 第五步:运行、调试程序,用Debug调试,如果有问题还要回到第一步、第二步、 直到无问题达到要求为止.,用EDIT指令编辑用户程序,产生.ASM文件 用MASM指令产生目标文件,将源程序转换为机器代码(. OBJ文件) 语法有错,需重新编辑,无错产生.OBJ文件等 连接程序,用LINK指令产生可执行程序的文件(.EXE) 执行.EXE文件 运行结果有错,则可利用DEBUG程序进行跟踪调试 修改,然后重新编译,无错结束,编辑汇编语言源程序,汇编程序MASM,语法有错吗,连接程序LINK,执行程序,结果有错吗,调试程序DEBUG,汇编语言程序上机过程,有,有,1、 编辑:(以编辑文件EX01.ASM为例) E:DZ0610EDIT EX01.ASM 回车. 进入编辑状态,编辑完毕后存盘(SAVE). Alt-F打开File菜单,Alt-E打开Edit菜单, Alt键激活菜单,通过方向键选择菜单项.Esc键关闭菜单. New: 第一次编辑,编辑新文件 Open: 打开已存在的文件 Save: 屏幕内容按当前文件名存盘 Save As: 屏幕内容按新文件名存盘 Close:关闭当前文件,清屏 Exit:退出Edit,、键是光标移动键,Insert键改写、插入切换键,键删除键. Home键移动光标到行头,End键移动光标到行尾,Page Up键往前翻页,Page Down 键往后翻页.CapsLock键大、小写字母切换键。F1键显示编辑命令 键翻页, ESC键回到原屏幕.右手的Shift键是UCDOS关闭、打开键.,2、 汇编:退出EDIT后,进行宏汇编,键入: E:DZ0610MASM EX01.ASM 回车 目标文件 object filename obj: 回车 ; 列表文件 source listing lst: 回车 交叉符号表 cross reference cqf: 回车 如果被汇编的程序没有语法错误,则屏幕上还将给出如下信息: warning serer errors errors 0 0,3、 链接: 用LINK命令产生可执行文件(EXE文件),条件是源程序语法逻辑无错,已通过汇编. E:DZ0610LINK EX01.OBJ 回车. 在屏幕上见到如下信息: 执行文件 RUN FILE .EXE: 映象文件 LIST FILE .MAP: 库文件 LIBRARIES .LIB: WARNING: NO STACK SEGMENT 4、 文件的执行 E:DZ0610EX01 回车,5个汇编流程指令(假定文件名定义为EX01) 编辑:EDIT EX01.ASM 汇编:MASM EX01.ASM 或 MASM EX01; 链接:LINK EX01.OBJ 或 LINK EX01; 执行:EX01.EXE 调试:DEBUG EX01.EXE,三、 编写程序的格式: 一般可按如下格式编写 * 名称 MACRO (宏指令) 指令1 . . 指令n ENDM 举例:建立回车换行的宏指令 CRLF CRLF MACRO MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH INT 21H ENDM,* DATA SEGMENT (数据段) 变量名 DB 表达式1,表达式2表达式n 变量名 DW 表达式1,表达式2表达式n 变量名 DD 表达式1,表达式2表达式n . DATA ENDS * STACK SEGMENT (堆栈段) STA DB 50DUP(?) TOP EQU LENGTH STA STACK ENDS *,CODE SEGMENT (程序段) ASSUME CS:CODE,DS:DATA, SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK 程序主体 MOV SS,AX MOV SP,TOP . . MOV AX,4C00H INT 21H,* 如有子程序,应放在程序的最后,格式如下: 子程序名1 PROC NEAR 子程序1开始 . RET 子程序名1 ENDP 子程序1结束 子程序名2 PROC NEAR 子程序2开始 . RET 子程序名2 ENDP 子程序2结束 CODE ENDS 程序段结束 END START 结束 *,练习汇编流程 例:编写一段汇编源程序,在屏幕上显示出一串英文字符“HOW ARE YOU!”,5个汇编流程指令(假定文件名定义为HOW) 编辑:EDIT HOW.ASM 汇编:MASM HOW.ASM 或 MASM HOW; 链接:LINK HOW.OBJ 或 LINK HOW; 执行:HOW.EXE 调试:DEBUG HOW.EXE,data segment data1 db how are you! data ends stack segment para stack db 64dup(?) stack ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,09h mov dx,offset data1 int 21h mov ah,4ch int 21h code ends end start,四、 常用的DOS中断,在这里介绍中断21的功能. DOS中断指令中21H中断为系统功能调用,是提供给用户的功能子程序,共有80多个可以调用. 调用指令格式: MOV DX,参数 ;送入口参数到指定寄存器中(DX、DL). MOV AH,功能号 ;功能号送入AH寄存器中 INT 21H ; 中断调用,出口参数在AL中 下面介绍5种常用的调用功能:,1、 01H号系统功能调用,出口:AL寄存器. 功能:从键盘输入一个按键, 该键的ASCII码存在AL中,同时字符显示在屏幕上。 指令格式: MOV AH,01H INT 21H 举例:从键盘上输入字符“B”,并将其显示在屏幕上。 从键盘上输入的“”,以ASCII的形式42H被存放在中,此时,2、 0AH号系统功能调用 功能:输入一连串按键,各按键的ASCII码存放在缓冲区并显示在屏幕上 条件:应在数据段中设立数据缓冲区 DATA SEGMENT BUFFER DB DUP(?) . DATA ENDS 格式:MOV DX,OFFSET BUFFER MOV AH,0AH INT 21H 当BUFFER DB 20 时有可存放20个字节的缓冲区,则当键盘每输入一个字符时缓冲区就有一个字符的ASCII码直到回车后才将缓冲区内容显示在屏幕上,故0AH号功能是字符串显示调用. 输入缓冲区结构:0字节缓冲区大小;1字节字符计数(不包括CR符); 2字节以后字符行存入,举例:利用0AH功能,从键盘输入一串字符“ABCD1234”,存放在缓冲区BUFFER中,并显示在屏幕上 写入指令:MOV DX,OFFSET BUFFER MOV AH,0AH INT 21H 运行程序之后,从键盘输入字ABCD1234 BUFFER 缓冲区的内容如下:,缓冲区大小,.,字符计数 此处输入8个字符,实际字符行存入,3、 02H号系统功能调用. 功能:在屏幕上显示一个字符 格式: MOV DL,A被显示字符的ASCII码送输入参 数寄存器DL中 MOV AH,02H INT 21H 将字符(在DL中的)在屏幕上显示,特别当DL中是0DH时,执行后为“回车“,当DL中 是0AH时,执行后为“换行“. 0DH= “回车“, 0AH= “换行“ 举例:现知BL=35H,即字符“5”,将其显示在屏幕上。 MOV DL,BL MOV AH,02H INT 21H,4、 09H号系统功能调用. 功能:显示一串字符,这串字符的ASCII码在缓冲区中.此功能与0AH功能对应。 条件: 在DATA中应设立缓冲区 DATASEGMENT BUF DB XXXXXX,$ .* . 格式: MOV DX,OFFSET BUF MOV AH,09H INT 21H 将缓冲区中的XXXXXX字符串显示在屏幕上, 特别注意:内存单元BUF必须以$作为结束字符。因为运行程序时,会自动显示内存单元的字符直到$出现才停止。若内存单元未设置$,运
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号