《汇编语言实验报告.doc》由会员分享,可在线阅读,更多相关《汇编语言实验报告.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验报告一:汇编语言实验基础一实验目的:1. 熟悉汇编语言程序的开发过程以及汇编语言常用软件的使用方法2. 掌握 DEBUG 常用命令的使用方法二、实验内容:1DEBUG 命令使用28088 常用指令练习三、实验步骤:(一)DEBUG 命令使用: 1、打 DEBUG 进入 DEBUG 控制,显示提示符_ 。 2、用命令 F 100 10F A 将A的 ASCII 码填入内存。 3、用命令 D 100 10F 观察内存中的 16 进制码及屏幕右边的 ASCII 字符。 4、用命令 F 110 11F 41 重复上二项实验,观察结果并比较。 5、用命令 E 100 30 31 32 3F 将 30
2、H-3FH 写入地址为 100 开始的内存 单元中,再用 D 命令观察结果,看键入的 16 进制数是什么字符的 ASCII 码? 6、用 H 命令检查下列各组 16 进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH 7、用 R 命令检查各寄存器内容,特别注意 AX,BX,CX,DX,IP 及标志位中 ZF,CF 和 AF 的内容。 8、用 R 命令将 AX,BX 内容改写为 1050H 及 23A8H。(二)8088 常用指令练习 1、传送指令 1)用 A 命令在内存 100H 处键入
3、下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,35 MOV AL,48MOV DX,75AB XCHG AX,DX 2)用 U 命令检查键入的程序,特别注意左边的机器码。 3)用 T 命令逐条运行这些指令,注意有关寄存器及 IP 的变化情况。并注意标志位有无变化。 2、加减法指令: 1)用 A 命令在内存 100H 处键入下列内容: MOV AH,34 MOV AL,22 ADD AL,AH SUB AL,78 MOV CX,1284 MOV DX,5678 ADD CX,DX SUB CX,AX SUB CX,CX 2)用 U 命令检查键入的
4、程序及对应的机器码。 3)用 T 命令逐条运行这些指令,检查有关寄存器及 ZF 情况。 3、内存操作数及各种寻址方式使用: 内容: MOV AX,1234 MOV 1000,AX MOV BX,1002 MOV BYTE PTRBX,20 MOV DL,39 INC BX MOV BX,DL DEC DL MOV SI,3 MOV BX+SI,DL MOV BX+SI+1,DL MOV WORD PTRBX+SI+2,2846 步骤: 1)用 A 命令键入上述程序,并用 T 命令逐条运行。 2)每运行一条有关内存操作数的指令,用 D 命令检查有关内存单元的内容并思考是什么寻址方式。3)注意 D
5、 命令显示结果中右边的 ASCII 字符及双字节数存放法。实验报告二: 分支程序实验1. 实验目的:(1) 掌握分支程序的设计方法(2) 掌握利用 DEBUG 修改参数、检查结果的方法。(3) 掌握汇编语言源程序的编辑、汇编、连接及调试过程。2. 实验内容编写一个程序,显示 AL 寄存器中的两位十六进制数3. 实验准备(1) 编写实验内容要求的程序。(2) 写出调试以上程序,即修改程序参数,检查结果的操作方法。(3) 熟悉源程序汇编、连接命令的使用方法即要回答的内容。4. 实验步骤(1) 用 EDIT 或其它编辑软件,编写.ASM 源程序,例如 HEXASC.ASM 及DSPKEY.ASM。(
6、2) 对其进行汇编及连接,产生.EXE 文件。(3) 对.EXE 文件进行调试运行。a. 用 DEBUG 调试运行,学会修改 AL 内容的方法。b. 对 DSPKEY.EXE 键入不同的字符,分别进行调试。c. 在 MS-DOS 下运行这两个.EXE 文件。5. 程序:CODE SEGMENTASSUME CS:CODESTART: MOV AL, 3EHMOV BL, ALMOV DL, ALMOV CL, 4SHR DL, CLCMP DL, 9JBE NEXT1ADD DL, 7NEXT1: ADD DL, 30HMOV AH, 2INT 21H ;显示高位 ASCII 码MOV DL,
7、 BLAND DL, 0FHCMP DL, 9JBE NEXT2ADD DL, 7NEXT2: ADD DL, 30HMOV AH, 2INT 21H ;显示低位 ASCII 码MOV AH, 4CHINT 21HCODE ENDS ;返回 DOSEND START实验报告三 循环程序设计实验一实验目的1.熟练掌握循环程序结构的设计方法。2进一步熟悉 DEBUG 调试程序即及其各种命令的用法3学会在 DEBUG 中使用各个命令以后怎样找出自己所要的各个存储单元的地址。4锻炼设计程序算法和编写程序的能力。5理解各个控制转移指令的意义和使用方法。二实验内容编写一个汇编语言程序,要求对键盘输入的小写
8、字母用大写字母显示出来。三实验步骤:(1)在实验前设计好算法并编写出程序。(2) 点击桌面上的“开始”按钮,选择“运行”,在出现的对话框中输入“cmd”按“确定”,然后用 cd命令进入 masm6.11 文件夹。(3)用 edit+文件名.asm 在 masm6.11 文件夹里新建一个文件并回车,进入编写程序的页面,文件名为 aaa.asm。(4)程序如下:.model small.stack 256h.data.code.startupmov ax,datamov ds,axl1: mov ah,01hint 21hor al,aljz l3cmp al,ajb l2cmp al,zja l
9、2sub al,20hmov dl,almov ah,02hint 21hl2:jmp l1l3: mov ax,4c00hint 21hend(5)把程序保存后退出,然后用 ml aaa.asm 命令检查并连接程序(即 ml+文件名.asm),在程序没有出错时生成 aaa.obj 文件和 aaa.exe 文件。具体情况如下所示:(6)进入 degug 调试程序。输入 debug aaa.exe(即 debug+文件名.exe)回车进入 debug 调试。先使用一次反汇编命令 U 回车后,出现前十六条指令的反汇编结果,具体情况如下:A.在使用了第一个 U 命令以后可以看到我自己编写的核心指令是从0B82:0017 开始的,但这时还没有找到核心程序的结束点,故再次使用反汇编U 命令,这时页面的显示内容如下:B.在使用第二个 U 命令以后可以观察到核心程序的结束点是在 0b82:0036,故再使用执行断点命令 G 命令(输入 G 0036 回车),然后再键盘上输入任意的小写字母,都会自动输出对应的大写字母,如下所示:C.当输入一个大写字母或别的内容加回车键则退出程序了。D.该程序在连接生成了可执行程序(即 exe 程序)以后可以直接执行。方法为在 masm6.11 文件中打开相对应的 exe 文件。E.同样,要退出程序,输入大写字母或别的内容就能自动退出程序了。
限制150内