汇编实验 学生

上传人:我** 文档编号:118474374 上传时间:2019-12-15 格式:PPT 页数:32 大小:727.50KB
返回 下载 相关 举报
汇编实验 学生_第1页
第1页 / 共32页
汇编实验 学生_第2页
第2页 / 共32页
汇编实验 学生_第3页
第3页 / 共32页
汇编实验 学生_第4页
第4页 / 共32页
汇编实验 学生_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《汇编实验 学生》由会员分享,可在线阅读,更多相关《汇编实验 学生(32页珍藏版)》请在金锄头文库上搜索。

1、汇编实验 实验内容 实验一 汇编语言程序的运行环境和运行方法 实验二 顺序程序设计 实验三 循环程序设计 实验四 串操作 实验五 分支程序设计 实验六 子程序程序设计和宏结构 实验七 I/O程序设计和中断程序设计 实验八 综合应用 实验一 汇编语言程序的运行环境和运行方法 u 实验目的 1、了解汇编语言程序的运行环境和所需的系统程序; 2、掌握数和字符在内存中的存放,掌握加减指令; 3、掌握编辑、汇编、连接和运行汇编程序的过程; 4、掌握常用的DEBUG命令。 u 实验类型:验证 u 实验内容: u题1:阅读、调试以下程序,理解数和字符在内存中的存放。 DATA SEGMENT ;数据段 Da

2、ta0 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 Data1 DW 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 Data2 DD 1,2,3,4 Data3 DB 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11 ,-12, -13, -14,-15 Data4 DW 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11 ,-12, -13, -14,-15 Data5 DB a,b,c,d,e,f,g,h,A,B,C,D,E,F,G,H Data6 DB Please inpu

3、t a data: DATA ENDS 实验一 汇编语言程序的运行环境和运行方法 CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, DATA0+3 MOV BL, DATA0+6 ADD AL, BL SUB AL, 5 INC AL DEC AL ADD AL, AL MOV DL, AL ADD DL, 30H MOV AH, 2 INT 21H MOV AH, 4CH INT 21H CODEENDS END START u题2:编程计算 S2*(X+Y) -Z+3 已知数据段的

4、定义如下: DATA SEGMENT ;数据段 X DW 6 Y DW -2 Z DW 5 S DW ? DATA ENDS 实验一 汇编语言程序的运行环境和运行方法 u 实验步骤 1.在D盘(或别的盘符)下新建一个:MASM文件夹 2.把LINK.EXE 和MASM.EXE 拷贝到 MASM 文件夹里 3.在MASM 文件夹里 新建一个txt文件,改名成:xxx.asm 注:1)xxx表示:学号后两位题号 2)如果文件夹里不显示扩展名,则修改: 工具菜单-文件夹选项-查看-不选:隐藏已知文件类型的扩展 名 4.用记事本打开xxx.asm文件,输入源程序,注意同级别的要对齐。 5.打开:开始菜

5、单-附件-命令提示符 6.在dos提示符下输入: D:,然后回车,切换到D盘下 7.在 D:cd masm ,进入masm 目录 实验一 汇编语言程序的运行环境和运行方法 u 实验步骤 8.在d:masmmasm xxx.asm /扩展名可省略 看提示,如果正确,会生成xxx.obj 注: 如果源程序正确,241.obj:按回车 /默认生成241.obj NUL.lst:按回车,不生成241.lst NUL.lst:输入241,生成241.lst NUL.CRF的使用同NUL.LST 实验一 汇编语言程序的运行环境和运行方法 u 实验步骤 9.执行:d:masmlink xxx.obj /ob

6、j扩展名可省略,如无错误将生成 xxx.exe 文件。 10.执行:d:masmdebug xxx.exe 依次练习r、t、d命令,指令执行前预测变化,指令执行后观察变化是否与预测相 符合。 11. 用DEBUG命令调试题1,用单步命令T执行第一条指令,观察指令执行后寄 存器或数据区的变化。 12. 写出实现题2的指令系列(只能用mov、add指令),并进行调试 。 实验一 汇编语言程序的运行环境和运行方法 实验问题(按实验问题的解答状况给出分数) 数据段和代码段的地址空间?如何获取的? 数据段中的数组DATA0DATA6分别在内存中的存储空间、每个元 素的存储空间大小、存储形式、存储值? 写

7、出下列代码间每条代码执行后,数据段的哪一个单元或哪一个寄 存器的值发生了变化,原来是多少,本条代码执行后变成了多少 START:MOV AX, DATA MOV AH, 2 在本例用到的操作符中,那些可能会引起状态寄存器的变化? MOV AH, 2 和 MOV AH, 4CH INT 21HINT 21H 的功能分别是什么? 题2执行完后,S的偏移地址是多少,绝对地址是多少,内容是什么 ? 对Debug中的命令,已经掌握了哪些命令的用法,哪些还未掌握? 实验一 汇编语言程序的运行环境和运行方法 附录: 基本debug操作 1、显示内存单元的内容:d 地址 或 范围 2、修改内存单元的内容: e

8、 地址 内容表 或 e 地址 3、显示CPU内部寄存器和标志位状态:r 4、显示和修改某个寄存器的内容:r 寄存器名 5、汇编命令:a 地址 6、逐条指令追踪:t 地址 (无地址则执行IP所指示的指令) 7、退出debug:q 8、多条指令追踪:t =地址 n 注:该指令从指定地址起执行n条命令后停下来 9、运行命令:g =地址1 地址2 地址3. 地址1规定了运行起始地址,后面的地址均为若干断点地址 10、反汇编命令: (1) u 地址 该命令从指定地址开始,反汇编32个字节,若省略地址,则从上一个u命令 的最后一条指令的下一单元开始显示32个字节 (2) u 范围 该命令对指定范围的内存单

9、元进行反汇编 如:u 04ba:0100 0108 等价于: u 04ba:0100 L9 实验二顺序结构程序设计 实验目的 1.掌握汇编语言程序格式、顺序程序结构 2.掌握直接寻址方式、数据与地址 3.掌握汇编程序的处理过程。 实验类型:验证+设计 实验二顺序结构程序设计 实验内容 题1:阅读下面的代码,并说明该程序的功能 DATA SEGMENT X DW 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,X ADD AX,AX MOV BX,AX ADD AX,AX AD

10、D AX,AX ADD AX,BX MOV AX,4C00H INT 21H CODE ENDS ENDSTART 实验二顺序结构程序设计 实验内容 题2:阅读程序,理解各指令的功能,调试、运行程序,观察结果并记录。 DATA SEGMENT X DB 5 Y DB 3 S DB ? STR DB 3+5=,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X ;MOV AL,0000H MOV BL,Y ;MOV BL,0001H ADD AL,BL MOV S,AL ;MO

11、V 0002H,AL ;输出一个字符串 MOV AH,9 MOV DX,OFFSET STR INT 21H ;输出一个字符 MOV AH,2 MOV DL,S ADD DL,30H INT 21H MOV AX,4C00H INT 21H CODE ENDS END START 实验二顺序结构程序设计 实验内容 题3:编写程序,在以TABLE为首的地址中顺序存放有0-9 的立方数,从键盘上输入一个数(0-9),求其立方值, 结果存入RSLT单元。 实验步骤 阅读题1程序,理解各指令的功能,调试程序,观察各寄 寄存器的变化。 阅读题2程序,调试、运行程序,观察结果。 编写题3程序并调试。 总结

12、 总结MOV、ADD、SUB、INC、DEC指令的格式、功能 。 总结物理地址、段地址、偏移地址的关系。 总结直接寻址方式的格式、功能。 实验三循环结构程序设计(4课时) 实验目的 1掌握循环结构的设计方法、循环控制方法 实验属性:设计 内容提要 1设计、编写循环结构的程序 2通过调试观察循环结构的运行过程,掌握循环结构的 控制方法 3. 掌握计数法、条件控制法 实验三循环结构程序设计(4课时) 实验内容 题1:将程序填写完整,输出26个大写英文字符(用循环结构 实现)。 data segment mes db English:$ data ends code segment assume c

13、s:code,ds:data start: mov ax,data mov ds,ax mov ah,9 ;输出提示信息 lea dx,mes int 21h mov cx, 26 mov dl, ;输出一个字符 next: mov ah,2 int 21h loop next mov ax,4c00h int 21h code ends end start 实验三循环结构程序设计(4课时) 实验内容 题2:在数据段以array 为首地址的缓冲区内有10个字数据 ,编程求其累加和并存入SUM字单元中(用循环结构实 现)。(数据段如下,请编写源程序,并调试) data segment array

14、 dw 1,2,3,4,5,6,7,8,9,10 sum dw ? data ends 实验三循环结构程序设计(4课时) 实验内容 题3:在数据段以array1 为首地址的缓冲区内有10个字数 据,编程将其按顺序传送到附加段以array2 为首地址的 缓冲区内(用循环结构实现)。(数据段、附加段如下, 请编写源程序,并调试) data segment array1 dw 0111h,0222h,0333h,0444h,0555h,0666h, 0777h,0888h,0999h,0AAAh data ends extra segment array2 dw 10 dup(? ) ;重复定义10个空字 extra ends 题4:编程找出数据段10字数据中的最小数并输出。 题5:编程对一组数据升序排序,并输出结果。 实验三循环结构程序设计(4课时) 实验步骤 阅读各程序,理解各指令的功能,调试程序,观察各寄 存器的变化。 实验报告 总结循环结构的设计方法、循环控制方法。 实验四 串操作(2学时) 实验目的 1理解掌握串指令的功能 2掌握重复前缀的使用。 实验属性 验证+设计 内容提要 1编写程序实现串传送、串比较、串扫描

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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