天大计算机科学与技术学院—汇编语言—上机实验报告202.doc_第1页
天大计算机科学与技术学院—汇编语言—上机实验报告202.doc_第2页
天大计算机科学与技术学院—汇编语言—上机实验报告202.doc_第3页
天大计算机科学与技术学院—汇编语言—上机实验报告202.doc_第4页
天大计算机科学与技术学院—汇编语言—上机实验报告202.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

天津大学计算机科学与技术学院实验报告汇编语言实验报告(二)年级:2011 班级: 学号: 姓名: 一、 实验题目 编写一程序使其实现将1个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把两个数组显示出来.2、 实验要求 需要定义3个数组,一个是含有20个数据的数组M,另两个是正数数组P和负数数组N.P数组里放着M中的正数,N放着M里的负数,并且分别将P和N显示出来.3、 程序设计说明(用来说明程序的功能、结构。包括:程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明、程序框图等。) 程序的功能是将含有20个数据的数组分成2个数组,一个为正数数组,一个为负数数组,并将2个数组分别显示出来.首先在定义数据段时定义数据数组,将20个数据分别定义出来,并定义2个数组P和N.在代码段里,利用段寄存器si对数组M的数据进行访问,并用比较语句cmp判断数据的正负,然后用传送语句mov存放到P和N数组中,最后用一个屏幕显示的DOS指令,将数组中的数据显示出来.4、 程序调试说明(包括:调试情况,如上机时遇到的问题及解决办法,观察到的寄存器、存储器的内容或状态及其分析对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会,以及诸如调试日期、文件存放位置等需要记录的信息。) 首先,在数据段的装入时,ds=13CE,从ds:0000-ds:0027存放着M的数组的数据ds:0028-ds:004f和ds:0050-ds:0077分别存放p和n.在执行cmp对数据的判断和mov对数据的传送之后,P和N分别存放M数组的整数和负数.然后将数据按16进制输出.符合预期的输出,调试成功.4、 实验结果与结论(经调试正确的程序的运行结果)五、使用说明(包括:程序的使用方法,调用方式,操作步骤等;要求输入信息的类型及格式;出错信息的含义及程序的适用范围等。) 本程序是对数据按照正负进行分类,并输出.在使用时,只要在数据定义时进行数据的修改,就可以对不同的数据进行分类.6、 实验中遇到的问题及解决方法 开始时,我本来想在数据判断正负之后的数据传送,进行P和N的无间隙存储,即PN数组之间的数据没有间隔.但我发现这样程序会变得复杂.后来改为,3个数组M,P,N定义同样空间的数组,并且PN定义全为0数据.数据在M里按同样位置存储到PN里面.如此,有一个问题需要解决.数据在显示时,不应该在0的数据输出.因此,本程序不允许对0进行分类.7、 程序源代码data segment m dw 23,-35,243,5634,-1572 dw 1652,-2034,56,-27,-3521 dw 496,128,-209,-114,-7843 dw 17,505,-34,-378,96 p dw 20 dup (0) n dw 20 dup (0) x db 0data endsstack segment para stack dw 20h dup(?)stack endscode segment assume cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax mov si,0 mov cx,20again: test msi,8000h jns posint mov ax,msi mov nsi,ax jmp nextposint: mov ax,msi mov psi,axnext: add si,2 loop again mov si,39 mov bx,1again1: cmp psi-1,0 je exit mov dl,byte ptr psihere: and dl,0fh cmp dl,9 ja next1 add dl,30h jmp next2next1: add dl,37hnext2: mov x,dl mov dl,byte ptr psi mov cl,4 shr dl,cl cmp dl,9 ja next3 add dl,30h jmp next4next3: add dl,37hnext4: mov ah,2 int 21h mov dl,x mov ah,2 int 21h dec si mov dl,byte ptr psi sub bx,1 jz here add si,2 add bx,2 mov dl,72 mov ah,2 int 21h mov dl,32 mov ah,2 int 21hexit: sub si,2 jns again1 mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h mov si,39 mov bx,1again2: cmp nsi-1,0 je exit1 mov dl,byte ptr nsihere1: and dl,0fh cmp dl,9 ja next11 add dl,30h jmp next21next11: add dl,37hnext21: mov x,dl mov dl,byte ptr nsi mov cl,4 shr dl,cl cmp dl,9 ja next31 add dl,30h jmp next41next31: add dl,37hnext41: mov ah,2 int 21h mov dl,x mov ah,2 int 21h dec si mov dl,byte ptr nsi sub bx,1 jz here1 add si,2 add bx,2 mov dl,72 mov

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论