精华内容
下载资源
问答
  • vfp实验目的

    千次阅读 2008-04-10 17:01:00
    VFP实验报告中实验目的实验一 VFP基础与数据表基本操作实验目的:熟悉VFP的集成开发环境及两类工作方式、项目管理器以及VFP命令常用出子句;掌握VFP中的常量、变量、数据类型 ;熟悉使用运算符和表达式来表达一些...

    VFP实验报告中实验目的
    实验一 VFP基础与数据表基本操作
    实验目的:熟悉VFP的集成开发环境及两类工作方式、项目管理器以及VFP命令常用出子句;掌握VFP中的常量、变量、数据类型 ;熟悉使用运算符和表达式来表达一些实际命题。掌握数据表的设计、创建与修改;掌握向表输入、追加与删除记录、浏览记录、定位记录的方法;
     
    实验二 常用函数与数据表基本操作
    实验目的:掌握VFP中的常用函数 ;熟练使用运算符和表达式来表达一些实际命题。掌握在一定条件下向表输入、追加与删除记录、浏览记录、定位记录的方法;学会表文件更名、表与表结构的复制、表文件的删除等操作方法。掌握对数组的定义和对数组的初始化方法及对数组的使用;训练分析问题能力,掌握对话框函数的使用方法。
     
    实验三 数据表高级操作
    实验目的: 掌握对数据表排序、索引、查寻的方法;掌握数据表的计算、汇总的方法;掌握多表(Table)建关联的方法。
     
    实验四 数据库的创建与第一次测验
    实验目的:掌握用设计器设计数据库的方法;掌握在数据库中新建表、添加表、移去表的方法;掌握数据库表间永久关系的建立方法;掌握字段有效性的指定方法;掌握简单的数据库操作命令;
     
    实验五 查询与视图
    实验目的:掌握用查询设计器建立查询的方法;掌握用视图设计器建立视图的方法;熟悉各种SELECT-SQL查询命令的使用方法。
     
    实验六 查询与视图
    实验目的:掌握用查询设计器建立查询的方法;掌握用视图设计器建立视图的方法;掌握利用SELECT-SQL查询命令解决实际问题的使用方法。
     
    实验七 VFP程序设计初步
    实验目的:掌握用“文件/新建”菜单方式和直接在命令窗口中使用命令方式建立一个新程序并保存在指定的位置的方法;掌握用“文件/打开”菜单方式和直接在命令窗口中使用命令方式修改一个已经存在某个位置的程序的方法;掌握运行一个程序的方法,熟悉调试程序的办法,提高调试程序水平,熟悉终止程序的按键;了解VFP对结构化程序设计的三种基本结构,熟悉顺序结构、分支结构的实现和执行流程,并利用该结构编写一些符合某些要求的基本程序;掌握人机交互命令—input、accept、wait和…say …get … read等。
     
    实验八 VFP程序设计
    实验目的:熟悉循环结构的几种形式和各自的优势所在,熟练利用三种基本结构编写一些符合某些要求的基本程序。
     
    实验九 多模块程序设计与第二次测验
    实验目的:掌握子程序与过程文件建立的方法;掌握用户自定义函数的建立和参数的值传递方式;掌握变量的作用域知识。
     
    实验十 面向对象的可视化程序设计
    实验目的:掌握项目文件的创建;掌握在项目管理器中添加和创建各种文件的方法;学会如何通过菜单设计器设计一个条形菜单以及快捷菜单;了解报表文件的创建和使用;学会如何在表单中应用所创建的菜单;掌握表单设计的基本方法和过程;掌握表单设计中的控件的添加、属性设置、事件代码的编写及方法程序的调用;掌握面向对象程序设计的基本概念。
     
    实验十一 表单控件设计与第三次测验
    实验目的:掌握表单控件设计的基本方法和过程;掌握表单控件设计中的控件的添加、属性设置、事件代码的编写及方法程序的调用;掌握输入类控件、输出类控件及控制类控件的使用方法;掌握数据环境的设置方法;掌握数据绑定的使用方法;掌握将菜单添加到表单的方法。
     
    实验十二 VFP的简单综合应用
    实验目的:利用本课程所学内容,实现一可视化的《****管理信息系统》,其中包含对表文件内容的增加、删除、修改、查找、输出报表等。

     

    展开全文
  • 实验要求

    一、实验目的

    上机实践是各位对本门课程所学知识的一种全面、综合的能力训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节,也是对课堂教学与实践教学效果的一种检验。通常,实验题中的问题比平时的习题复杂得多,也更接近实际。实验着眼于原理与应用的结合,使你们学会如何把书上学到的知识运用于解决实际问题的过程中去,培养从事软件开发设计工作所必需的基本技能;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。平时的练习较偏重于如何编写功能单一的“小”算法,而实验题是软件设计的综合训练,包括问题分析(需求分析)、总体结构设计和用户界面设计(概要设计)、程序设计基本技能和技巧等,即一整套软件工程规范的训练和科学作风的培养。此外,还有很重要的一点是:机器是比任何教师都严厉的主考者。

    为了达到上述目的,本课程共安排了10个实验单元,各单元的训练重点在于基本的数据结构,而不强调面面俱到。各实验单元与教科书的各章具有紧密的对应关系。

     

    二、要求:

    ⒈ 做好每一次上机前的准备以提高上机效率:

    ① 预先认真阅读相关实验内容,做到心中有明确的目的要求和任务,要有备而来,应该自己独立的思考和设计你的算法和程序,并争取在规定的时间内如期完成上机工作任务。对于个别目前基础较差的同学,实在是没法完成任务的建议你先参考其他同学的算法,勤学好问,最终自己独立完成,以增强你的感性认识,强化你的实践基础,提高你的实践能力。

    ② 按照实验内容规定的习题题目,事先在实验预习报告上编写好源程序及运行程序所需的典型数据,并经人工静态检查认为无误;手编程序应书写整齐,应在每个题目之间留出一定的空间,以备记录上机调试情况和运行结果等;对程序中自己有疑问的地方,应作出记号,以便上机时给以注意。

    ③ 将想要上机验证的问题草拟提纲;制定一个简捷的程序调试计划。

     

    ⒉ 上机时输入和调式自己所编写的程序。对“出错信息”,应善于自己分析判断,并充分利用开发工具提供的错误信息和调试手段解决出现的问题,及时修改与完善算法、源程序,随时记录有价值的内容。解决问题是学习调式程序的良好机会。切不可不编程序或抄别人的程序去上机,应从养成严谨的科学作风。

     

    ⒊ 程序调试通过后,应运行程序并根据事先准备的典型数据验证结果,在运行时要注意在输入不同数据时所得到的不同结果。

     

    ⒋ 为便于教师、助教检查和以后复习,请不要删除已通过的程序,包括有问题待答疑的程序,应保存在自己的工作目录内。源程序名应能反映哪一次实验的哪一个题目,如Lab1­_1.c表示实验一的第1题,……,若有未完成调试的源程序,可以作存盘保存处理,待课后继续完成。

     

    三、实验报告规范:

    上机结束后,应整理出实验报告,每份实验报告总分100分,实验报告必须在该次实验后的下次实验课前交到学习委员处,由学习委员按学号整理好,在上课前上交。

    实验报告必须包括以下七个部分,详细要求见课程教学大纲,模板见实验指导书(习题集):

    ⒈ 需求分析(10分)

    ⒉ 概要设计(20分)

       ⑴ 抽象数据类型的描述

       ⑵ 程序结构图(功能模块图)

    ⒊ 详细设计(30分)

       ⑴ 存储结构的描述(含描述对象和算法中工具的存储结构)

       ⑵ 算法的详细设计(对复杂算法,最好画出其N-S流程图)

       ⑶ 函数的调用关系图

    ⒋ 调试分析(10分)

    ⒌ 用户使用说明(10分)

    ⒍ 测试结果(10分)

    ⒎ 附录(10分)

       源程序清单(包括注释)

    展开全文
  • 周期CPU实验

    千次阅读 2017-07-09 08:35:41
    与单周期CPU设计相比,图上增加IR指令寄存器,目的是使指令代码保持稳定,pc写使能控制信号PCWre,是确保pc适时修改,原因都是和周期工作的CPU有关。ADR、BDR、ALUoutDR、DBDR四个寄存器不需要写使能信号,其作用...

    1.数据通路图

    这里写图片描述
    与单周期CPU设计相比,图上增加IR指令寄存器,目的是使指令代码保持稳定,pc写使能控制信号PCWre,是确保pc适时修改,原因都是和多周期工作的CPU有关。ADR、BDR、ALUoutDR、DBDR四个寄存器不需要写使能信号,其作用是切分数据通路,将大组合逻辑切分为若干个小组合逻辑,大延迟变为多个分段小延迟。

    2.控制信号作用

    这里写图片描述
    这里写图片描述
    这里写图片描述

    3.ALU运算功能表

    这里写图片描述

    4.实验内容

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    5.设计思路

    (1)模块化

    根据数据通路图设计各个子模块,分别是:PC、PCAddFour、PCAddImm、PCJump、InsMem、ControlUnit、RegisterFile、Extend、ALU、DataMem、IR、ADR、BDR、ALUOut、ALUm2dr、DataSelect(总共有6出选择,分别是:data1的选择、data2的选择、ALUorMem的选择、RegDst的选择、pcNext的选择、writeData的选择)

    (2)分阶段

    分阶段通过控制信号和时钟信号的改变,使得在取指->译码->执行->存储->写回各个阶段的操作不同,从而与单周期CPU区分。一开始的时候令我困惑不解的是多周期难道不也是在译码的时候就知道所有的控制信号吗?后来思考发现,必须通过控制不同state下的不同控制信号,从而来实现在不同的state下执行不同的操作。我的主要控制是:在IF状态下,主要是控制PCWre、IRWre、InsMemDataRW、nextState,需要注意的是,对于nextState = IF的情况,必须控制PCWre = 1。ID状态下,主要控制PCSrc、ALUSrcA和ALUSrcB,保证在这一阶段读取数据为EXE状态做准备,对于不同的指令,进入不同的EXE状态,并且j、jr、jal、halt的下一状态是IF。EXE状态下,主要控制ExtSel、ALUop和PCSrc,特别是beq指令,需要通过判断zero来改变PCSrc,保证操作的正确执行。MEM状态下,主要控制DataMemRW。WB状态下,需要控制PCWre、RegDst、RegWre、DBDataSrc、WrRegDSrc。
    这里写图片描述

    6.指令测试表格

    这里写图片描述

    7.各个模块的设计

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    8.实验结果截图

    例:
    00001000 00000001 00000000 00001000 // addi 1,0,8
    功能:rt<-rs + (sign-extend)immediate
    最终得到$1 = 1000
    (1)000状态
    这里写图片描述
    (2)001状态
    这里写图片描述
    (3)110状态
    这里写图片描述
    (4)111状态
    这里写图片描述

    9.CPU状态转移图

    这里写图片描述

    10.实验总结

    本次实验有几个需要特别注意的点。第一、与单周期CPU相比,此处实验有主要的两个不同点,一个是需要控制每条指令的各个状态,以及各个状态下的控制信号的改变,从而达到不同状态执行不同操作的目的;另一个是增加了IR、ADR、BDR、ALUoutDR、DBDR。此次实验有多个子模块的设计与单周期CPU的设计相似,部分代码是直接采用上一次单周期CPU设计的实现,但依然有不同的地方。第二、重点和难点是ControlUnit的设计,在ControlUnit的设计中,因为涉及到很多的控制信号,以及不同指令对应不同控制信号的不同值,还有不同状态下不同指令的控制信号,在这一模块花费的时间比较多,但是,控制信号在某种程度上是非常好的调试代码,在本次实验中,我大部分的时间花在结合数据通路图理解每一条指令的执行过程,以及对应的控制信号的变化,然后修改ControlUnit,又根据ControlUnit来进一步理解指令的执行过程,知道每一条指令的执行结果正确。第三、本次实验需要重点注意的几条指令:sll、beq、slt、j、jr、jal。sll需要注意指令的存储格式以及sa的扩展从而选择ALUDataA;beq需要注意immediate表示的是pc+4和要跳转到的指令之间间隔的指令条数,因为同时需要读取rs,rt还有extendData,所以在控制信号的控制上需要区别对待;slt主要是要注意在ALU中操作的实现,因为涉及到符号数的比较;j表示的是跳转到的地址;jr表示的是子程序调用完成后跳转回主程序的下一条指令;jal表示的是子程序调用,首先是将pc+4即下一条指令存储到31号寄存器中,然后跳转到子程序的首地址。
    本次实验因为有了单周期CPU的基础,所以在实现的时候对于每条指令的理解更加清晰。在实验的过程中遇到的主要问题有:
    一开始的时候误以为不仅仅要实现多周期而且要用流水线,导致迟迟无法下手,后来发现并不需要实现流水线,相对难度降低了很多。并且一开始一直不理解IR、ADR等的作用,后来老师给的资料表明:增加IR指令寄存器,目的是使指令代码保持稳定,pc写使能控制信号PCWre,是确保pc适时修改,原因都是和多周期工作的CPU有关。ADR、BDR、ALUoutDR、DBDR四个寄存器不需要写使能信号,其作用是切分数据通路,将大组合逻辑切分为若干个小组合逻辑,大延迟变为多个分段小延迟。我还有另一个理解是:这些寄存器还有利于流水线的设计,当增加旁路的时候,也可以从寄存器中提前获得数据。
    (1)在实现的初始阶段,一直苦苦思索到底多周期和单周期的区别在哪里?到底应该如何体现多周期与单周期的区别?难道仅仅是通过增加一个输出state?后来根据计组理论课的知识明白,必须在不同的阶段有不同的操作,即各个阶段的操作必须区分开,IFState阶段获取指令;IDState阶段译码,表现在得到data1、data2和extendData;EXEState阶段执行,表现在得到ALUop、ALUResult; MemState阶段访问存储器,表现在得到MemData并且内存中的数据发生改变;WBState写回寄存器,表现在writeData的改变,此时的writeData可能是来自于ALUresult也可能是来自于存储器,所以需要一个二路选择器进行选择。在确定了这种设计之后,我又思考另一个问题,即各个控制信号的值难道不是在ID阶段就都得到了吗?后来才明白虽然在ID阶段就可以知道各个控制信号的值,但是这与在后面的阶段才将某些信号值比如DataMemRW表现出来并不矛盾。
    (2)在实验的过程中,一开始对j、jr、jal的理解不到位,导致执行的结果一直出错,表现在:在指令的设计时,没有将要跳转到的地址在存入指令的时候先右移两位,导致跳转的时候一直出错,后来思考并进一步理解才明白正是因为在存入指令的时候先右移了两位,所以在执行的时候才需要将得到的地址先左移两位然后再补充pc+4的高四位从而得到要跳转到的位置。
    (3)此次实验过程中出现多次指令的设计出错导致执行结果出错,比如sll,一开始的时候我的指令是:01100001 01001010 00000000 00000001 // sll 10,10,1,后来才发现应该是:01100000 00001010 01010000 01000000 // sll 10,10,1
    (4)本次实验还遇到比较多的小问题,比如拼写错误或者是不小心含有中文字符导致的错误,但是这些错误的改正相对控制单元的调试就简单了很多。还有比如开始的时候pcJump传入的是curPC,而不是pc+4,但是在实现的时候却是以pc+4实现。另外需要注意的是case语句块必须用begin…end,否则会出错。

    展开全文
  • 实验二 汇编语言程序设计(顺序、分支、循环) 一.实验目的 二.实验内容 三.实验过程和程序 四.实验结果(包括必要的截图) 五.实验体会 注:模仿是最深的爱慕 实验二 汇编语言程序设计(顺序、分支、循环)...

                   

    目录

                     实验二  汇编语言程序设计(顺序、多分支、循环)

    一. 实验目的

    二. 实验内容

    三. 实验过程和程序

    四. 实验结果(包括必要的截图)

    五.实验体会

    注:模仿是最深的爱慕


     实验二  汇编语言程序设计(顺序、多分支、循环)

     

    一. 实验目的

      1、掌握顺序和循环程序结构和设计方法;

      2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

    二. 实验内容

      1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:

      ①计算表达式值(V–(X*Y+Z-720))/X;

      ②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

      2、使用地址表实现如下功能:根据输入的数字1-7,分别显示相应的英文星期名,如果输入其他字符,则重新输入。

      3、求一个班50名学生成绩的平均值、最大值和最小值,并将结果显示出来。

      4、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串;查找中间是否有‘masm’子串。如果有,输出‘Yes’;否则,输出‘No’)。 

    三. 实验过程和程序

    ;the source code of the Exp 2.1
    stack   segment stack
            db 512 dup(?)
    stack   ends
    
    data    segment
            inputX db "input x:",0ah,0dh,'$'
            inputY db "input y:",0ah,0dh,'$'
            inputZ db "input z:",0ah,0dh,'$'
            inputV db "input v:",0ah,0dh,'$'
        
            x dw 0
            y dw 0
            z dw 0
            v dw 0
            sum1 dw 0
            sum2 dw 0
        
            input db 8
            db 1 dup(?)
            db 8 dup(?)
            sign db 0
            outputSum1 db "sum1:",0ah,0dh,'$'
            outputSum2 db "sum2:",0ah,0dh,'$'
    data    ends
    
    code    segment 'code'
            assume cs: code, ds: data, ss: stack
    start:
            mov ax, data
            mov ds, ax
            mov ax, stack
            mov ss, ax
    	
            mov ah, 09h
            lea dx, inputX
            int 21h
            call readInt
            mov word ptr [x], ax
    	
            mov ah, 09h
            lea dx, inputY
            int 21h
            call readInt
            mov word ptr [y], ax
    	
            mov ah, 09h
            lea dx, inputZ
            int 21h
            call readInt
            mov word ptr [z], ax
    	
            mov ah, 09h
            lea dx, inputV
            int 21h
            call readInt
            mov word ptr [v], ax
    	
            mov ax, [x]
            mov bx, [y]
            imul bx         ; x*y
            add ax, [z]     ; x*y+z
            sub ax, 720     ; x*y+z-720
            mov bx, [v]
            sub bx, ax      ; v-(x*y+z-720)
            mov ax, bx      
            cwd
            mov bx, [x]     
            idiv bx          ; (v-(x*y+z-720))/x
            mov [sum1], ax
            mov [sum2], dx
    	
            lea dx, outputSum1
            mov ah, 09h
            int 21h
    	
            mov ax, [sum1]
            call prinIint
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
    	
            lea dx, outputSum2
            mov ah, 09h
            int 21h
    	
            mov ax, [sum2]
            call prinIint
    	
            mov ah, 4ch
            int 21h
    readInt:
            pushf
            push bx
            push cx
            push dx
            push si
    	
            lea dx, input
            mov ah, 0ah
            int 21h
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
    	
            mov ax, 0
            xor cx, cx
            mov cl, [input+1]
            lea si, [input+2]
            mov byte ptr [sign], 0
            cmp byte ptr[si], '-'
            jnz next1
            inc si
            dec cx
            mov byte ptr [sign], 1
    next1:
            mov ax, 0
    loop1:
            mov bx, 10
            mul bx
            xor bx, bx
            mov bl, [si]
            sub bl, '0'
            add ax, bx
            inc si
            loop loop1
    	
            cmp byte ptr [sign], 1
            jnz next2
            xor bx, bx
            sub bx, ax
            mov ax, bx
    	
    next2:
            pop si
            pop dx
            pop cx
            pop bx
            popf
            ret
    prinIint:
            pushf
            push bx
            push cx
            push dx
            push si
    	
            mov si, ax
            cmp ax, 0
            jge skip2
            mov dl, '-'
            mov ah, 02h
            int 21h
            mov ax, 0
            sub ax, si
    skip2:
            cmp ax, 0
            jne skip1
            push ax
            mov cx, 1
            jmp next3_end
    skip1:
            mov cx, 0
    next3:
            cmp ax, 0
            je next3_end
            mov dl, 10
            div dl
            xor bx, bx
            mov bl,ah
            push bx
            mov ah, 0
            inc cx
            jmp next3
    	
    next3_end:
            xor dx, dx
            pop dx
            add dl, 48
            mov ah, 02h
            int 21h
            loop next3_end
            pop si
            pop dx
            pop cx
            pop bx
            popf
            ret
    	
    code ends
            end start

     

    ;the source code of the Exp 2.2
    stack   segment stack
            db 512 dup(?)
    stack   ends
    
    data    segment
            address dw l1, l2, l3, l4, l5, l6, l7
            s1 db 'Monday $'
            s2 db 'Tuesday $'
            s3 db 'Wednesday $'
            s4 db 'Thursday$'
            s5 db 'Friday$'
            s6 db 'Startday$'
            s7 db 'Sunday$'
            input db 'Please input a number between 1 to 7:',0ah,0dh,'$'
    data    ends
            
    code    segment 'code'
            assume cs: code, ds: data, ss: stack
    start:  
            mov ax, data
            mov ds, ax
            mov ax, stack
            mov ss, ax
    start1: 
            lea dx, input
            mov ah, 09h
            int 21h
    	
            mov ah, 01h
            int 21h
    	
            mov bl, al
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
    	
            mov al, bl
            sub al, '0'
            cmp al, 1
    	
    	
            jb start1
            cmp al,7
            ja start1
    	
            dec al
            mov ah, 0
            mov bx,ax
            shl bx, 1
            jmp address[bx]
    
    l1:
            lea dx,s1
            jmp s
    l2:
            lea dx, s2
            jmp s
    l3:
            lea dx, s3    
            jmp s
    l4:
            lea dx, s4
            jmp s
    l5:
            lea dx, s5
            jmp s
    l6:
            lea dx, s6
            jmp s
    l7:
            lea dx, s7
    s:
            mov ah, 09h
            int 21h
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
       
            mov ah, 4ch
            int 21h
    
    code ends
            end start

     

    ;the source code of the Exp 2.3
    stack   segment stack
            db 512 dup(?)
    stack   ends
    
    data    segment
            inputMSG db "input:", 0ah, 0dh, '$'
            max dw 0
            min dw 100
            average dw 0
            input db 8
            db 1 dup(?)
            db 8 dup(?)
            sign db 0
            output1 db "average:", 0ah, 0dh, '$'
            output2 db "max:", 0ah, 0dh, '$'
            output3 db "min:", 0ah, 0dh, '$'
    data    ends
    
    code    segment 'code'
            assume cs: code, ds: data, ss: stack
    start:
            mov ax, data
            mov ds, ax
    	
            mov cx, 50
    L1:
            lea dx, inputMSG
            mov ah, 09h
            int 21h
            call readInt
            cmp ax, [max]
            jg max1
            jmp skip11
    max1:
            mov [max], ax
    skip11:
            cmp [min], ax
            jg min1
            jmp skip22
    min1:
            mov [min], ax
    skip22:
            add [average], ax
            loop L1
    	
            mov ax, [average]
            cwd
            mov bx, 50
            idiv bx
            mov [average], ax
    	
            lea dx, output1
            mov ah, 09h
            int 21h
    	
            mov ax, [average]
            call printInt
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
    	
            lea dx, output2
            mov ah, 09h
            int 21h
    	
            mov ax, [max]
            call printInt
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
    	
            lea dx, output3
            mov ah, 09h
            int 21h
    	
            mov ax, [min]
            call printInt
    	
            mov ah, 4ch
            int 21h
    readInt:
            pushf
            push bx
            push cx
            push dx
            push si
    	
            lea dx, input
            mov ah, 0ah
            int 21h
    	
            mov dl, 0ah
            mov ah, 02h
            int 21h
    	
            mov dl, 0dh
            mov ah, 02h
            int 21h
    	
            mov ax, 0
            xor cx, cx
            mov cl, [input+1]
            lea si, [input+2]
            mov byte ptr [sign], 0
            cmp byte ptr[si], '-'
            jnz next1
            inc si
            dec cx
            mov byte ptr [sign], 1
    next1:
            mov ax, 0
    loop1:
            mov bx, 10
            mul bx
            xor bx, bx
            mov bl, [si]
            sub bl, '0'
            add ax, bx
            inc si
            loop loop1
    	
            cmp byte ptr [sign], 1
            jnz next2
            xor bx, bx
            sub bx, ax
            mov ax, bx
    	
    next2:
            pop si
            pop dx
            pop cx
            pop bx
            popf
            ret
    	
    printInt:
            pushf
            push bx
            push cx
            push dx
            push si
    	
            mov si, ax
            cmp ax, 0
            jge skip2
            mov dl, '-'
            mov ah, 02h
            int 21h
            mov ax, 0
            sub ax, si
    skip2:
            cmp ax, 0
            jne skip1
            push ax
            mov cx, 1
            jmp next3_end
    skip1:
            mov cx, 0
    next3:
            cmp ax, 0
            je next3_end
            mov dl, 10
            div dl
            xor bx, bx
            mov bl,ah
            push bx
            mov ah, 0
            inc cx
            jmp next3
    	
    next3_end:
            xor dx, dx
            pop dx
            add dl, 48
            mov ah, 02h
            int 21h
            loop next3_end
            pop si
            pop dx
            pop cx
            pop bx
            popf
            ret
    	
    code ends
            end start

     

    ;the source code of the Exp 2.4
    stack   segment stack
            db 512 dup(?)
    stack   ends
    
    data    segment
            data2 db 50, ?, 50 dup('$')
            string db 'yes', 0ah, 0dh, '$'
            string1 db 'no', 0ah, 0dh, '$'
    data    ends
    
    
    code segment 
            assume cs: code, ds: data, ss: stack
    start: 
            mov ax, data
            mov ds, ax
            mov ax, stack
            mov ss, ax
    	
            mov ah, 0ah
            mov dx, offset data2
            int 21h
    	
            mov ah, 02h
            mov dl, 0ah
            int 21h
    	
            mov ah, 02h
            mov dl, 0dh
            int 21h	
    	
    
            mov dx, offset data2+2
            mov ah, 09h
            int 21h
    	
            mov ah, 02h
            mov dl, 0ah
            int 21h
    	
            mov ah, 02h
            mov dl, 0dh
            int 21h	
    	
            mov al, 0h
            mov cx, 47
            mov di, 0
    again: 
            mov al, [ di + 2 ]
    	    cmp al, 61h
    		jnz next
    		mov al, [ di + 3] 
    		cmp al, 73h
    		jnz next
    		mov al, [ di + 4 ]
            cmp al, 6dh
            jnz next
    		jmp yes
    
    	
    next: 
            add di, 1
    	    loop again
    		mov dx, offset string1
    	    mov ah, 09h
    	    int 21h
    		jmp endcode
    yes:		
            mov dx, offset string
    	    mov ah, 09h
    	    int 21h
    endcode:   
            mov ax, 4c00h
            int 21h
    	   
    code ends
            end start

     

    四. 实验结果(包括必要的截图)

     

    图 1 题2.1运行截图①

     

    图 2 题2.1运行截图②

     

    图 3 题2.2运行截图①

     

    图 4 题2.2运行截图②

     

    图 5 题2.3运行截图①

     

    图 6 题2.3运行截图②

     

    图 7 题2.4运行截图①

     

    图 8 题2.4运行截图②

     

      五.实验体会

       汇编太难了,这四个题目如果不查资料一个都弄不出来。上课听得很过瘾,下课啥也不会做。

           

     注:模仿是最深的爱慕

    展开全文
  • Java实验五——线程实验

    千次阅读 2019-05-04 22:51:03
    一、实验目的 1、练习线程类的两种实现方法,理解线程程序的生命周期。 二、实验内容 编写一线程程序,实现如下功能: (1)一个线程进行阶乘和的运算(1!+2!+3!……+30!), 每次阶乘计算时间随机间隔...
  • 实验 12 区域下 OSPF 配置实验

    万次阅读 2017-04-28 21:07:32
    实验目的: 将大型网络划分个 OSPF 区域,掌握区域下 OSPF 的配置。 二.实验要点: 1.OSPF 区域的划分 2.OSPF 路由条目。 三.实验设备: Cisco 2621 路由器 4 台,pc机两台 四、实验环境 注意,...
  • 1. 实验目的 2. 实验要求 3. 实验内容 4. 实验步骤 5. 实验结果 5.1 所用命令 5.2 实验截图 6. 实验总结 实验6:数据查询 1. 实验目的 2. 实验要求 3. 实验内容 4. 实验步骤 5. 实验结果 5.1 所用命令...
  • 实验位十六进制加法运算实验 张云帆 17308226 电子专业 一. 实验要求 利用Proteus平台,建立8086的位十六进制加法运算的例子。 二. 实验目的 熟悉实验系统的编程和使用。 掌握使用加法类运算指令编程...
  • 功能ALU设计实验 一、实验目的与要求 实验目的: (1)学习功能ALU的工作原理,掌握运算器的设计方法 (2)掌握运用Verilog HDL 进行行为描述与建模的技巧和方法 实验要求:本实验要求设计一个具有8种运算...
  • 1、实验试验的英文翻译 实验:Experiment ...实验不完全依赖特定标准文件来判断是否成功(纯科研甚至往往没有标准),而主要是依据实验目的,设计实验的条件和方法,然后操作,来观测实验品能否达到期望(...
  • java实验报告(线程的应用)

    千次阅读 2020-01-11 09:50:07
    实验名称: 线程的应用 实验地点: 所使用的工具软件及环境: 环境:Windows 8.1;jdk 1.8; 工具:eclipse 实验目的: 掌握线程的生命周期及状态迁移,学会如何创建线程,掌握线程的调度策略,线程优先级和线程同步 ...
  • MSTP实例生成树实验

    千次阅读 2019-09-03 20:29:37
    一、实验目的 验证MTSP实例生成树的作用及原理 二、实验器材 华为交换机三台 pc机六机 双绞线 三、实验步骤 1)、将三台交换机彼此互联; 2)、每台交换机上各连两台pc机; 如图所示:根据三个交换机的...
  • 【Java】《面向对象与线程综合实验》报告

    千次阅读 多人点赞 2018-04-10 22:42:49
    说明:这是武汉理工大学计算机学院【面向对象与线程综合实验】课程的实验报告 >>点击查看WUTer计算机专业实验汇总 谨记:纸上得来终觉浅,绝知此事要躬行。 《面向对象与线程综合实验》报告 1...
  • 思计算机组成原理网络虚拟实验系统 计算机组成原理实验一 全加器实验
  • 周期CPU设计与实现实验

    千次阅读 2018-07-24 19:44:03
    实验目的 (1) 认识和掌握周期数据通路原理及其设计方法; (2) 掌握周期CPU的实现方法,代码实现方法; (3) 编写一个编译器,将MIPS汇编程序编译为二进制机器码; (4) 掌握周期CPU的测试方法; (5) ...
  • 物联网第一次实验

    千次阅读 2020-09-26 13:15:15
    一、实验目的 熟悉掌控版的功能,实现Easy IoT配置和MTQQ消息的通讯。 二、实验内容 实现mind+下Easy IoT上mqtt消息的通讯。 三、实验软硬件环境 硬件:掌控板 软件:Mind+ 四、实验过程(实验步骤、记录、数据、...
  • 试验设计[实验设计]

    千次阅读 2013-05-30 09:09:24
    试验设计(design Of experiment,简称DOE),也称为实验设计。试验设计是以概率论和数理统计为理论基础,经济地、科学地安排试验的一项技术。试验设计自20世纪20年代问世至今,其发展大致经历了三个阶段:即早期的...
  • OSPF区域配置实验(思科配置脚本)一、实验目的二、实验内容三、实验流程四、查看和验证 一、实验目的 掌握路由器中ospf动态路由区域划分的基本配置方法和验证结果; 进一步理解网络配置的基本原理; 二、实验...
  • 实验表查询(V2.0)

    千次阅读 2013-10-16 10:10:53
    实验六 表查询【实验目的】1. 掌握等值连接和非等值连接2. 掌握自身连接(同一个表之间连接)3. 掌握外连接4. 掌握复合条件连接 【实验内容】1. 基本命令:select from [,[,]]where 功能:从表1和表2中查询满足...
  • Google 重叠实验框架:更,更好,更快地实验 发表于2015-01-09 16:21| 6559阅读| 来源火光摇曳| 3 条评论| 作者lexqu(屈伟) GoogleWeb App机器学习框架数据中心 摘要:辛苦优化的模型与策略线上效果到底如何...
  • Introduction Google是一个数据驱动型公司,这意味着所有对用户的...在web的语境下,一个实验是由一股流量(比如,用户的请求)和在这股流量上进行的相对对比实验的修改组成的。修改包括用户可见的修改(比如,修...
  • 说明:这是武汉理工大学计算机学院【可视化编程C#】课程的第四次实验文本编辑器 >>点击查看WUTer计算机专业实验汇总 谨记:纸上得来终觉浅,绝知此事要躬行。 实验目的  综合应用C#的MDI窗体设计...
  • 记一次实验室面试

    千次阅读 2017-09-11 18:36:48
    心疼,第一次实验室面试以失败告终。  面试的实验室是可穿戴与移动计算实验组,招收两名工程型和一名科研型学生,工程型其实就是偏软件工程师,主要是实现软硬件的交互,例如该实验室和腾讯合作的一个项目,如何在...
  • 实验目的 1.通过实验熟悉 F28335A 的定时器。 2.掌握 F28335A 片内 AD 的控制方法。 二.实验设备 计算机,ICETEK-F28335-A实验箱(或 ICETEK 仿真器+ICETEK-F28335-A系统板+相关连线及电源)。 实验原理...
  • 实验4、使用Junit单元测试

    千次阅读 2019-10-31 15:24:30
    1.实验目的: 1)理解单元测试原理 2)学会使用Junit单元测试 2.实验方法: 1)确定测试单元 2)设计测试用例 3实验内容: 1)编写四则运算程序 2)确定测试单元 3)设计测试用例 4)使用Junit单元测试 4...
  • 实验目的 通过编写经典的“生产者-消费者”问题的实验,进一步熟悉Linux中的线程编程,并且掌握用信号量处理线程间的同步和互斥问题。 实验内容 “生产者--消费者”问题描述如下: 有一个有限缓冲区(这里...
  • 性能测试的目的

    千次阅读 2018-05-14 09:51:34
    目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。 包括以下个方面 1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证...
  • 软件测试技术第一次实验

    千次阅读 2015-10-15 14:06:13
    实验名称:被测程序的设计一、实验目的完成测试用程序的编写,为接下来的测试实验做准备。二、实验要求(1)设计程序的语言可以选择C、C++、JAVA等;(2)保证程序语法正确(3)记录实验数据并书写实验报告题目要求...
  • Java第六次实验要求

    千次阅读 2016-04-12 21:43:15
    实验六 继承与接口(二) 一、 实验目的1、 掌握Java语言中final关键字的含义及使用方法;2、 掌握Java语言中上转型对象的基本概念及利用上转型对象实现多态的方法;3、 掌握Java语言中抽象类的基本概念及使用...
  • 计算机组成原理实验:基本运算器实验

    千次阅读 多人点赞 2021-02-07 15:09:42
    二、实验目的: (1)了解运算器的组成原理 (2)掌握运算器的工作原理 三、实验要求: 通过一个基本运算器实验,了解运算器的组成原理、工作原理,了解运算器的基本结构,设计一个加法器。 四、实验内容:  &...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 371,884
精华内容 148,753
关键字:

多做几次实验的目的