ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:22.98KB ,
资源ID:5938967      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5938967.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言程序设计实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言程序设计实验指导书.docx

1、汇编语言程序设计实验指导书实验一 汇编语言环境一、实验时间:2010年3月4日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG三、实验目的及要求: 本实验属于指令操作类实验,学生通过DOS指令及DEBUG指令的操作进行实验环境的熟悉,主要要求有如下几点:1、了解DOS的一般操作指令2、掌握DEBUG程序的基本参数的使用四、实验内容:1、操作DOS的盘符之间的转换及子目录命令2、使用DEBUG命令: D,E,F,H,Q,R五、实验步骤:1、DOS常用命令练习:1)练习在DOS的各个分区之间进行切换:命令格式为 盘符: 如进入D盘命令为 D:2)练习在各个文件夹之间进行切换: 21退回

2、本盘符根目录 cd 22退回上层目录 cd. 23进入下层目录 cd(空格)目录名3)练习使用功能键“F3” 输入一行命令后,回车,如果需要重复输入可以按功能键F3,如果是前面几行的命令可以用方向键上下来调节。4)用命令 COPY BUG 复制一个文件。5)用命令 RENAME BUG BG 将BUG 文件改为BG。6)用命令 DEL BG 将文件BG删除。7)用命令 DIR查找当前目录当中的文件,并会使用/P及/W两个参数。2、DEBUG 命令使用:1)打 DEBUG 进入 DEBUG 控制,显示提示符 - 。2)用命令 F 100 10F A 将A的ASCII码填入内存。3)用命令 D 1

3、00 10F 观察内存中的16进制码及屏幕右边的ASCII字符。4)用命令 F 110 11F 41 重复上二项实验,观察结果并比较。5)用命令 E 100 30 31 32 3F将30H-3FH写入地址为100开始的内存。单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6)用H命令检查下列各组16进制数加减结果并和你的手算结果比较:-H 34 22会得出34与22的和与差(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7)用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中Z

4、F,CF和AF的内容。8)用R命令将AX,BX内容改写为1050H及23A8H。9)用Q命令来退出DEBUG状态,返回DOS界面。六、实验结果写出步骤3、6、7的实验结果七、实验体会(主要谈与DOS命令一般的WINDOWS命令不同之处并谈谈用DEBUG看到的内存空间的体会)实验二 汇编指令一、实验时间:2010年3月11日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求: 掌握MASM的操作步骤,能够将源程序编译成可执行文件,同时进一步熟悉DEBUG中命令并能用A来输入简单的汇编指令。1、掌握DEBUG程序的基本参数的使用2、学会用MASM将汇编

5、程序编译链接成EXE文件3、学会用DEBUG将EXE文件装入内存当中调试4、熟悉使用数据传输指令MOV四、实验内容:1、将教师提供的源程序编译并链接成可执行文件。2、用DEBUG命令装入该可执行文件。3、用DEBUG命令的A、T、U命令来跟踪调试该可执行文件。4、掌握8086汇编指令:MOV,ADD,ADC,SUB,SBB,DAA,XCHG。5、掌握BCD码,ASCII码及用16进制数表示二进制码的方法。6、学会查看8086寄存器:AX,BX,CX,DX,F,IP。五、实验步骤:1、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSU

6、B AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。2、对源程序进行汇编的过程1)用用文字编辑工具(记事本或EDIT)将源程序输入下面的代码,其扩展名为.ASM。data segmentmessage db This is a sample program of keyboard and displydb 0dh,0ah,Please strike the key!,0dh,0ah,$data endsstack segment p

7、ara stack stackdb 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain: mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,bnd: mov dl,almov ah,2int 21hjmp againexit: mov ah,4chint 21hcode endsend start2)

8、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用TYPE命令显示1产生的.LST文件。4)用LINK将.OBJ文件连接成可执行的.EXE文件。5)在DOS状态下运行LINK产生的.EXE文件。6)若未出现预期结果,用DEBUG (文件名).EXE检查程序。六、实验结果16进制数加减法手算结果及实验结果程序的运行结果(即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。)七、实验体会(汇编指令与普通的程序的指令有何不同)附:(不用在实验报告上面写附的东西

9、)DEBUG 使用:1、打 DEBUG 进入 DEBUG,显示提示符。2、退出DEBUG命令:Q3、显示内存命令:D 起始地址 结束地址4、修改内存命令:E 起始地址,连续修改打空格键。打回车键退出E命令。5、检查寄存器命令:R标志位显示 1 0CF CY NCZF ZR NZSF NG PLAF AC NAOF OV NVPF PE PODF DN UPIF EI DI6、修改寄存器命令:R 寄存器名7、小汇编命令:A 起始地址,不输入指令打回车键退出A命令。8、反汇编命令:U 起始地址 结束地址9、文件命名命令:N 盘号:文件名10、读文件命令:L 内存地址11、写文件命令:W 内存地址1

10、0、读扇区命令:L 内存地址 盘号(0-A:,1-B:) 扇区号 扇区数11、写扇区命令:W 内存地址 盘号 扇区号 扇区数12、运行命令:G=起始地址 结束(断点)地址13、单步命令:T=起始地址 运行指令数,进入子程序内部。14、单步命令:P=起始地址 运行指令数,不进入子程序内部。15、内存搬家命令:M 起始地址 结束地址 目的地址实验三 顺序程序设计一、实验时间:2010年3月25,2010年4月1日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求:调试老师给的一段代码,并能分析、调试运行;掌握顺序程序的设计,自己独立设计一段代码并运行。

11、四、实验内容:1仔细阅读汇编语言教材相关内容;2熟练掌握DEBUG中的D、E、U、T命令;3掌握在DEBUG中如何找到数据段段基址的方法;4掌握单步跟踪程序执行的方法;5掌握键盘输入字符、显示字符的系统调用使用方法:6初步了解十进制数字与其对应的ASCIII码之间的相互转换方法;7初步了解十六进制数字与其对应的ASCII码之间的相互转换方法。五、实验步骤:1)用用文字编辑工具(记事本或EDIT)将源程序输入下面的代码,其扩展名为.ASM。 DSEG SEGMENT TAB1 DB 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 DB 7 DUP(0) 0AH, 0BH, 0CH, 0

12、DH, 0EH, 0FH SUM DB 0 DSEG ENDS DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX MOV BX, OFFSET TAB1 MOV AH, 01H ;接受第一个数据 INT 21H SUB AL, 30H XLAT MOV DL, AL MOV AH, 01H ;接受第二个数据 INT 21H SUB AL, 30H XLAT ;转换为十六进制数 ADD AL, DL ;求两数之和 XOR AH, AH MOV CH, 10 DIV CH ;商为十位数字,

13、余数为个位数字 ADD AL, 30H ;将十位数字转换为ASCII码 MOV CH, AH ;保存个位数字 MOV DL, AL MOV AH, 02H ;显示十位数字 INT 21H MOV DL, CH ADD DL, 30H ;将个位数字转换为ASCII码 MOV AH, 02H ;显示个位数字 INT 21H MOV AH, 4CH INT 21H CSEG ENDS END START2)用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文件连接成可执行的.EXE文件。4)在DOS状态

14、下运行LINK产生的.EXE文件。5)用DEBUG (文件名).EXE装入程序,并用T和G命令进行跟踪。六、实验结果程序的运行结果及程序的代码的主要目的(从键盘上接收两个一位十六进制数据,求其积,并以十进制形式显示出来。)自己写一段简单的源程序,并写出结果。七、实验体会(汇编指令编程与普通的编程有何不同)实验四 分支程序设计一、实验时间:2010年4月1日,2010年4月8日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求: 1掌握利用间接转移指令JMP BX实现多岔分枝的方法; 2掌握指令对标志寄存器中各标志位的影响情况; 3掌握标志位和转移指

15、令之间的关系;4初步掌握利用设置断点调试程序的方法;5、宏替换指令MACRO及ENDM。四、实验内容:1仔细阅读汇编语言教材相关内容。 2熟练掌握DEBUG中的G命令。3在DEBUG下执行程序,利用跟踪命令检查指令对标志位的影响情况。4掌握对INT指令的跟踪方法。五、实验步骤:1、对源程序进行汇编的过程1)用用文字编辑工具(记事本或EDIT)将源程序输入下面的代码,其扩展名为.ASM。disp macro msglea dx,msgmov ah,9int 21hmov ah,4chint 21hendmstack segment stackdb 256 dup(0)stack endsdata

16、 segmentparm db 16 dup(?)brtable dw offset bra,offset brb,offset brcdw offset brd,offset bre,offset brfmsga db I like my IBM-PC!$msgb db How are you!$msgc db Nibao College$msgd db This is a sample$msge db Wellcome use my coputer!$msgf db Theassemder language of 8086$errms db Error! invalid parameter

17、!$data endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,datamov es,axmov si,80hlea di,parmmov cx,16cldrep movsbmov ds,axcmp parm,2jc errmov al,parm+2sub al,30hjc errcmp al,6jnc errlea bx,brtablecbwadd ax,axadd bx,axjmp bxerr: disp errmsbra: disp msgabrb: disp msgbbrc: disp msgcbrd: disp

18、msgdbre: disp msgebrf: disp msgfcode endsend start2)用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文件连接成可执行的.EXE文件。4)用命令DEBUG XXX (XXX为任意字符串)将带参数调入DEBUG用D命令观察DS:0080处的命令行,记录80H处的内容和字符个数的关糸。5、退出DEBUG。直接带参数运行此程序:AA n(n=0-5)依次观察并记录 n从0到5时的运行结果。六、实验结果程序的运行结果及程序的代码的主要目的自己写一段简单的

19、分支程序,并写出结果。七、实验体会(汇编指令分支程序与普通的IF then else或者 case语句有何不同)实验五 循环程序设计一、实验时间:2010年4月15日,2010年4月22日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求:1、掌握多重循环程序和排序程序设计方法。2、 COM文件的要求和生成过程。3、自己能编写一个简单的循环程序并输出结果。4、熟悉PSP前缀文件的意义,COM文件前缀与EXE文件前缀的区别。四、实验内容:1、将教师提供的源程序编译并链接成可执行文件。2、掌握带符号数的比较转移指令:JL,JLE,JG,JGE3、掌握伪

20、指令 EQU 及操作符 $的使用。4、理解org 100h语句的意义五、实验步骤:1、对源程序进行汇编的过程1)用用文字编辑工具(记事本或EDIT)将源程序输入下面的代码,其扩展名为.ASM。code segmentorg 100hassume cs:code,ds:codemain: jmp startarray dw 1234h,5673h,7fffh,8000h,0dffhdw 0ab5h,0369h,005fh,5634h,9069hcount equ $-arraystart: mov cx,countshr cx,1dec cxmov bl,-1again: mov dx,cxan

21、d bl,blje exitxor bl,blxor si,siagain1: mov ax,arraysicmp ax,arraysi+2jle nchgxchg arraysi+2,axmov arraysi,axmov bl,-1nchg: inc siinc sidec dxjnz again1loop againexit: int 20hcode endsend main2)用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文件连接成可执行的.EXE文件。4)用EXE2BIN将 .exe

22、文件转换为 .COM文件,命令格式:EXE2BIN ?.EXE ?.COM5)用命令DEBUG (文件名).EXE调入DEBUG用D命令观察运行的结果六、实验结果简要介绍一下程序的目的,同时找到结果所在的位置,并将结果正确显示出来(数的排序)七、实验体会(这里如果不把EXE文件转化成COM文件能不能正常执行)实验六 子程序定义及调用一、实验时间:2010年4月22日,2010年4月29日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求:1、掌握利用堆栈传递参数的子程序调用方法。2、掌握子程序递归调用方法。3、过程调用伪指令: PROC,ENDP,

23、NEAR和FAR。4、8086指令: CALL,RET,RET n。5、利用RET指令退出EXE文件的方法。四、实验内容:1、将教师提供的源程序编译并链接成可执行文件。2、用DEBUG命令装入该可执行文件。3、用DEBUG命令的A、T、U命令来跟踪调试该可执行文件。五、实验步骤:1、对源程序进行汇编的过程1)用文字编辑工具(记事本或EDIT)将源程序输入下面的代码,其扩展名为.ASM。stack segment stackdb 256 dup(0)stack endsdata segmentary1 db 1,2,3,4,5,6,7,8,9,10count1 equ $-ary1sum1 dw

24、 ?ary2 db 10,11,12,13,14,15,16,17,18count2 equ $-ary2sum2 dw ?data endsmain segmentassume cs:main,ds:data,ss:stackstart proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov ax,count1push axlea ax,ary1push axcall far ptr summov ax,count2push axlea ax,ary2push axcall far ptr sumretstart endpmain end

25、sproce segmentassume cs: procesum proc farmov bp,spmov cx,bp+6mov bx,bp+4xor ax,axadn: add al,bxadc ah,0inc bxloop adnmov bx,axret 4sum endpproce endsend start2)用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文件连接成可执行的.EXE文件。4)用DEBUG的断点命令和T命令运行此程序,观察并记录每次过程调用及进出栈指令前后(带;的语句)

26、的SP和堆栈内容。六、实验结果当CALL的时候,堆栈当中压入的数及CS、IP值的变化情况当RET的时候,堆栈当中弹出的数及CS、IP值的变化情况程序的运行结果(最后结果:SUM1,SUM2的段及偏移地址和它们的内容。)七、实验体会(程序的调用与宏指令有何区别,同时堆栈在当中所起的作用是什么)实验七 模块化程序设计一、实验时间:2010年5月6日,2010年5月13日,2010年5月20日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求:通过实验掌握下列知识:1、堆栈。堆栈指示器SP和堆栈操作指令PUSH。POP。2、段寄存器和物理地址计算。3、查

27、表法和查表指令XLAT。4、数据串传送程序和数据串传送指令MOVS。STOS及重复前辍REP。5、循环指令ROL。逻辑与指令AND和清方向位指令CLD。6、伪操作指令DB。四、实验内容:1、用DEBUG命令A装入该可执行文件。2、用DEBUG命令的T、U命令来跟踪调试该可执行文件。3、用DEBUG命令的D来查看运行过程。五、实验步骤:1、用A命令键入下列程序:MOV BX,1000MOV DI,2000MOV CX,4LOP: PUSH CXMOV CL,4ROL DX,CLPOP CXMOV AL,DLAND AL,OFXLATCLDSTOSBLOOP LOPINT 202、用A命令在100

28、0H处键入下列ASCII码并用D命令检查之:DB 0 1 2 3 4 5 6 7 8 9 A B C D E F用D命令检查时注意左边的ASCII码值和右边的字符。3、用R命令给DX送一个四位的16进制数(例7F8E)。4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。可注意屏幕右边的ASCII字符与DX是否一致。六、实验结果程序的运行结果实验八中断调用程序设计一、实验时间:2010年5月27日,2010年6月3日,2010年6月10日二、实验设备:硬件:计算机系统软件

29、:MS-DOS、DEBUG、MS-MASM 三、实验目的及要求:1、掌握利用INT 16H 2号功能调用实行键盘输入的方法。2、熟悉键盘的扫描码和ASCII码的关系。3、掌握利用INT 10H功能调用实现窗口功能的方法。4、掌握利用INT 21H功能调用实现窗口功能的方法。5、掌握利用系统调用2H功能调用实现实行键盘输出的方法。四、实验内容:1、将教师提供的源程序编译并链接成可执行文件。2、用DEBUG命令装入该可执行文件。3、用DEBUG命令的A、T、U命令来跟踪调试该可执行文件。五、实验步骤:1、程序:PRO_NAM SEGMENTASSUME CS:PRO_NAMORG 100HAGAIN: MOV AH,0INT 16HMOV BX,AXCALL BINIHEXMOV AH,2MOV dl,20hINT 21HMOV DL,BL

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1