首页 汇编语言实验报告

汇编语言实验报告

举报
开通vip

汇编语言实验报告《汇编语言实验报告》 姓名:刘坤 学号:109074153 班级:软件101班 实验一  汇编运行环境及方法、简单程序设计 一、程序说明 本程序用来比较两个字符串string1和string2所含的字符是否相同。若相同则显示‘Match’,否则显示‘Nomatch’。 在程序的数据段先定义两个字符串string1和string2,再定义两个字符串mess1和mess2,分别代表‘Match’和‘Nomatch’。再代码段比较字符串string1和string2,通过比较判断是否相同。若相同则显示‘Match’,否...

汇编语言实验报告
《汇编语言实验报告》 姓名:刘坤 学号:109074153 班级:软件101班 实验一  汇编运行环境及 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 、简单程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 一、程序说明 本程序用来比较两个字符串string1和string2所含的字符是否相同。若相同则显示‘Match’,否则显示‘Nomatch’。 在程序的数据段先定义两个字符串string1和string2,再定义两个字符串mess1和mess2,分别代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ‘Match’和‘Nomatch’。再代码段比较字符串string1和string2,通过比较判断是否相同。若相同则显示‘Match’,否则显示‘Nomatch’ 2、源程序 datarea segment string1 db 'Move the cursor backward.' string2 db 'Move The cursor backward.' mess1 db 'match.',10,13,'$' mess2 db 'no match.',10,13,'$' datarea ends progment segment main proc far assume cs:prognam,ds:datarea,es:datarea start:push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov es,ax lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match:lea dx,mess1 disp:mov ah,09 int 21h ret main endp prognam ends end start 三、调试说明和调试结果 在EDIT中建立ASM文件,再用汇编程序对源程序汇编产生目标文件Obj, 再用连接程序产生执行文件EXE。再用Debug进行调试。 其中常用到的指令有: 用-g命令来用运行程序,用-u命令来显示程序,用-d 命令来查看数据段的情况,用-e或-f命令来修改需要改正的部分,用-t指令来逐步执行程序,用-r指令来查看寄存器和修改寄存器的值,-q命令用来退出debug程序。在这些命令的后面加上地址,可以将命令执行到相应的地方。 在debug中通过-g命令运行程序后,结果如下: 用-g指令运行程序后,再用-u指令显示程序的执行借给如下: 实验二  用DEBUG编程:使用堆栈段将 AX和BX的内容进行交换等 一、实验目的: 1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。 3、掌握简单指令的执行过程。 二、实验内容: 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。 三.程序清单如下: MOV  AX,BX MOV  AX,0304H MOV  AX,[0304H] MOV  AX,[BX] MOV  AX,0001[BX] MOV  AX,[BX][SI] MOV  AX,0001[BX][SI] HLT 三、实验要求: 1、实验前要做好充分准备,包括汇编程序清单、调试 步骤 新产品开发流程的步骤课题研究的五个步骤成本核算步骤微型课题研究步骤数控铣床操作步骤 、调试方法,以及对程序结果的分析等。 2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。 四、实验报告: 1、程序说明。说明程序的功能、结构。 2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 3、写出源程序清单和执行结果。 <实验一>源代码 DATAS SEGMENT  DATAS ENDS STACKS SEGMENT    STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV AX,3000H MOV BX,5000H PUSH AX mov AX,BX  POP BX MOV AH,4CH INT 21H CODES ENDS END START 程序运行结果如下: 可见,AX和BX的内容已经进行了交换。 <实验二>源代码 DATAS SEGMENT  DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV BX,0300h MOV SI,0002h MOV AH,4CH INT 21H CODES ENDS END START 运行结果: 这时,先用-u查看源程序,运行结果如下: 再用-a指令从13FC:000B后面输入已给出的程序,然后用-u0指令查看程序,结果如下: 然后再用-t指令逐步执行程序,观察每步指令执行后,ax中的内容,结果如下: 可以看出,在执行完指令MOV  AX,BX后,ax中的内容为AX=0300,在执行完指令MOV  AX,0304H后,ax中的内容为AX=0304,在执行完指令MOV  AX,[0304H] 后,ax 中的内容为AX=580E,在执行完指令MOV  AX,[BX]      后,ax中的内容为AX=0B0A,在执行完指令MOV  AX,0001[BX] 后,ax中的内容为AX=0C0B,在执行完指令MOV  AX,[BX][SI]后,ax中的内容为    AX=0D0C,在执行完指令MOV  AX,0001[BX][SI] 后,ax中的内容为 AX=0E0D。 实验三 存储器块清零和内存块移动 一、程序说明 第一个程序用来存储块清零,先设置块起始地址,然后设置块长度,再将当前地址内容清零,地址加一,然后判断是否清完,若清完则结束,否则返回到上一步。 第二个程序用来移动内存块,先设置块的源地址,再设置块的目标地址,然后设置移动长度,安长度重复传送数据直到结束。 二、调试说明 第一个程序在进入debug后,先用-u指令查看一下程序,再将断点设置在指令Loop again之后,通过指令-g加上指令Loop again后的地址,将程序运行到Loop again之后停止,然后再通过-d指令查看相关内存内容是否被清零。 第二个程序在进入到debug后,先用-u指令查看一下程序,再将断点设置在指令rep movsb之前,通过指令-g运行后,然后用-d指令查看一下内存块的相关内容,得到的结果如下 然后在将断点设置在指令rep movsb之后,通过指令-g运行后,再用-d指令查看一下内存块的相关内容,得到的结果如下: 二.程序清单及执行结果 第一部分: DATAS SEGMENT block db 256 dup(55h) DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:  MOV AX,DATAS MOV DS,AX mov bx,offset block mov cx,256 again:    mov [bx],byte ptr 0 ;字节填充0 inc bx loop again MOV AH,4CH INT 21H CODES     ENDS END START 第二部分: DATAS SEGMENT source db 256 dup(055h) target db 256 dup(0aah) DATAS ENDS STACKS SEGMENT    STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV ES,AX mov si,offset source mov di,offset target mov cx,256 rep movsb MOV AH,4CH INT 21H CODES ENDS END START 实验四  将键盘输入的小写字母用大写字母显示出来 一、实验目的: 1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。 2、掌握DOS功能调用的编程方法。 二、实验内容: 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 三、编程提示: 利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。 四、实验要求: 实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。 五、实验报告: 1、程序说明。说明程序的功能、结构。 2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
本文档为【汇编语言实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_654168
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:16
分类:工学
上传时间:2019-05-15
浏览量:13