欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    汇编实验报告.docx

    • 资源ID:9500036       资源大小:78.27KB        全文页数:15页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    汇编实验报告.docx

    1、汇编实验报告 汇 编 实 验 报 告 姓 名: 周翔 学 院:数学与计算机学院 班 级: 大类1003班 学 号: 100511310 指导教师: 黄川 2012 年 6 月 8 日实验一:汇编语言编程环境入门(2学时)一、 实验目的与要求通过书上82页示例3.1,熟悉Windows环境下,X86汇编语言的编译和调试过程。二、 实验环境1 Windows XP操作系统。2 MASM集成环境,或其它编程工具。三、实验内容1. 学习如何查找程序的编译错误并改正2. 运行程序,观察结果3. 学习如何调试程序。四、实验步骤1输入书上82页示例3.1(有机器同学最好预先输入);2编译程序,定位和改正编译

    2、错误。3运行程序,观察结果是否和预期复合。4调试程序,特别需要熟悉以下调试命令:a) t:单步命令b) g:运行至某一指令c) q:结束调试d) p:运行一条语句e) d:查看内存单元f) r:查看寄存器单元g) u:反汇编 具体代码如下: DATA SEGMENTX DW 0E98AH,80AFH,0FD32H,0F68FHY DW 9FD0H,70BAH,3D84H,89FEHZ DW 5 DUP(?)DATA ENDSSTACK SEGMENT PARA STACKSTACK DB 100H DUP(?)STACK ENDSCODE SEGMENT CODE ASSUME CS:CODE

    3、,DS:DATA,SS:STACKMAIN: MOV AX,DATA MOV DS,AX MOV CX,4 MOV SI,0 CLCGOON: MOV AX,XSI ADC AX,YSI MOV ZSI,AX INC SI INC SI LOOP GOON RCL AX,1 AND AX,1 MOV ZSI,AX MOV AX,4C00H INT 21HCODE ENDS END MAIN5、实验结果实验二:输入输出程序设计(2学时)一、 实验目的与要求通过上机实验,掌握汇编语言下通过DOS系统调用实现键盘输入和屏幕输出程序的设计,为以后其它程序打下基础。要求输入一个任意字符串,可以在屏幕上显

    4、示出。二、 实验环境1) Windows XP操作系统。2) MASM集成环境,或其它编程工具。三、实验内容1. 了解DOS系统调用初步用法和分类,熟悉对应系统调用的具体参数设置;2. 通过10号功能调用,把键盘上输入的字符串保存在内存单元中3. 调整输入的字符串格式,通过9号功能调用,在屏幕上输出对应字符串四、实验步骤1.按照格式定义对应输入数据缓存,存放输入的字符串。2.设置参数,调用10号系统调用后,仔细观察输入数据缓存中内存单元各字节的变化。3.调整格式,在系统实际输入字符串后面附加相应的字符(0DH, 0AH,$)。4.设置参数,调用9号系统调用后,观察输出。具体代码如下: .MOD

    5、EL SMALLDATA SEGMENTMESG1 DB PLEASE INPUT ORIGINAL DATA,CR,LF,$MESG2 DB INPUT CORRECT? Y/N,CR,LF,$MESG3 DB INPUT ERROR AGAIN!,CR,LF,$BUFFER DB 200 DB ? DB 200 DUP($)CR EQU 0DHLF EQU 0AHDATA ENDS STACK SEGMENT PARA STACKSTACK DB 100H DUP(?) STACK ENDSCODE SEGMENT CODE ASSUME CS:CODE,DS:DATA,SS:STACKM

    6、AIN: MOV AX,DATA MOV DS,AXAGAIN: MOV DX,OFFSET MESG1 MOV AH,9 INT 21H LEA DX,BUFFER MOV AH,10 INT 21H LEA DX,BUFFER+2 MOV AH,9 INT 21H LEA DX,MESG2 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,Y JZ F LEA DX,MESG3 MOV AH,9 INT 21H JMP SHORT AGAIN: LEA DI,BUFFER+2 MOV CL,BUFFER+1 MOV CH,0PRINT: MOV DL,DI

    7、MOV AH,5 INT 21H INC DI LOOP PRINTCODE ENDS END MAIN五、实验结果 实验三:字符串操作(4学时)一、 实验目的与要求通过上机实验,开始一个比较复杂的程序设计:把任意输入字符串中“A”全部删除。如果输入字符串没有“A”,显示“NOT FOUND ”,如果有“A”,分两行显示删除前和删除后的字符串。二、 实验环境1) Windows XP操作系统。2) MASM集成环境,或其它编程工具。三、实验内容1. 通过字符串查找指令,找到对应字符并删除2. 通过循环指令,反复查找字符,直至没有3. 对应字符并删除实际上是依次把后面字符前移覆盖当前字符。四、实

    8、验步骤1.画出流程图,检查初步错误2.编辑并输入程序。3.编译程序,改正编译错误。4.调试程序,改正逻辑错误具体代码如下:Code Segment Assume CS:Code,DS:Code; ; 功能:显示指定地址(Str_Addr)的字符串; 入口:; Str_Addr字符串地址(要求在数据段); 用法: Output Str_Addr; 用法举例:Output PromptStrOutput MACRO Str_Addr lea dx,Str_Addr mov ah,9 int 21h EndM; ; 功能:显示、输出一个回车、换行Output_CTLF proc Near push

    9、ax push dx mov ah,02h mov dl,0dh int 21h mov dl,0ah int 21h pop dx pop ax retOutput_CTLF Endp ; Prompt_Str1 db Please input a string: $Prompt_Str2 db 7,13,10,13,10,NOT FOUND,13,10,13,10,$Prompt_Str3 db 7,13,10,13,10,Before delete: $Prompt_Str4 db 7,13,10,Deleted: $Press_Key db 7,13,10,13,10,The comp

    10、lated. Press any key to exit.$ Start: push cs pop ds push cs pop es ;使数据段、附加段与代码段同段Input_Str: Output Prompt_Str1 ;提示输入字符串 lea dx,Buffer ;字符串输入缓冲区地址 mov ah,0ah int 21h lea di,Buffer2 ;输入的字符串地址 xor ch,ch mov cl,di-1 ;实际输入的字符串长度 jcxz Exit_Proc ;若直接回车,没有输入任何字符,则结束程序 mov bx,cx inc cx mov al,A cld repnz s

    11、casb ;查找字符串中是否有A jcxz Not_Found Output Prompt_Str3 ;提示显示删除A前的字符串 lea di,Buffer2 ;输入的字符串地址 mov BYTE ptr bxdi,$ ;写字符串结束标志符 Output Buffer2 ;显示删除A前的字符串 Output Prompt_Str4 ;提示显示删除A后的字符串 lea di,Buffer2 ;输入的字符串地址 mov si,di mov cx,bx inc cxDelete_A: lodsb cmp al,A jz $+3 stosb loop Delete_A Output Buffer2 ;

    12、显示删除A后的字符串 call Output_CTLF ;输出一个回车、换行 call Output_CTLF jmp Input_Str ;重新输入Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序 mov ah,1 int 21h mov ah,4ch ;结束程序 int 21hNot_Found: Output Prompt_Str2 ;提示字符串中没有A jmp Input_Str ;重新输入Buffer db 255 ;字符串输入缓冲区Code ENDS END Start ;编译到此结束5、实验结果 实验四:数值排序操作(4学时)一 实验目的与

    13、要求通过上机实验,对数值进行冒泡法排序。达到熟练掌握多重循环和子程序的设计。二 实验环境1) Windows XP操作系统。2) MASM集成环境,或其它编程工具。三 实验内容与步骤1. 先不使用输入功能,直接在系统中定义多个09之间的数值,进行冒泡法排序。2. 在上一步正确完成情况下,加入键盘输入功能,输入多个09之间的数值,使用逗号或者空格分割。得到输入字符串后,设计一个子程序,把输入字符串转换为多个数值。3. 在上一步正确完成情况下,输入任意10000以下数值,这时需要完成字符串“1234”到数值1234之间的转换。具体代码如下:DATA SEGMENT ;data 就是声明变量DAT

    14、DB 20,-10,80,-5,-70,-9,95,-15,0,40COUNT DB 10,10 dat2 db 10 dup(0) ; 声明一个数组DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATA MOV DS,AX MOV ES,AX MOV BL,1LP1: CMP BL,0 JE LP4 ;相等质指令 XOR BL,BL ;将bl清零 MOV CL,COUNT DEC CL ;减一 PUSH CX ; LEA DI,DAT ; LP2:MOV AL,DI CMP AL,DI+1 ; compare

    15、 比较指令 JLE LP3 ;小于等于就跳转指令 XCHG DI+1,AL ;交换指令 MOV DI,AL MOV BL,1 LP3:INC DI LOOP LP2 ;将cx中的值减1 ,然后判断ecx 是否等于0,不为0 则跳转到目的地址 POP CX MOV COUNT,CL JMP LP1 LP4:MOV CL,10 LEA DI,DAT SC:MOV AX,0 MOV BH,2 MOV AL,DI CMP AL,0 JGE NEXT ; 大于等于指令 NEG AL ;取反指令 PUSH AX MOV AH,02H MOV DL,- INT 21H ; dos 中断调用 POP AX NEXT:XOR AH,AH DIV COUNT+1 MOV DH,AH ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,DH XOR AH,AH ADD AX,3030H MOV DL,AL OUTP: MOV AH,2 INT 21H DEC BH JZ XT ;判断是否为0,等于0 的时候转移 MOV DL,BL JMP OUTP ;无条件跳转 XT: DEC CL JZ DONE INC DI JMP SCDONE: MOV AH,4CH INT 21HCODE ENDSEND START实验结果:


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开