2022年《汇编语言》实验指导书- .pdf
《2022年《汇编语言》实验指导书- .pdf》由会员分享,可在线阅读,更多相关《2022年《汇编语言》实验指导书- .pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1 页 共 38 页汇编语言实验指导书计算机学院网络工程系李冬艳2016101 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - 第 2 页 共 38 页实验一汇编语言上机环境及基本操作一、实验目的及要求1学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。2熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。二、实验内容1汇编语言源程序的建立本例中给出的程序是要求编写3+5=8的程序,并把
2、 8 存入 AL或 AX中。设定源程序的文件名为 ABC.ASM 。(用任何一个种文本编辑器编写此程序,存盘) 或双击桌面的“Masm for Windows 集成实验环境 2012.5 ”快捷文件图标,进入汇编语言集成开发环境DATAS SEGMENT ; 此处输入数据段代码DATAS ENDS STACKS SEGMENT ; 此处输入堆栈段代码STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START : MOV AX,DATAS MOV DS,AX ;= 名师资料总结 - - -精品资料欢迎下载 - - - -
3、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - - - - - - - - 第 3 页 共 38 页MOV AX ,3 ;自己写的代码Mov BX ,5 ;自己写的代码ADD AX ,BX ;自己写的代码 ( 只有3条) ; 此处输入代码段代码;= MOV AH,4CH INT 21H CODES ENDS ENDSTART程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接, 也可以再次调出源程序进行修改。2将源程序文件汇编成目标程序文件一般情况下,汇编程序MASM.exe 的主要功能有以下3 点:(
4、1)检查源程序中存在的语法错误,并给出错误信息。(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。(3)若程序中使用了宏指令,则汇编程序将展开宏指令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 - - - - - - - - - 第 4 页 共 38 页3用链接程序 link.exe生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过链接以后,才能成为可执行文件(即扩展名为.EXE) 。链接以后,便可
5、以产生可执行程序文件(.EXE文件) 。4程序的执行本程序当中没有编写输出部分代码,所以在屏幕上看不到程序执行的结果。我们可以采用调试程序DEBUG 来进行检查,相关内容请参见实验二。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 38 页 - - - - - - - - - 第 5 页 共 38 页实验二DEBUG 调试程序的应用一、实验目的DEBUG.EXE 程 序 是 专 门 为 分 析 、 研 制 和 开 发 汇 编 语 言 程 序 而 设 计 的一 种 调 试
6、工 具 , 具 有 跟 踪 程 序 执 行 、 观 察 中 间 运 行 结 果 、 显 示 和 修 改寄 存 器 或 存 储 单 元 内 容 等 多 种 功 能 。 它 能 使 程 序 设 计 人 员 或 用 户 触 及到 机 器 内 部 ,因 此 可 以 说 它 是 80X86CPU 的 心 灵 窗 口 ,也 是 我 们 学 习 汇编 语 言 必 须 掌 握 的 调 试 工 具。二、实验内容1在 DEBUG 环境下建立和汇编程序在 DEBUG 环境下用户可以直接建立汇编语言源程序,并可以进行编辑修改和调试。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
7、- - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 38 页 - - - - - - - - - 第 6 页 共 38 页比如,在 DEBUG 下编写如下程序:MOV DL ,33H ;字符 3 的 ASCII 码送 DL MOV AH ,2 ;使用 DOS 的 2 号功能调用INT 21H ;进入功能调用,输出3该程序运行结果是在显示器上输出一个字符3 。如果要输出其它字符,请改变程序中 33H 为相应字符的ASCII 码。其中涉及 DOS 和 BIOS功能调用。因为我们是在 DOS 的支持下运行汇编语言程序,所以一般情况下,不能轻易使用输入/输出指令直接通
8、过端口输入输出,而必须使用DOS 内部提供的子程序完成输入/输出。DOS 功能调用就是为诸如此类的目的设置的。DOS 功能调用要求在进入INT 21H调用前,首先将功能调用号送AH寄存器,并根据功能调用号准备初始数据。也就是说 INT 21H的 2 号功能调用是输出DL寄存器中的字符。 INT 20H是 BIOS中断服务,这一软中断用来正常结束程序。具体步骤如下:进入 debug 调试环境后,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 38 页 - - - - - -
9、 - - - 第 7 页 共 38 页(1)输入程序并汇编_A 100 0B03:0100 MOV DL ,33 0B03:0102 MOV AH ,2 0B03:0104 INT 2l “0B03:0100”类似这样的地址是系统自动提供的,不需用户输入。至此程序已输入完毕,并汇编成机器指令。现在用G命令运行程序如下:(2)运行程序_G 3 Program terminated normally 如果现在想分析一下该程序的指令,可以用反汇编命令U作如下操作:(3)反汇编_U 100 ,108 0B03:0100 B233 MOV DL,33 0B03:0102 B402 MOV AH,02 0
10、B03:0104 CD21 INT 21 (4)将机器指令程序送到起始地址为200H的若干单元, 将输入指令复制到代码段的 200 单元,可进行如下操作:_E cs:200 B2,33,B4,02,CD ,21 (5)执行机器指令程序_G=200 3 Program terminated normally 三、常用 DEBUG 命令DEBUG 命令是在命令提示符“ _”下由键盘键入的。每条命令以单个字母的命令符开头,然后是命令的操作参数,操作参数与操作参数之间,用空格或逗号隔名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
11、心整理 - - - - - - - 第 7 页,共 38 页 - - - - - - - - - 第 8 页 共 38 页开,操作参数与命令符之间用空格隔开,命令的结束符是回车键(ENTER ) 。命令及 参 数 的 输入 可 以 是大 小 写 的 结 合 。 Crtl+Break键 可 中 止 命 令的 执 行 。Crtl+NumLock 键可暂停屏幕卷动, 按任一键继续。 所用的操作数均为十六进制数,不必写 H。1汇编命令 A 格式:(1)A : (2)A : (3)A (4)A 功能:汇编命令是将用户输入的汇编语言指令,汇编为可执行的机器指令。键人该命令后显示段地址和偏移地址并等待用户从
12、键盘逐条键入汇编语言指令。每当输入一行语句后按“ ENTER ”键,输入的语句有效。若输入的语句中有错,DEBUG会显示“ Error” ,要求用户重新输入,直到显示下一地址时用户直接键入回车键返回到提示符“ _” 。其中( 1)用指定段寄存器内容作段地址; (3)用 CS 内容作段地址;(4)以CS : 100 作地址。以后命令中提及的各种地址形式,均指(1) 、 (2) 、 (3)中 A命令后的地址形式。2比较命令 C 格式: C , 其中是由指出的一片连续单元, 或由 L 指定的。功能:从的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以
13、的形式显示失配单元及内容。3显示内存单元命令D 格式:(1)D (2)D (3)D 其中( 1)以 CS为段寄存器;(3)显示 CS : 100 为起始地址的一片内存单元内容。功能:该命令将显示一片内存单元的内容,左边显示行首字节的段地址:偏移地址,中间是以十六进制形式显示的指定范围的内存单元内容,右边是与十六进名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 38 页 - - - - - - - - - 第 9 页 共 38 页制数相对应字节的ASCII 码字符,对不可见
14、字符以 代替。4修改内存单元命令E 格式:(1)E (2)E 其中是一个十六进制数,或是用引号 (或” )括起来的字符串; 是以逗号分隔的十六进制数,或是用或”括起来的字符串,或者是二者的组合。功能: (1)将指定内容写入指定单元后显示下一地址,以代替原来内容。可连续键入修改内容,直至新地址出现后键入回车为止; (2)将逐一写入由 开始的一片单元中,该功能可以将由指定地址开始的连续内存单元中的内容,修改为单元内容表中的内容。例如: _E DS: 30 F8,AB, ”AB ”该命令执行后,从 DS : 30 到 DS : 33 的连续 4 个存储单元底内容将被修改为F8H ,ABH ,41H
15、,42H 。5填充内存命令 F 格式: F 功能:将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。例如: F 05BC: 200 L 10 B2,XYZ ,3C 该命令将由地址05BC : 200 开始的 10H (16)个存储单元顺序填充“ B2,58,59,5A,3C ,B2,58,59,5A,3C ,B2,58,59,5A,3C,B2”6连续执行命令 G 格式:(1)G (2)G = (3)G=, 其中( 2) 、 (3)中的“ =”是不可缺省的。功能:默认程序从 CS : IP 开始执行。程序从当前的指定偏移地址开始执行。从指定地址开始执行,到断点自动停止并显示当前
16、所有寄存器、状态标志位的内容和下一条要执行的指令。 DEBUG 调试程序最多允许设置10个断点。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 38 页 - - - - - - - - - 第 10 页 共 38 页7跟踪命令 T 格式: T = 功能:如果键入 T命令后直接按“ ENTER ”键,则默认从 CS : IP 开始执行程序,且每执行一条指令后要停下来,显示所有寄存器、状态标志位的内容和下一条要执行的指令。用户也可以指定程序开始执行的起始地址。的缺省值是一条,
17、也可以由 指定执行若干条命令后停下来。例如: T 该命令执行当前指令并显示所有寄存器、状态标志位的内容和下一条要执行的指令。又例如: T 10 该命令从当前指令开始执行10H条指令后停下来, 所有寄存器、 状态标志位的内容和下一条要执行的指令。8反汇编命令 U 格式:(1)U (2)U 功能:反汇编命令是将机器指令翻译成符号形式的汇编语言指令。该命令将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次 U指令后下一地址的值。这样可以连续反汇编。9执行过程命令 P 格式: P 功能:执行一条指令或一个
18、过程(子程序),然后显示各寄存器的状态。说明:该命令主要用于调试程序。它与跟踪命令T 的作用类似, T 命令是跟踪一条或多条指令,而P命令是执行一条指令(包括带重复前缀的数据串操作指令)或一个完整的过程(子程序) 。例如:设有如下指令序列: MOV AH,02H INT 21H :当要执行 INT 21H 这条指令时, 若用 T 命令进行跟踪, 则进入 INT 21H 程序(DOS 功能调用)后,需要数十次T 命令才能返回当前程序;若采用P命令进行调名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
19、 - - 第 10 页,共 38 页 - - - - - - - - - 第 11 页 共 38 页试,则只执行 INT 21H 一条指令,执行完立即返回,给调试者的感觉好象是执行了一条普通指令一样。因此,当读者以后遇到CALL 、INT n 指令或带重复前缀的数据串操作指令时,若不想观察相应过程的详细执行过程,就可以用P命令。10显示命令 R 格式:(1)R (2)R 功能:显示当前所有寄存器内容、状态标志及将要执行的下一指令的地址(即CS : IP) 、机器指令代码及汇编语句形式。其中对状态标志寄存器FLAG以状态标志位的形式显示,详见表2-1。表 2-1 状态标志显示形式状态标志位状态显
20、示形式溢出标志 OF 有/ 无OV/NV 方向标志 DF 减/ 增DN/UP 中断标志 IF 开/ 关EI/DI 符号标志 SF 负/ 正NG/PL 零标志 ZF 零/ 非零ZR/NZ 奇偶标志 PF 偶/ 奇PE/PO 进位标志 CF 有/ 无CY/NC 辅助进位标志AF 有/ 无AC/NA 键入该命令后将显示指定寄存器名及其内容,“: ”后可以键入修改内容。 键入修改内容后按“ ENTER ”键有效。若不需修改原来内容,直接按“ENTER ”即可。例如: R AX 11结束 DEBUG 返回 DOS 命令 Q 格式: Q 功能:返回 DOS 提示符下。四、重新调试实验一的程序,看最终AX寄
21、存器的值是多少?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 38 页 - - - - - - - - - 第 12 页 共 38 页实验三简单算术运算程序设计一、实验目的1掌握数据传送和算术运算指令的用法。2熟悉在 PC 机上建立、汇编、连接和调试程序的方法。3理解计算机中除法溢出的含义。二、实验内容1设 W、X、Y、Z 均为 8 位带符号数,要求完成计算表达式W=X+Y-Z 。编程思路(仅供参考) :该题目要求掌握运算中带符号数和无符号数运算的区别。本题目只考虑有
22、符号数情况参考程序清单 :ABC.ASM DATA SEGMENT X DB 1 ;x 单元存放数字 1,以下类推 Y DB 4 Z DB 3 W DB ?,? ;预留 2 个单元,存放运算结果DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX , DATA MOV DS ,AX ;= MOV AL , X ADD AL , Y ;x+y SUB AL ,Z ;x+y-z 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
23、 12 页,共 38 页 - - - - - - - - - 第 13 页 共 38 页 MOV W ,AL 存结果到 W单元 ;= ;=输出结果 MOV AH ,2 ;调用 DOS 中断 INT 21H 功能的 2 号子功能 ADD AL,30h ;个位数字变成数字字符, Mov dl,al INT 21H ;此 3 条语句输出数字的ASCII 码;= MOV AH,4CH INT 21H CODE ENDS END START 思考:1.如果运算结果大于等于10,显示的结果正确吗?如何解决?2.如果运算结果小于0,显示的结果正确吗?如何解决?名师资料总结 - - -精品资料欢迎下载 - -
24、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 38 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 38 页 - - - - - - - - - 第 1 页 共 38 页实验四汇编语言的输入输出一、实验目的1. 掌握数据传送和算术运算指令的用法。2熟悉字符的输入输出。3理解计算机中除法溢出的含义。二、实验内容改写实验三 ABC.ASM ,分以下 6 个
25、问题进行编程1. 改写实验三 ABC.ASM ,把其中的 X,Y,Z 都置空 ,代码如下X DB ? Y DB ? Z DB ? 2. 改为从键盘输入X,Y,Z 的值,分别为1,4,3,输入单个字符的代码为:MOV AH , 1 INT 21H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 38 页 - - - - - - - - - 第 2 页 共 38 页;调用 INT 21H 中的 1 号功能,输入单个字符,输入的字符的 ASCII 码值存放在 AL 寄存器中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 2022年汇编语言实验指导书- 2022 实验 指导书
限制150内