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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编实验报告.docx

1、汇编实验报告汇编语言试验报告班 级 学 号 姓 名 指导教师 实验一 汇编语言运行环境及方法、简单程序设计一、实验目的: 1、熟悉汇编语言运行环境和方法 2、了解如何使用汇编语言的编制程序。 3、熟悉DEBUG有关命令的使用方法。 4、利用DEBUG掌握有关指令的功能。 5、利用DEBUG运行简单的程序段。二、实验内容: 编写一程序:比较两个字符串string1和string2所含的字符是否相同。若相同则显示match,否则No match。三、实验步骤: 1、建立程序所需要的ASM文件,并将实验指导书中的范例程序编写好。 2、用汇编程序MASM对源文件汇编产生目标文件OBJ。 3、用链接程序

2、LINK产生执行文件EXE。 4、执行程序。 5、使用DEBUG调试程序。分别体会g命令、r命令、t命令、u命令、d命令以及q命令的用法。用-g命令来用运行程序,用-u命令来显示程序,用-d 命令来查看数据段的情况,用-e或-f命令来修改需要改正的部分,用-t指令来逐步执行程序,用-r指令来查看寄存器和修改寄存器的值,-q命令用来退出debug程序。在这些命令的后面加上地址,可以将命令执行到相应的地方。在Debug中用-g运行:用-u命令显示程序:-g0b 将断点设置在指令LEA SI;之前根据其中指示的ds寄存器内容查看数据段情况:用e命令修改数据段字符串:再次运行结果:用q命令退出debu

3、g:四、程序代码:;PROGRAM TITLE GOES HERE-Compare string;*datarea segment ;define data segmentstring1 db Move the cursor backward.string2 db Move the cursor backward.;mess1 db Match.,13,10,$mess2 db No match!,13,10,$datarea ends;*prognam segment ;define code segment;-main proc farassume cs:prognam,ds:datare

4、a,es:datareastart: ;starting execution address;set up stack for return push ds ;save old data segment sub ax,ax ;put zero in AX push ax ;save it on stack;set DS register to current data segment mov ax,datarea ;datarea segment addr mov ds,ax ;into DS register mov es,ax ;into ES register;MAIN PART OF

5、PROGARM GOES HERE lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short dispmatch: lea dx,mess1disp: mov ah,09 int 21hret ;return to DOSmain endp ;end of main part of program;-prognam ends ;end od code segment;*end start ;end assembly实验二 用DEBUG编程:使用堆栈段将AX和BX的内容进行交换等一

6、、实验目的: 1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。3、掌握简单指令的执行过程。二、实验内容: 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地

7、址的形成过程,当数据传送完毕时,AX中的内容是什么。程序代码如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSIHLT三、实验步骤:实验1:1、从DOS进入DEBUG界面。2、使用R命令修改寄存器堆栈指针地址。3、使用A命令,并开始输入代码。4、使用T命令分步查看结果。编程后用t单步执行:显示交换后结果:实验2:1、从DOS进入DEBUG界面。2、使用R命令修改寄存器堆栈指针地址。3、使用D命令查看0300H处的存放情况。4、使用E命令将存储器偏移地址300H304H连续单元顺序

8、装入0AH,0BH,0CH,0DH,0EH。5、使用A命令,并开始输入代码。6、使用T命令分步查看结果。当数据传送完毕时,AX=0E0D单步执行查看结果:四、程序代码:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSI实验三 储存器块清零和内存块移动一、实验目的: 1、了解存储器的读写方法。2、了解存储器的块操作方法。二、实验内容: 1、完成程序用来存储块清零,首先设置块起始地址,然后设置块长度,再将当前地址内容清零,地址加一,然后判断是否清完,若清完则结束,否则返回到上一步。2、完

9、成程序用来移动内存块,首先设置块的源地址,再设置块的目标地址,然后设置移动长度,安长度重复传送数据直到结束。三、实验步骤:实验1:1、 对程序进行分析,画出流程图。2、进行MASM汇编和LINK连接生成执行文件。3、利用DEBUG调试执行文件。实验2:1、 对程序进行分析,画出流程图。2、进行MASM汇编和LINK连接生成执行文件。3、利用DEBUG调试执行文件。单步执行:执行到rep movsb之前查看ds段和es段内容:移动后查看ds段和es段内容:四、程序代码:实验1:DATA SEGMENT BLOCK DB 256 DUP(55H)DATA ENDSCODE SEGMENT ASSU

10、ME CS:CODE,DS:DATASTART PROC NEAR MOV AX,DATA MOV DS,AX MOV BX,OFFSET BLOCK MOV CX,256AGAIN: MOV BX,BYTE PTR0 INC BX LOOP AGAIN JMP $CODE ENDS END START实验2DATA SEGMENT SOURCE DB 256 DUP (055H) TARGET DB 256 DUP (0AAH)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATASTART PROC NEAR MOV AX,DATA MOV

11、 DS,AX MOV ES,AX MOV SI,OFFSET SOURCE MOV DI,OFFSET TARGET MOV CX,256 REP MOVSB JMP $CODE ENDS END START实验四 将键盘输入的小写字母用大写字母显示出来一、实验目的: 1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。2、掌握DOS功能调用的编程方法。二、实验内容: 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。三、实验步骤:1、设计程序流程图。2、进行MA

12、SM汇编和LINK连接生成执行文件。3、执行文件。四、程序代码:CODE SEGMENT ASSUME CS:CODESTART: MOV AL,01H INT 21H MOV BL,AL MOV DL,- MOV AH,02H INT 21H MOV AL,BL CMP AL,a JB EXIT CMP AL,z JA EXIT SUB AL,20H MOV DL,AL MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H JMP STARTEXIT: MOV AH,4CH INT 21H

13、CODE ENDS END START实验五 循环程序实验一、实验目的: 1、掌握循环程序的设计方法。2、进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。3、学会针对不同的问题,选用不同的组织循环的方法。二、实验内容: 1、编写一个程序,显示AL寄存器中的两位十六进制数。2、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序;若为其他字符则不显示。三、实验步骤:实验1: 1、设计程序流程图。2、进行MASM汇编和LINK连接生成执行文件。3、执行文件。实验2:1、设计程序流

14、程图。2、进行MASM汇编和LINK连接生成执行文件。3、执行文件。四、程序代码:实验1:CODE SEGMENT ASSUME CS:CODESTART: MOV AL,3EH PUSH AX MOV DL,AL MOV CL,4 SHR DL,CL CMP DL,9 JBE NEXT1 ADD DL,7NEXT1: ADD DL,30H MOV AH,2 INT 21H POP AX MOV DL,AL AND DL,0FH CMP DL,9 JBE NEXT2 ADD DL,7NEXT2: ADD DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21HCOD

15、E ENDS END START实验2:CODE SEGMENT ASSUME CS:CODESTART: MOV AH,1 INT 21H CMP AL,0DH JZ DONE CMP AL,0 JB NEXT CMP AL,9 JA CHARUP MOV DL,AL MOV AH,2 INT 21H JMP STARTCHARUP: CMP AL,41H JB NEXT CMP AL,5AH JA CHRDNDISPC: MOV DL,c MOV AH,2 INT 21HNEXT: JMP STARTCHRDN: CMP AL,61H JB NEXT CMP AL,7AH JA NEXT

16、JMP DISPCDONE: MOV AH,4CH INT 21HCODE ENDS END START 实验六 分支程序实验一、实验目的: 1、掌握分支程序的设计方法。2、利用DEBUG程序修改参数、检查结果。3、掌握汇编语言源程序的编辑、汇编、链接及调试过程。二、实验内容: 1、编写一个程序,显示AL寄存器中的两位十六进制数。2、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序;若为其他字符则不显示。三、实验步骤:实验1: 1、设计程序流程图。2、进行MASM汇编和LINK连接生成执行文件

17、。3、执行文件。实验2:1、设计程序流程图。2、进行MASM汇编和LINK连接生成执行文件。3、执行文件。四、程序代码:实验1:CODE SEGMENT ASSUME CS:CODESTART: MOV AL,3EH PUSH AX MOV DL,AL MOV CL,4 SHR DL,CL CMP DL,9 JBE NEXT1 ADD DL,7NEXT1: ADD DL,30H MOV AH,2 INT 21H POP AX MOV DL,AL AND DL,0FH CMP DL,9 JBE NEXT2 ADD DL,7NEXT2: ADD DL,30H MOV AH,2 INT 21H MO

18、V AH,4CH INT 21HCODE ENDS END START实验2:CODE SEGMENT ASSUME CS:CODESTART: MOV AH,1 INT 21H CMP AL,0DH JZ DONE CMP AL,0 JB NEXT CMP AL,9 JA CHARUP MOV DL,AL MOV AH,2 INT 21H JMP STARTCHARUP: CMP AL,41H JB NEXT CMP AL,5AH JA CHRDNDISPC: MOV DL,c MOV AH,2 INT 21HNEXT: JMP STARTCHRDN: CMP AL,61H JB NEXT

19、CMP AL,7AH JA NEXT JMP DISPCDONE: MOV AH,4CH INT 21HCODE ENDS END START 实验七 统计不同成绩段学生的人数一、实验目的: 1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。2、掌握综合程序的编制及调试方法。二、实验内容: 设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。试编制一个子程序,统计低于60分,6069分,7079分,8089分,9099分和100分的人数,并输出显示统计结果。三、实验步骤:1、设计程序流程图。2、进行MASM汇编和LINK连接生成执行文件。3、执行

20、文件。四、程序代码:SSEG SEGMENT PARA STACK stack DW 100H DUP(0)SSEG ENDSDSEG SEGMENT BUF DW 76,69,84,90,73,88,99,63,100,80 COUNT EQU $-BUF STR1 DB 0-59:,$ STR2 DB 60-69:,$ STR3 DB 70-79:,$ STR4 DB 80-89:,$ STR5 DB 90-99:,$ STR6 DB 100:,$ RES DW 20 DUP(?)DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG, DS:DSEGMAIN PROC

21、FAR MOV AX,DSEG MOV DS,AX START: MOV CX,COUNT/2+1 MOV DI,OFFSET RES MOV SI,OFFSET BUF-2BEGIN: INC SI INC SI DEC CX JZ OUTPUT MOV AX,SI CMP AX,60 JB LOP1 CMP AX,70 JB LOP2 CMP AX,80 JB LOP3 CMP AX,90 JB LOP4 CMP AX,100 JB LOP5 JZ LOP6 LOP1: MOV BX,DI INC BX MOV DI,BX JMP LOP2: MOV BX,DI+2 INC BX MOV

22、DI+2,BX JMP BEGIN LOP3: MOV BX,DI+4 INC BX MOV DI+4,BX JMP BEGIN LOP4: MOV BX,DI+6 INC BX MOV DI+6,BX JMP BEGIN LOP5: MOV BX,DI+8 INC BX MOV DI+8,BX JMP BEGIN LOP6: MOV BX,DI+10 INC BX MOV DI+10,BX JMP BEGIN OUTPUT: LEA DX,STR1 MOV AH,9 INT 21H CALL DATCH LEA DX,STR2 MOV AH,9 INT 21H ADD DI,2 CALL D

23、ATCH LEA DX,STR3 MOV AH,9 INT 21H ADD DI,2 CALL DATCH LEA DX,STR4 MOV AH,9 INT 21H ADD DI,2 CALL DATCH LEA DX,STR5 MOV AH,9 INT 21H ADD DI,2 CALL DATCH LEA DX,STR6 MOV AH,9 INT 21H ADD DI,2 CALL DATCH MOV AH,1 INT 21H MOV AH,4CH INT 21H DATCH PROC PUSH DX PUSH CX PUSH BX PUSH AX XOR DX,DX MOV AX,DI MOV CX,10 DIV CX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H MOV DL,BL ADD DL,30H MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H POP AX POP BX POP CX POP DX RETDATCH ENDP MAIN ENDP CSEG ENDSEND MAIN

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

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