2022年2022年汇编语言实 .pdf





《2022年2022年汇编语言实 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言实 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 实 验 一汇 编 语 言 源 程 序 的 输 入一、实验目的1.通过实验了解和熟悉微机系统的配置。2.学习在 DEBUG 状态下输入汇编源程序的方法。3.初步掌握调试(在 DEBUG 状态下)的过程。二、实验原理1.本实验要求在DEBUG 状态下输入汇编源程序,并用 DEBUG 命令进行调试。用单步跟踪的方法验证指令的功能。2.以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。注:微机进入 DEBUG 状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;在 DEBUG 状态下执行程序时,“INT 20H”指令可使系统执行完
2、该指令前的程序时返回到“-”提示符状态,并且恢复CS和 IP 寄存器原来的值。三、实验仪器微机一台,软盘一块。四、实验步骤1.开机和关机操作顺序开机:先打开微机外部设备电源开关,如显示器、打印机,最后打开主机电源开关。关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。2.开机之后,把已准备好的PC-DOS 系统软盘插入到A 驱动器中,等待微机系统自检完成。若自检无故障,计算机将自动引导A 驱动器的DOS 操作系统,实现 DOS 系统的启动,并出现提示符:A 若微机系统带有硬盘驱动器,且 PC-DOS 操作系统已装入硬盘,机器自检后(A 驱动器门应打开),可以在硬盘上直接启动PC
3、-DOS 操作系统,此时,出现提示符:C 若计算机启动、自检出现故障,不能启动DOS 系统时,可同时按下Ctrl+Alt+Del三个键,再重新启动一次(热启动),或关断主机电源重新送电一次(冷启动),若再失败,说明主机确有故障,应停止上机。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -2 3.装入 DEBUG 程序若计算机系统启动正常,可以从磁盘上调用DEBUG 程序到内存。一般C 盘上或PC-DOS 软盘上装有DEBUG 软件,若没有,可以用COPY 命令从其它盘拷贝过来,然后从装有 DEBUG 的磁盘上调用DEBUG 程序。例如:C DEBUG(回车符)(DEB
4、UG 提示符)或A DEBUG 当显示器出现提示符“”时,说明已进入DEBUG 状态,这时,可用 DEBUG 命令进行操作。4.用 DEBUG 的 Register 命令检查所有寄存器内容,并作记录。命令格式:R 寄存器名 该命令的功能是显示寄存器的内容,或修改某一指定寄存器内容,若寄存器名 缺省,则显示所有寄存器内容。例如:R 5.用 DEBUG 的 Assemble 命令输入汇编源程序。格式:A 内存地址 注:用“”符号括起来的部分表示可以省略。该命令的功能是从指定的内存地址开始(括号不要输入)逐条输入汇编语言源程序并汇编成机器码存入内存。若地址缺省,则接上一个A 命令最后一条指令之后输入
5、汇编语句,若没有用过A 命令,则从CS:0100H 地址开始输入。例如:A 0CD3:0100在输入A 命令之后,或每输入一条指令之后,显示器的左端给出了内存的段地址和偏移地址。每条指令均用回车()结束。若输入的指令有语法错误,DEBUG 拒绝接收,并给出提示,此时可以重新输入。程序的最后一条指令输入完之后,再按一次回车键(),即可结束汇编命令,回到DEBUG 提示符“”状态。6.用 DEBUG 的 Unassemble命令反汇编。命令格式:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -3 U 起始地址 终止地址 该命令的功能是从起始地址到终止地址反汇编目标码,缺省
6、值是接上一个U 命令或从CS:0100H 地址开始。例如:U 显示器上将显示程序的内存地址、指令机器码的汇编源程序三列对照清单。7.用 DEBUG 的 Trace 命令单步跟踪程序。命令格式:T =起始地址 指令条数 该命令的功能是从指定的起始地址开始逐条执行指令,每执行完一条指令,屏幕显示所有寄存器内容和下一条指令地址和指令。若=起始地址 缺省,则 T 命令从 CS:IP 地址开始执行指令。例如:T重复这一过程,即可看到每条指令执行后,所有寄存器和标志寄存器的标志位内容。此时,要检查内存单元的数据,可用DEBUG 的 Dump 命令,命令格式:D起始地址 终止地址 该命令的功能是从起始地址到
7、终止地址,连续显示存贮器单元的内容。若地址缺省,则接上一个D 命令或从DS:0100H 地址开始显示。例如:D五、实验内容1用 DEBUG 分析下列调整指令执行前和执行后的执行结果MOV AL,38HMOV AL,71H MOV BL,19HMOV BL,93H ADD AL,BL;AL=H AF=CF=ADD AL,BL;AL=H AF=CF=DAA;AL=H AF=CF=DAA;AL=H AF=CF=MOV AH,00HMOV AH,00H?MOV AL,05HMOV AL,35H MOV BL,09 HMOV BL,39H ADD AL,BL;AL=AF=CF=ADD AL,BL;AL=
8、H AF=CF=AAA;AX=HAAA;AX=H MOV AL,06HMOV AX,0308H 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -4 MOV BL,09HMOV BL,9 MUL BL;AX=HAAD;AX=H AAM;AX=HDIV BL;AH=H AL=H MOV AX,000AHMOV AX,0FFF3H MOV CL,06HMOV BL,03H MUL CL;AH=H AL=HIDIV BL;AH=H AL=H OF=CF=OF=CF=CLCCLC MOV AL 57HMOV AL,FAH ROL AL,01H;AL=H CF=SAR AL,1;
9、AL=H CF=RCL AL,01H;AL=H CF=SHR AL,1;AL=H CF=2.利用DEBUG程序中的”E?命令,将两个多字节数”12345678H”和”9ABCDEF0H”分别送入起始地址为DS:0200H 和 DS:0204H 两个单元中。在 DEBUG 中用”E”命令修改内存单元内容:E?DS:0200 78 56 34 12 F0 DE BC 9A 在 DEBUG 中用”D”命令观察 DS:0200HDS:020BH 字节单元的内容。3.分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将 DS:0200H 单元和 DS:0204H 单元的数据相加,并将运算结果存放在D
10、S:0208H 单元中。(注意:在此处,请先用Q 命令退出 DEBUG,然后再重新进入。)程序未执行前,用”R”命令观察相关寄存器的内容。R 如:(AX)=,(BX)=,(CS)=,(IP)=用“A”命令编辑和汇编程序 A126C:0100MOVAX,0200 126C:0103MOVBX,0202 126C:0107ADDAX,0204 126C:010BADCBX,0206 126C:010FMOV0208,AX 126C:0112MOV020A,BX 126C:0116HLT 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -5 126C:0117注意:DEBUG
11、 约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其后不用“H”说明。用”T”单步操作命令对源程序逐条执行,全部执行完后观察AX、BX、CS、IP 寄存器内容的变化,并与预计的结果比较。(AX)=,(BX)=,(CS)=,(IP)=最后用”D”命令观察 DS:0208HDS:020BH 字节单元的内容。(DS:0208H)=,(DS:0209H)=,(DS:020AH)=,(DS:020BH)=。五、实验报告要求1.整理每条指令执行的结果2.比较实验记录与理论分析的结果是否相同,若有不同,找出差别及问题所在。3总结本次实验的体会。六、参考资料OF(ov/nv):Over 溢出标志位DF
12、(dn/up):Direction 方向 标志位IF(ei/di):Enable 允许中断标志位SF(ng/pl):Symbol 符号 标志位ZF(zr/nz):Zero 零标志位AF(ac/na):Auxiliary 辅助进位标志位PF(pe/po):Parity 奇偶 标志位CF(cy/nc):Carry 进位标志位溢出OV(溢出)NV(未溢出)零位ZF(等于零)NZ(不等于零)方向DN(减少)UP(增加)辅助进位AC(进位)NA(无进位)中断EI(许可)DI(禁止)奇偶标志PE(偶)PO(奇)符号NG(负)PL(正)进位 CY(进位)NC(无进位)名师资料总结-精品资料欢迎下载-名师精心
13、整理-第 5 页,共 20 页 -6 实 验 二数 据 的 建 立 与 传 送 程 序一、实验目的1.熟悉 IBM PC 机的基本指令。2.继续熟悉计算机键盘及各功能键(参阅DOS 操作手册)。3.继续学习 DEBUG 命令。4.验证指令的功能。二、实验原理在 DEBUG 状态下,分别输入下面各程序段,每输入完一个程序段,用 G 命令进行连续方式执行程序,在连续执行时,要记录程序的执行结果。参考程序:1.在内存 10000H 单元开始,建立00H0FH00H 31 个数,要求00H 0FH 数据逐渐增大,0FH 00H 逐渐减小。该程序从内存CS:0100H 地址开始输入。MOV AX,100
14、0H MOV DS,AX MOV SI,0 MOV CL,0FH XOR AX,AX PPE1:MOV SI,AL INC SI INC AL DEC CL JNZ PPE1 MOV CX,10H PPE2:MOV SI,AL INC SI DEC AL LOOP PPE2 INT 20H 注:转段指令的符号地址直接用绝对偏移地址,该地址在用A 命令汇编输入时,可以看到程序全部运行完之后,可用DEBUG 的 Dump 命令查看建立的数据块内容。例如:名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -7 D1000:00 1E 2.把上一个程序的执行结果(建立的 31 个
15、字节数据块,其首地址在10000H),分几种方式传送到以下指定的区域。(a)该程序从内存CS:0150H 开始输入。把数据块传送到15050H 开始的存贮区域中。MOV AX,1000H MOV DS,AX MOV SI,0 MOV DI,5050H MOV CX,1FH;数据块长度是31 PPEA:MOV AL,SI MOV DI,AL INC SI INC DI LOOP PPEA INT 20H 检查内存数据块的传送情况,可用“D”命令。(b)用串传送指令MOVSB,把数据块传送到15150H 开始的区域,该程序从内存CS:0200H 开始输入。检查程序最后的执行结果,可用“D”命令,例
16、如:D1000:5150(c)用重复串操作指令“REP MOVSB”把数据块传送到15250H 开始的区域。该程序从 CS:250H 地址开始输入。检查程序的最后执行结果时,可用:D1000:5250H(d)用串操作的减量工作方式,把数据块传送到25050H 开始的区域。该程序从CS:0300H 开始输入。检查程序的最后执行结果,用D 命令:D2000:5050三、实验仪器1.IBM PC 微机或兼容机一套。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 20 页 -8 2.准备一张已格式化过的用户软盘(空盘),用于存放你的程序。四、实验步骤参照实验一的步骤,按照本实验程序的内容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言实 2022 汇编语言

限制150内