欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    实验2-汇编语言程序上机过程.doc

    • 资源ID:1602786       资源大小:138KB        全文页数:9页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验2-汇编语言程序上机过程.doc

    大学汇编语言程序设计实验报告学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 实验2 汇编语言程序上机过程一实验目的熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。 二实验容1掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用;2伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;3利用的INT 21H的1号功能实现键盘输入的方法;三实验要求1仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的容;2了解利用的INT 21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法;3阅读下面程序段。四实验环境PC微机DOS操作系统或 Windows 操作系统MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境五实验步骤1、按步骤完成下列程序的编译、连接、运行及调试等过程:datasegmentmessagedb'This is a sample program of keyboard and display'db0dh,0ah,'Please strike the key!',0dh,0ah,'$'dataendsstacksegmentpara stack 'stack'db50 dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,axmovdx,offset messagemovah,9int21hagain:movah,1int21hcmpal,1bhjeexitcmpal,61hjcdisplaycmpal,7ahjadisplayandal,bdisplay:movdl,almovah,2int21hjmpagainexit:movah,4chint21hcodeendsendstart实验步骤:1用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为ASM。2用MASM对源文件进行汇编,产生OBJ文件和LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3用TYPE命令显示1产生的LST文件。4用LINK将OBJ文件连接成可执行的EXE文件。5在DOS状态下运行LINK产生的EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。若未出现预期结果,用DEBUG检查程序。6.将程序修改,使得用户键入除小写字母以外的其他字符(除ESC键),输出提示信息“Illegal character is striked,Please input again!” ,并要求重新输入。data segmentmessage db 'this is a sample program of keyboard and display'db 0dh,0ah,'please strike the key!',0dh,0ah,'$'message2 db 'Illegal character is striked,Please input again!'db 0dh,0ah,'please strike the key!',0dh,0ah,'$'data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segment assume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21h again: mov ah,1int 21hcmp al,1bh je exit ;如果输入是esc就退出cmp al,61hjc display2 ;如果输入小于"a"cmp al,7ahja display2 ;如果输入大于"z"and al,bdisplay:mov dl,al ;直接输出mov ah,2int 21hjmp againdisplay2:mov ax,data ;如果不是小写字母输出“重新再输”指令mov ds,axmov dx,offset message2mov ah,9int 21h jmp againexit:mov ah,4chint 21hcode endsend start2.下面程序任务是完成查表求一个十以整数的平方,程序有错误,请进行纠正并调试运行。DATA SEGMENT TABLE DB 0,1,4,9,16,25,36,49,64,81 HEX DW 5 ;待查的整数 RESULT DW ?DATA ENDSCD SEGMENT ASSUME CS:CODE, DS:DATSTART: MOV AX, DATA MOV DS, AX MOV BX, TABLE MOV AX, HEX ADD BX, AX MOV AX, BX MOV RESULT, AX MOV AH, 4CH INT 21HCD ENDS END START实验步骤1、 将该文件存成.asm文件,将其生成可执行文件。2、 编译该程序,找出错误。并纠正。data segmenttable dw 0,1,4,9,16,25,36,49,64,81 ;“db”应该改成“dw”hex dw 5 ; 待查的整数result dw ?data endscode segment ;“cd”应该改成“code”assume cs:code,ds:data ;“dat”应该改成“data”start: mov ax,datamov ds,axmov bx,tablemov ax,hexadd bx,axmov ax,bxmov result,axmov ah,4chint 21hcode ends;“cd”应该改成“code”end start3、 连接、运行看程序是否能得到正确结果。若不行,用Debug加载该可执行文件,单步调试,观察各寄存器变化及RESULT单元的值。找出问题。4、 重复汇编语言程序的上机过程,使程序能正确得到结果。5、 修改源程序,选用换码指令XLAT完成本程序相同的功能。data segmenttable db 0,1,4,9,16,25,36,49,64,81 ;把“dw”改成“db” hex db 5 ; 待查的整数result db ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axlea bx,table;把table地址给bxmov al,hexxlat;应用换码指令XLATmov result,almov ah,2int 21hmov ah,4chint 21hcode endsend start曾经出现错误:经检查,是由于红色字体部分漏写导致程序陷入循环无法出来。补写上后成功运行。6、 补充此程序的输入和输出功能。使得程序能任意输入数据,平方值也能以十进制显示在屏幕上。data segment table dw 0,1,4,9,16,25,36,49,64,81dataendsstacksegmentpara stack'stack'db100 dup(?)stackendscodesegment assume cs:code, ds:data, ss:stack start:mov ax,datamov ds,axmov es,axbegin: mov ah,1int 21hcmp al,1bhje exit ;如果输入是ESC键则退出cmp al,30hjc begincmp al,39hja begin ;如果输入值大于9小于0则重输sub al,30h ;输入值减去30h这样就变成了十进制的数字mov bx,tablepush cxshl al,1mov ah,alinc ahxlatmov cl,almov al,ahxlatmov ch,almov ax,cxpop cxcall cr_lfcall out_axcall cr_lfjmp beginexit:mov ah,4chint 21hout_ax proc nearpush bxmov dl,0call out_ascmov bl,100div blmov dl,alcall out_ascmov al,ahxor ah,ahmov bl,10div blmov dl,alcall out_ascmov dl,ahcall out_ascpop bxretout_ax endpout_asc proc nearadd dl,30hcall out_dlretout_asc endpcr_lf proc nearmov dl,10call out_dlmov dl,13call out_dlretcr_lf endpout_dl proc nearpush axmov ah,02hint 21hpop axretout_dl endpcodeends endstart六实验报告要求汇编,连接及调试时产生的错误,其原因及解决办法,要求你修改的程序的清单(修改后)和调试记录;各实验中的关键数据截图。七简答题1若在源程序中把INT 21H的'H'省去,会产生什么现象?从原来的int 21h去掉h后就会变成int 21,因为输入默认是10进制,不加h就会变成调用中断15h了。2把 INT 21H中4CH号功能改为 INT 20H,行不行?不行,会出现程序无法响应的问题。八实验小结1了解了伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的用法并且熟练应用2了解利用的INT 21H的1号功能实现键盘输入的方法,mov ah,1int 21h了解输出显示输出的方法,mov dl,x mov ah,2int 21h了解用INT 21H 4C号功能返回系统的方法,mov ah,4chint 21h3知道了如何调试程序,当出现好几个错误的时候,很有可能是改掉前面一个错,接下来的错误都没有了,还有就是发现自己写的程序找不出问题时,可以参考书上的程序做个例,看看自己和书上的框架是不是错了还是怎样的错误。总之,当程序报错时,一定要很耐心的去修改,也可以和同伴互相交流讨论一下有可能出错的地方,相互学习改进。

    注意事项

    本文(实验2-汇编语言程序上机过程.doc)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开