学生设计性实验报告.doc_第1页
学生设计性实验报告.doc_第2页
学生设计性实验报告.doc_第3页
学生设计性实验报告.doc_第4页
学生设计性实验报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

本科学生设计性实验报告项目组长陈官亮 学号0144366 成 员 专 业物联网 班级 141 实验项目名称微机原理上机程序操作 指导教师及职称朱老师 开课学期 至 学年 学期上课时间 年 月 日一、实验设计方案实验名称:实验时间:小组合作: 是 否小组成员:1、实验目的:利用测试与转移指令实现分支。2利用比较与转移指令实现分支。2、实验内容与要求1利用测试与转移指令实现分支。程序设计方法:在需要分支的地方用逻辑测试指令TEST进行分支条件的测试判断,再利用各种条件转移指令实现程序分支。2利用比较与转移指令实现分支。程序设计方法:在需要分支的地方用两数的比较指令CMP,或串比较指令CMPS等进行分支条件的比较判断,再利用转移指令(如JNZ、JNC、JA、JB等)实现程序的分支。 3、 实验思路(实验内容、数据处理方法及实验步骤等):1在BLOCK开始的内存单元中有若干以字节为单位的正、负数,自编程序,试统计其中0的个数存放于M_DATA单元中,0的个数存放于P_DATA单元中。2在BLOCK开始的内存单元中有若干以字节为单位的奇、偶数,自编程序,试统计其中偶数的个数存放于M_DATA单元中,奇数的个数存放于P_DATA单元中。 实验一代码:DSEG SEGMENT BLOCK db 1,2,3,-1,3,-4,-5,9,-4,-3,-2,-1,9,8,5,4,4,66,-100,36;此处的取值范围-128-127COUNT EQU $-BLOCKM_DATA DW ?P_DATA DW ?DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG MAIN PROC FAR ;主程序入口 mov ax, dseg mov ds, ax ;此处添加主程序代码 CALL TJ;统计个数MOV BX,M_DATACALL DISPD;以十进制形式显示CALL CRLF;显示回车换行;按任意键退出 mov ah,1 int 21h mov ax, 4c00h ;程序结束,返回到操作系统系统 int 21h MAIN ENDP TJ PROCmov cx,COUNT lea si,BLOCK next: cmp byte ptr si,0 jg zhsh jz next1 inc P_DATA jmp next1 zhsh: inc M_DATAnext1: inc si loop nextRETTJ ENDPDISPD PROCmov di,10000d call dec_div mov di,1000d call dec_div mov di,100d call dec_div mov di,10d call dec_div mov di,1d call dec_div RETDISPD ENDPdec_div proc near mov ax,bx mov dx,0 div di mov bx,dx mov dl,al add dl,30h mov ah,2 int 21h ret dec_div endp DISPB PROC MOV CX,16REPEAT1:ROL BX,1MOV DL,BLAND DL,1add dl,30h mov ah,2 int 21hLOOP REPEAT1 RETDISPB ENDPDISPH PROC mov ch,4rotate: mov cl,4 rol bx,cl mov al,bl and al,0fh add al,30h cmp al,3ah jl printit add al,7hprintit: mov dl,al mov ah,2 int 21h dec ch jnz rotateRETDISPH ENDPcrlf proc near mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h ret crlf endp CSEG ENDS END MAIN进行反汇编成功:进行了统计结果与数据结果一致:实验二代码:DSEG SEGMENT BLOCK db 2,3,5,1,3,4,5,9,4,3,2,1,9,8,0,0,4,23,29,100,54COUNT EQU $-BLOCKM_DATA DW ?P_DATA DW ?DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG MAIN PROC FAR ;主程序入口 mov ax, dseg mov ds, ax ;此处添加主程序代码 CALL TJ;统计个数MOV BX,M_DATACALL DISPD;以十进制形式显示CALL CRLF;显示回车换行mov ah,1 int 21h mov ax, 4c00h ;程序结束,返回到操作系统系统 int 21h MAIN ENDP TJ PROCmov cx,COUNT lea si,BLOCK next: TEST byte ptr si,1 jZ OUSH inc P_DATA jmp next1 OUSH: inc M_DATAnext1: inc si loop nextRETTJ ENDPDISPD PROCmov di,10000d call dec_div mov di,1000d call dec_div mov di,100d call dec_div mov di,10d call dec_div mov di,1d call dec_div RETDISPD ENDPdec_div proc near mov ax,bx mov dx,0 div di mov bx,dx mov dl,al add dl,30h mov ah,2 int 21h ret dec_div endp DISPB PROC MOV CX,16REPEAT1:ROL BX,1MOV DL,BLAND DL,1add dl,30h mov ah,2 int 21hLOOP REPEAT1 RETDISPB ENDPDISPH PROC mov ch,4rotate: mov cl,4 rol bx,cl mov al,bl and al,0fh add al,30h cmp al,3ah jl printit add al,7hprintit: mov dl,al mov ah,2 int 21h dec ch jnz rotateRETDISPH ENDPcrlf proc near mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h ret crlf endp CSEG ENDS END MAIN进行反汇编程序单步调试:结果输出的个数统计1、如果将比较指令改为测试指令(加下划线处),程序需做哪些改动?2、将上述程序修改实现单元中数据奇数、偶数个数的统计。对于程序的需改在源程序中给出了MAIN PROC FAR ;主程序入口 mov ax, dseg mov ds, ax ;此处添加主程序代码 CALL TJ;统计个数MOV BX,M_DATACALL DISPD;以十进制形式显示CALL CRLF;显示回车换行这里还可以添加一些语句进行二进制与十六进制的输出如:CALL DISPH;以十六进制形式显示CALL CRLF;显示回车换行CALL DISPB;以二进制形式显示CALL CRLF;显示回车换行指导老师对实验设计方案的意见:该生完成较好。89分。 指导老师签名: 年 月 日 二、实验结果与分析1、实验目的、场地及仪器

温馨提示

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

评论

0/150

提交评论