2022年2022年汇编语言实验教程 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年汇编语言实验教程 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言实验教程 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言实验教程汇编语言课题组南通大学计算机科学与技术学院2010 年 9 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 2 目录目录 . . 2前言 . . 错误!未定义书签。实验一汇编程序设计初步. 3一、实验目的与要求. 3(一)、实验目的 . 3 (二)、实验要求 . 3 二、实验方法(汇编工具的使用). 4(一)、用编辑程序建立asm文件 . 4 (二)、用汇编程序对源文件汇编产生目标文件obj . 4 (三)、
2、用连接程序link 产生执行文件exe . 5 (四)、运行程序 . 6 (五)、程序调试及结果查看. 6 实验二循环程序设计. 7一、实验目的与要求. 7 二、实验内容 . 8 三、实验报告要求. 8 实验三分支程序设计. 8一、实验目的与要求. 8 二、实验内容 . 8 三、实验报告要求. 9 实验四子程序设计. 9一、实验目的与要求. 9 二、实验内容 . 9 三、实验报告要求. 10 附录. . 11附录 1 常用 DOS 命令 . 11附录 2 DEBUG主要命令 . 13附录 3 汇编程序出错信息 . 16附录 4 常用字符 ASCII 码值 . 20名师资料总结 - - -精品资
3、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 3 实验一汇编程序设计初步一、 实验目的与要求(一) 、实验目的学习程序设计的基本方法和技能,进一步加深对微机接口芯片原理及工作过程的理解,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。为后继课程打下坚实的基础。(二) 、实验要求1. 上机前要做好充分的准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。2. 上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验有关的系统软件(如
4、编辑程序、汇编程序、连接程序和调试程序等)的使用方法及实验仪器。在程序的调试过程中,有意识地学习及掌握debug程序的各种操作命令,以便掌握程序的调试方法及技巧。为了更好地进行上机管理,要求用硬盘储存程序,并建立和使用子目录,以避免文件被别人删除。有关目录及文件操作的DOS 命令见附录 1。此外,为了便于统一管理硬盘中的文件,要求实验者按以下形式命名实验文件:字母学号 .asm 其中字母取 az 中的一个字母,按实验顺序从a 至 z 排列。如学号为 850431学生的第二个实验程序所对应的文件名应为b850431.asm。3程序调试完后,须由实验指导教师在机器上检查运行结果。每个实验完成后,应
5、写出实验报告。实验报告的要求如下: 设计说明:用来说明设计的内容、硬件原理图。它包括:程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明等。 调试说明:便于学生总结经验提高编程及调试能力。它包括:调试情况,如上机时遇到的问题及解决办法, 观察到的现象及其分析, 对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会等。 程序框图。 程序清单。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 4 二
6、、 实验方法(汇编工具的使用)(一) 、用编辑程序建立asm文件用文字处理软件编辑源程序。常用编辑软件有:EDIT.EXE 、记事本、 WORD 等。无论采用何种编辑工具,生成的文件必须是纯文本文件,且文件扩展名为asm 。下列程序完成两个字节数相加, 并将和存于 SUM 变量中。 用编辑软件建立以abc.asm为文件名的源程序文件。 DATA SEGMENT BUF DB 41H,6BH SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START :MOV AX,DATA MOV DS,AX MOV AL,BUF ADD AL,B
7、UF+1 MOV SUM,AL MOV AH,4CH INT 21H CODE ENDS END START (二) 、用汇编程序对源文件汇编产生目标文件obj当源程序建立以后,用汇编程序masm 对 abc.asm 源程序文件进行汇编,操作步骤如下: (以下划线部分为用户键盘输入, “”代表回车,未划线部分为屏幕显示,小字部分为说明)。C:MASM masm abc Microsoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Crop 1981-1985,1987,All rights reserved Object
8、filename abc.obj 输入目标文件名,若采用括号 中的名字,按Source listingNUL.LST 若需要列表文件,输入文件名,按;如果不需要,直接按Cross-referenceNUL.CRF 若需要交叉索引文件,输入文件名;如不需要,直接按 49758 + 451602 Bytes symbol space free 0 Warning Errors 0 Severe Errors名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - -
9、- - - - - - 5 回答上述问题后, 汇编程序就对源程序进行汇编。 若汇编中发现源程序有语法错误,则列出错误语句所在行、错误代码及错误性质说明。错误分警告错误(Warning Errors)和严重错误 (Severe Errors)。警告错误指汇编程序认为的一般性错误;严重错误指汇编程序认为无法进行正确汇编的错误,给出其错误个数,错误性质。这时,就要对错误进行分析,找出问题和原因, 然后再调用编辑程序对源程序进行修改。修改后重新汇编,直到无错误为止。除了用上述方法分步回答问题外,还可以用命令行的形式按顺序对相应提示予以回答,其格式是:masm 源文件名,目标文件名,列表文件名,交叉引用
10、文件名;其中文件名都不必给出扩展名,汇编程序会按照缺省情况使用或产生。若只想对部分提示给出回答,则在相应位置用逗号隔开,若不想对剩余部分作答,则用分号结束。例如以下命令经汇编后在当前目录下产生abc.obj文件,不产生 lst文件和 crf 文件。C:MASM masm abc ;(三) 、用连接程序 link 产生执行文件 exe C:MASM link abc Microsoft (R) 8086 Object Linker Version 5.00 Copyright (C) Microsoft Crop 1981-1985,1987,All rights reserved Run Fi
11、le abc.exe 输入可执行文件名,若采用括号 中的名字,按List FileNUL.MAP 若需要映象文件,输入文件名,按;如果不需要,按LibrariesNUL.LIB 若需要库文件,输入文件名,按;如果不需要库文件,按Warning: no stack segment 上述给出的警告信息,表示用户程序没有定义堆栈段。该警告不影响可执行程序的生成和正常运行,因为运行时会自动使用系统提供的缺省堆栈。回答上述问题后, 连接程序开始连接, 若连接过程中有错, 则显示错误信息。 此时,按错误提示,修改源程序,然后,回到第二步。直至汇编无错误,连接无错误(错误 No Stack Segment
12、除外) ,在当前目录下产生可执行文件(exe) ,进入第四步。同样也可以用命令行的形式按顺序对相应提示予以回答,其格式是:link 目标文件名,可执行文件名,内存映象文件名,库文件名;其中不必给出扩展名, 连接程序会按照缺省情况使用。 若只想对部分提示给出回答,则在相应位置用逗号隔开,若不想对剩余部分作答,则用分号结束。例如以下命令行对abc.obj 文件连接后在当前目录下产生abc.exe 文件,其余文件均不需要。C:MASM link abc;从 6.0 版以后,Microsoft公司把 MASM 和 LINK的功能由一个 ML.EXE 程序完成,只需一个命令就可以把源程序汇编并连接生成.
13、EXE文件。而不再需要分两步操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 6 ML.EXE 常用格式为:ML /F1/Fm/Fr/c 源文件其中,源文件名的扩展名 (.asm) 不能省, 中的 F 必须大写,l,m,r,c必须小写,各可选项含义如下:/F1:产生 .lst列表文件,缺省时不产生。/Fm:产生 .map内存映象文件,缺省时不产生。/Fr :产生 .sbr 交叉参考文件,缺省时不产生。/c :只产生 ,ob
14、j 目标文件,不产生 .exe 可执行文件。缺省时只产生.exe 文件。例:ML /Fl abc.asm 以上命令会对已存在的abc.asm 文件汇编且连接, 并在当前目录下生成一个列表文件 abc.lst和一个可执行文件abc.exe. (四) 、运行程序设连接生成的执行文件为abc.exe , 运行程序只需在 DOS 提示符下键入文件名即可,如:C:MASM abc若程序能够运行但不能得到预期结果,则需要静态或动态查错。静态查错即检查源程序,并对源程序进行修改,然后再汇编、连接、运行。如果静态检查无法发现错误,则需动态查错。(五) 、程序调试及结果查看这里使用 DEBUG 程序进行调试,
15、DEBUG 是一种使用广泛的强有力的汇编语言程序或二进制文件的调试工具。设 abc.asm 经汇编及连接后,产生abc.exe 文件,对它的调试操作如下:1把程序装入内存,并显示程序清单C:MASMdebug abc.exe- 此时, debug已将执行程序装入内存,可键入debug的有关命令调试程序。-U用反汇编命令 U列出程序清单13E3 :0000 B8E213 MOV AX,13E2 13E3 :0003 8ED8 MOV DS,AX 13E3 :0005 A00000 MOV AL, 000013E3 :0008 02060100 ADD AL, 000113E3 :000C A20
16、200 MOV 0002 ,AL 13E3 :000F B44C MOV AH,4CH 13E3 :0011 CD21 INT 21 ,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 7 2查看数据段内容或查看寄存器内容-D DS:0000查看数据段内容13E2 :0000 41 6B 00 00 00 00 00 00-00 00 00 00 00 00 00 00 Ak. 可见 0000、0001单元内容为数据段定义的内容
17、,分别为47H 、6AH 。DEBUG 状态下,缺省数制为十六进制数。-R查看寄存器内容AX=13E2 BX=0000 CX=0023 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=13D2 ES=13D2 SS=13E2 CS=13E3 IP=0003 NV UP EI PL NZ NA PO NC 若查看指定寄存器内容,在R命令后跟上寄存器名,例:-R AX查看寄存器 AX的内容AX 13E2 :若需修改 AX的值,则键入新值;若无需更改,按回车。3连续运行程序,查看结果-G 或 G =0 0013 运行程序, 0 为运行起始地址, 0013为断点地
18、址-D DS:0000查看内存结果13E2 :0000 41 6B AC 00 00 00 00 00 00 00 00 00 00 00 00 00 可见 0002 单元中内容已变为0000和 0001 两单元内容之和。4如果连续得不到正确结果,需分步跟踪运行-T=0000 0000 这所需要运行指令的地址AX=13E2 BX=0000 CX=0023 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=13D2 ES=13D2 SS=13E2 CS=13E3 IP=0003 NV UP EI PL NZ NA PO NC 13E3 :0003 8ED8 M
19、OV DS ,AX 显示单步执行后寄存器和标志状态之后,停在下一条指令开始处。-T顺序运行下一条指令5退出 DEBUG -Q实验二循环程序设计一、实验目的与要求1熟悉汇编语言运行、调试环境及方法。2掌握循环程序的设计方法。3掌握显示输出 DOS 功能调用的使用方法。4熟悉调试工具 DEBUG,并运用 DEBUG 工具调试程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 8 二、实验内容(一)、在数据段中有从STRING 单
20、元开始存放的100 个字节数据, 编写程序要求将字符串中的大写字母转换为小写字母,并显示到屏幕上。(二)、 用表格形式显示字符:按 15 行 16 列的表格形式显示ASCII 码为 10HFFH 的所有字符。每 16 个字符为一行,每行中的相邻两个字符之间用空白符(ASCII 码为 0)分隔。分析与提示1显示字符可使用DOS 功能调用的 2 号功能,使用方法如下: MOV DL , 需显示字符的 ASCII 码值 (如显示 A字符: MOV DL,41H或 MOV DL,A) MOV AH,02H INT 21H 本实验中可把 BL寄存器初始化为 10H , 显示完当前字符后使其加1 以取得下
21、一个字符的 ASCII 码。若需显示的字符在BL寄存器中,则上述第二条指令为: MOV DL,BL 2显示空白符时,用其ASCII 码值 0 置入 DL寄存器。每行结束时,用显示回车符(ASSII 码值为 0DH )和换行符( ASSII 码值为 0AH )来结束本行并开始下一行。3本程序为两重循环,需设置两个循环计数器,可用CL寄存器作为行计数器,初始值为 15,CH寄存器作为列计数器,初始值为16。三、实验报告要求1. 记录汇编源程序。2. 记录调试过程中遇到的问题和解决的方法。实验三分支程序设计一、实验目的与要求1、掌握分支程序的设计方法。2、掌握键盘输入 DOS 功能调用的使用方法。2
22、掌握二进制转换为十进制的方法二、实验内容(一)、通过键盘输入9 个 16 进制的个位数,数据存入BUFF 缓冲区中,编写程序分别统计BUFF中大于等于8 和小于 8 的个数,并分别存放到PLUS 和 MINUS 单元中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 9 (二)、程序接收用户键入的一行字符(个数80,字符串以回车结束) ,按字母、数字及其它字符分类统计,并以十进制数形式显示统计结果。分析与提示1、程序可使用DO
23、S 功能调用的 0AH功能接收用户键入的字符,然后再逐个取出分类统计,大、小写字母均作为字母统计。2、将统计结果以十进制数形式显示方法有两种,一是将统计结果除以10,商转换为 ASCII 码并显示,余数转换为ASCII 码并显示 ( 因字符总个数 80);二是在统计过程中,某类字符个数加1 后,用 DAA指令调整为十进制数,然后将统计结果从左到右每四位为一组,转换为ASCII 码并显示。3程序的执行过程如下:Please input string:e6ABC&*1423%g Letter:05 Digit:05 Other:03 三、实验报告要求1. 记录汇编源程序。2. 记录调试过程中遇到的
24、问题和解决的方法。实验四子程序设计一、实验目的与要求1掌握子程序的设计方法。2掌握十六进制转换二进制、二进制转换为十进制的方法二、实验内容(一)、用子程序调用的形式,编写程序从键盘键入0FFFFH 之间的十六进制数,并存放到存储器中。(二)、从键盘键入0FFFFH 之间的十六进制数,并转换成十进制在屏幕上显示出来。分析与提示1采用子程序结构将据要求分成几个子程序实现。子程序HEXIBIN实现从键盘取名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - -
25、- - - - - 10 得十六进制数并转换为二进制数;子程序 BINIDEC实现把此二进制数转换为十进制数并显示;另外用 CRLF子程序显示回车和换行。2假设接收的十六进制数为a1a2a3a4,转换为二进制数的方法为: (016+a1)16+a2)16)+a3) 16a4 可用 BX存放部分和,初始化为0;每输入一位数,完成 (BX)16+该位数3二进制数转换为十进制数的方法是用该二进制数除以10000,商转换为ASCII码并用 DOS 功能调用的 02H功能显示;再将余数除以1000,以次类推。三、实验报告要求1. 记录汇编源程序。2. 记录调试过程中遇到的问题和解决的方法。名师资料总结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言实验教程 2022 汇编语言 实验 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内