中南大学组成原理与汇编实验报告

合集下载

中南大学汇编课程设计报告

中南大学汇编课程设计报告

中南大学微机原理课程设计报告——信号发生器功能程序设计目录第一章设计题目、要求及目的 (3)1.设计题目要求 (3)2.设计目的 (3)第二章总体设计方案 (3)1.设计思想 (3)2.设计方案 (4)3.总体设计流程图 (5)第三章硬件设计 (5)1.硬件环境要求 (5)2.所用芯片及其功能说明 (6)3.硬件接线图 (9)第四章程序设计 (10)1.流程图 (10)2.典型程序模块及典型编程技巧分析··133.课程设计中遇到的问题及解决方法··144.程序清单和程序注释 (15)第五章收获与体会 (33)第六章参考文献 (33)第一章设计题目、要求及目的1.设计题目及要求设计题目:信号功能发生器设计设计要求:(1)、编程语言为C语言和汇编语言;(2)、硬件电路基于80x86微机的接口电路;(3)、程序功能要求:小键盘给定、数码管(屏幕)显示,并产生对应信号波形(D/A)输出(信号波形包括正弦波、三角波、方波、锯齿波)、输出信号波形幅度、频率可调。

(注意:按键数量应尽量少)。

2.设计目的(1)、熟练掌握汇编语言和C语言,并用它们实现对硬件的操作,实现设计要求。

(2)、学会调试程序,可以通过编译(masm)、链接(link)、运行(run)可以看到汇编程序的运行结果,更多的是要通过Debug来调试以发现程序的逻辑问题,熟练运用Debug可以解决很多问题,如Debug的T命令可以查看单步运行的结果。

(3)、对硬件加深了解,特别是此实验要用到的8255及小键盘等(4)、本课程设计,要求对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。

第二章总体设计方案1.设计思想该课题要求实现信号功能发生器,首先通过小键盘给定一个按键,并将此信息送入计算机中,由计算机内部根据此信息去实现特定的功能,比如产生正弦波。

2023年中南大学实习报告三篇

2023年中南大学实习报告三篇

2023年中南大学实习报告三篇中南大学实习报告篇1(1)学习识别简单的电子元件与电子线路;(2)学习并掌握收音机的工作原理;(3)按照图纸焊接元件,组装一台收音机,并掌握其调试方法。

二、实习器材介绍:(1)电烙铁:由于焊接的元件多,所以使用的是外热式电烙铁,功率为30w,烙铁头是铜制。

(2)螺丝刀、镊子等必备工具。

(3)松香和锡,由于锡它的熔点低,焊接时,焊锡能迅速散步在金属表面焊接牢固,焊点光亮美观。

(4)两节5号电池。

三、实习目的:电子技术实习的主要目的就是培养我们的动手能力,同金工实习的意义是一样的,金工实习要求我们都日常的机械车床,劳动工具能够熟练使用,能够自己动手做出一个像样的东西来。

而电子技术实习就要我们对电子元器件识别,相应工具的操作,相关仪器的使用,电子设备制作、装调的全过程,掌握查找及排除电子电路故障的常用方法有个更加详实的体验,不能在面对这样的东西时还像以前那样一筹莫展。

有助于我们对理论知识的理解,帮助我们学习专业知识。

使我们对电子元件及收音机的装机与调试有一定的感性和理性认识,打好日后深入学习电子技术基础。

同时实习使我获得了收音机的实际生产知识和装配技能,培养理论联系实际的能力,提高分析问题和解决问题的能力,增强独立工作的能力。

同时也培养同学之间的团队合作、共同探讨、共同前进的精神。

具体目的如下:熟悉手工焊锡的常用工具的使用及其维护与修理。

基本掌握手工电烙铁的焊接技术,能够独立的完成简单电子产品的安装与焊接。

熟悉电子产品的安装工艺的生产流程。

熟悉印制电路板设计的步骤和方法,熟悉手工制作印制电板的工艺流程,能够根据电路原理图,元器件实物设计并制作印制电路板。

熟悉常用电子器件的类别、型号、规格、性能及其使用范围,能查阅有关的电子器件图书。

能够正确识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。

了解电子产品的焊接、调试与维修方法。

四、原理简述:频率范围:中波530~1605kHz中频:465kHz灵敏度:小于lmV/m选择性:大于16dB输出功率:56mW~140mWZX-921型收音机电路原理图(一)调谐、变频电路(二)中频放大电路(三)检波器及自动增益控制电路检波电路主要由检波三极管BG4、滤波电容C8和检波电阻R9、W组成。

【2018-2019】汇编实验报告1 (6000字)-优秀word范文 (5页)

【2018-2019】汇编实验报告1 (6000字)-优秀word范文 (5页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==汇编实验报告1 (6000字)汇编实验报告1.实验名称顺序与分支程序设计2.实验目的1) 掌握顺序程序设计方法。

2) 掌握分支程序的结构及分支程序的设计,调试方法。

3) 学习数据传送及算术和逻辑运算指令的用法。

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

3.实验内容1) 从键盘上接收一位十进制数X,计算Y值,并以十六进制形式显示出来,Y 按下列公式计算。

???Y?????XXXX2?X(X?3)?2X(X?4)(X?5)/2(X?6)2222) 从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按下列要求计算。

a)b) c) d)当输入字符为A,则计算X+Y,并以十六进制形式显示出来当输入字符为B,则计算|X-Y|,并以十六进制形式显示出来当输入字符为C,则计算X*Y,并以十六进制形式显示出来当输入字符为D,则计算X/Y,并以十六进制形式显示出来4.源程序1)DATA SEGMENTTABLE DW L1,L2,L3,L4X DB ? ;存放键盘输入的数 DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AX ;将DATA装入DS寄存器MOV AH,1INT 21H;输入一个数存入AL寄存器 CMP AL,33HJB L10 CMP AL,36H JA L10 ;判断输入的数是否在3-6之间AND AL,0FH ;转换成数字MOV X,AL SUB AL,3 SHL AL,1 XOR AH,AHLEA BX,TABLE ADD BX,AXJMP [BX];程序转移指令L1: MOV AL,X MUL AL ADD AL,XJMP L5 ;X^2+XL2: MOV AL,X MUL AL SHL X,1SUB AL,XJMP L5 ;X^2-2XL3: MOV AL,X MUL ALJMP L5 ;X^2L4: MOV AL,XMUL AL SHR AL,1 JMP L5 ;(X^2)/2L5: MOV BL,AL MOV CL,4 SHR AL,CL CMP AL,9H JBE L8ADD AL,7L8: ADD AL,30HMOV DL,AL MOV AH,02H INT 21H ;输出高位结果 MOV DL,BL AND DL,0FH CMP DL,9 JBE L7ADD DL,7L7: ADD DL,30HMOV AH,2 INT 21H ;输出低位结果L10: MOV AH,4CHINT 21H ;结束程序CODE ENDS END START 2)DATA SEGMENTTABLE DW L1,L2,L3,L4X DB ? ;存放键盘输入的数x Y DB ? ;存放键盘输入的数y Z DB ? ;存放键盘输入的数z DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AX ;将DATA装入DS寄存器 MOV AH,1INT 21H;输入一个数存入AL寄存器 CMP AL,30H JB L10CMP AL,46HJA L10 ;判断输入的数是否在0-F之间 CMP AL,41HJB L5SUB AL,07H L5: SUB AL,30H MOV X,AL ;完成输入16进制数存入X中MOV AH,1 INT 21H;输入一个数存入AL寄存器CMP AL,30HJB L10 CMP AL,46H JA L10 ;判断输入的数是否在0-F之间JMP L12 L10:JMP L11 L12:CMP AL,41H JB L6SUB AL,07HL6: SUB AL,30H ;转换成数字 MOV Y,AL ;完成输入16进制数存入Y的功能MOV AH,1INT 21H;输入一个数存入ALMUL YAND AX,00FFH MOV DL,ALJMP L9 ;X*Y L4: MOV AX,0 MOV AL,X MOV BL,Y DIV BLMOV DL,AL JMP L9 ;X/Y寄存器CMP AL,41H JB L10 CMP AL,44H JA L10 ;判断输入的数是否在A-D之间SUB AL,40H MOV Z,AL ;将A-Z转换成1-4存入Z中MOV AL,Z DEC ALSHL AL,1 XOR AH,AHLEA BX,TABLE ADD BX,AXJMP [BX];程序转移指令L9: MOV BL,DL MOV CL,4SHR DL,CL CMP DL,9H JBE L8 ADD DL,7L1: MOV DL,X ADD DL,Y5.运行结果:JMP L9 ;X+Y L2:MOV BL,YCMP X,BLJBE L15SUB X,BLJMP L13 L15:SUB BL,XMOV DL,BLJMP L9 L13:MOV DL,XJMP L9 ;|X-Y| L3: MOV AL,XL8: ADD DL,30H MOV AH,02H INT 21H ;输出高位结果 MOV DL,BL AND DL,0FH CMP DL,9 JBE L7 ADD DL,7L7: ADD DL,30HMOV AH,2 INT 21H ;输出低位结果L11: MOV AH,4CH INT 21H CODE ENDS END START6.对实验的分析和总结CF是进位标志位,向左移位时,最高位进入CF。

中南大学应用化学综合实验教材+报告全

中南大学应用化学综合实验教材+报告全

实验二十一 聚磷酸铵的制备及阻燃性能的测试 ............... 33 实验二十二 钡—镉—锌复合型热稳定剂的制备 ............... 38 实验二十四 电解法印染废水脱色及 COD 的测定 ............... 43 附录 10 附录 11: 氧指数法 .................................... 51 荧光特性测定(激发光谱、发射光谱的测定) .... 53
图一
纳米 ZnO 激子能级
图二 纳米 ZnO 粉体材料的典型发射光谱 ZnO 属于 N 型半导体,含有氧空位或锡间隙离子,气敏效应明显。关于其气敏机理的 理论模型有多种,一般认为其气敏机理是表面吸附控制型机制,即在洁净的空气(氧化性 气氛)中加热到一定的温度时对氧进行表面吸附,在材料的晶界处形成势垒,该势垒能束 缚电子在电场作用下的漂移运动,使之不易穿过势垒,从而引起材料电导降低;而在还原
面向 21 世纪工科化学系列课程改革教材 《工科大学化学实验》系列篇
应用化学综合实验
Enhanced Edition
实验一 实验九 实验十七 实验二十
氧化锌纳米粉体的低温化学法合成与性能研究 ...... 2 聚苯胺导电聚合膜的制备及表征 ................. 13 聚合硫酸铁的制备及性能测定 ................... 21 聚乙烯醇缩甲醛胶的制备、游离甲醛的消除与测定 . 26
3
性被测气氛中吸附被测气体并与吸附氧交换位置或发生反应,使晶界处的吸附氧脱附,致 使表面势垒降低,从而引起材料电导的增加,通过材料电导的变化来检测气体。理论模型 中的一种为: Oo------Vo++e+1/2O2 Oo+------Vo2++e+1/2O2 ZnZn-------ZnI2++2e (1) (2) (3)

中南大学计算机原理与汇编实验报告(截图完整)

中南大学计算机原理与汇编实验报告(截图完整)

中南大学《计算机原理与汇编》实验报告学生姓名学号专业班级指导教师雷向东学院信息科学与工程学院完成时间 2010年12月实验2 算术逻辑运算实验一、实验目的1.掌握简单运算器的组成以及数据传送通路。

2.验证运算功能发生器(74LS181)的组合功能。

二、实验设备74LS181(两片),74LS273(两片), 74LS245(一片),开关若干,灯泡若干,单脉冲一片。

三、实验原理实验中的运算器由两片74LS181以并/串形式构成8位字长的ALU。

运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74LS373)锁存,锁存器的输入连至数据总线,数据开关用来给出参与运算的数据(A和B),并经过一个三态门(74LS245)和数据显示灯相连,显示结果。

74LS181:完成加法运算。

74LS273:输入端接数据开关,输出端181。

在收到上升沿的时钟信号前181和其输出数据线之间是隔断的。

在收到上升沿信号后,其将输出端的数据将传到181,同时,作为触发器,其也将输入的数据进行保存。

因此,通过增加该芯片,可以通过顺序输入时钟信号,将不同寄存器中的数据通过同一组输出数据线传输到181芯片的不同引脚之中。

74LS245:相当于181的输出和数据显示灯泡组件之间的一个开关,在开始实验后将其打开,可以使181的运算结果输出并显示到灯泡上。

四、实验步骤及结果分析1.选择实验设备:根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。

图1 运算器实验流程图2.搭建实验流程:将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。

搭建好的实验流程图如图1所示。

具体操作如下:①将74LS273芯片的0-7号引脚(数据端从低到高)及9号引脚(复位端)接到开关上,8号引脚接至单脉冲组件,左右两个74LS273芯片分别保存参与运算的数据A和B。

接着把两个74LS273组件的11-14号引脚(数据的低四位)分别接到74LS181组件(左)的0-7号引脚上,其中0-3号引脚为A的低四位,4-7号引脚为B的低四位。

中南大学汇编实验报告

中南大学汇编实验报告

计算机汇编语言实验报告学院:信息科学与工程学院专业班级:指导老师:学号:姓名:目录汇编语言实验一 (4)一、实验目的 (4)二、实验要求 (4)三、实验编程 (4)四、DEBUG 命令: (5)五、运行界面 (6)六、心得体会 (8)汇编语言实验二 (9)一、实验目的 (9)二、二进制到十六进制转换程序 (9)1、思路方法 (9)2、程序代码 (10)3、程序截图 (11)三、起泡排序算法的程序实现 (11)1、方法思路 (11)2、程序代码 (11)3、程序截图 (14)汇编语言实验三 (15)一、实验目的 (15)二、实验要求 (15)三、实验内容求(Fibonacci递归数) (15)四、程序代码 (15)五、实验心得 (18)汇编语言实验四 (19)一、实验目的 (19)二、实验要求 (19)三、实验内容(分类统计字符个数) (19)四、程序代码 (19)五、实验心得 (23)汇编语言实验一一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,熟悉DEBUG调试程序和DOS功能表的查看,为后续实验打下坚实基础。

二、实验要求通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG2、DEBUG命令: A,D,E,F,H,R,T,U。

3、ASCII码及用16进制数表示二进制码的方法。

4、8086寄存器: AX,BX,CX,DX,F,IP。

三、实验编程'Hello World'程序:DATAS SEGMENTSTRING DB 13,10,'Hello World!',13,10,'$'DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,STRINGMOV AH,9INT 21HMOV AH,4CHINT 21HCODES ENDSEND START四、DEBUG 命令:1、打DEBUG 进入DEBUG,显示提示苻'_ '。

中南大学 计算机原理与汇编课程设计报告

中南大学 计算机原理与汇编课程设计报告

计算机原理与汇编——课程设计报告姓名:学号:班级:指导老师:贺建飚汇编语言课程设计一、设计目的:课程设计是计算机原理与汇编语言教学过程中的重要环节。

本课程设计主要目的是使计算机专业学生深入学习计算机原理与汇编语言知识,进一步提高学生计算机原理与汇编语言综合能力和程序设计技能,锻炼运用计算机原理与汇编语言解决实际问题的能力。

二、设计要求:1.认真查阅资料,独立完成设计任务,每道题都必须上机通过。

2.独立思考,培养综合分析问题解决问题和调试程序的能力。

3.按时完成课程设计,写出课程设计报告。

三、设计内容及原理㈠设计内容:1.使用到子程序100 以内的素数,以十进制形式输出。

2.用递归计算50以内Fibonacci 数,以十进制形式输出。

3.编写一拷贝程序,要求在命令行指定源文件名和目标文件名。

㈡设计原理:1.结合几种含有特定功能的子程序以完成设计要求。

2.建立循环程序递归计算Fibonacci 数。

3.根据输入判断文件是否存在并执行拷贝过程。

四、设计思路1.使用到子程序100 以内的素数,以十进制形式输出。

按照设计要求,可以建立3个子程序,一个判断素数子程序,一个显示素数子程序,一个将素数以十进制形式输出子程序,然后在主程序中调用子程序,程序框架得以构建。

2.用递归计算50以内Fibonacci 数,以十进制形式输出。

按照设计要求,可以建立循环子程序,递归计算Fibonacci 数,以十进制形式输出,再将新Fibonacci 数与50比较,大于50则退出循环,程序结束。

3.编写一拷贝程序,要求在命令行指定源文件名和目标文件名。

在数据段中编写各种提示语句,在代码段中加入各种判断语句及中断跳转语句,程序运行时,即可根据命令行输入的指定源文件名和目标文件名执行相应的功能。

五、实现步骤1.使用到子程序100 以内的素数,以十进制形式输出。

程序代码如下:DA TAS SEGMENTcount dw 0;存放素数的个数sushu db 100 dup(?);存放素数msgsushu db'all prime numbers below 100 are:','$';显示素数的提示信息msgcount db 0dh,0ah,'count of prime numbers is:',0dh,0ah,'$';显示素数个数的提示信息DA TAS ENDSCODE SEGMENTassume cs:CODE, ds:DATASMAIN PROC FAR ;主程序入口call jisuanlea dx,msgsushu;显示素数的提示信息mov ah,9int 21hcall dispsushu;显示素数lea dx,msgcount;显示素数个数的提示信息mov ah,9int 21hcall dispcount;显示素数个数mov ah,1;按任意键退出int 21hmov ax, 4c00h ;程序结束,返回到操作系统系统int 21hMAIN ENDPjisuan proc nearmov ax, datasmov ds, axlea di,sushumov bh,0mov bl,2;求从2到100的素数、素数个数,BL从2到100变化next11:cmp bl,100ja tjmov dl,2;如果BL不能被DL从2到BL-1整除的话,则BL为素数next12:cmp dl,bljae next13mov ax,bxdiv dlcmp ah,0jz next14;整除则不是素数inc dljmp next12next13:inc count;是素数,则将个数加1mov [di],bl;是素数,则存入相应单元中inc dinext14:inc bljmp next11tj:retjisuan endpdispsushu proc nearlea si,sushumov cx,countnext21:mov ax,count;每行10个素数sub ax,cxmov bl,10div blcmp ah,0jnz next22mov dl,0dh;每行10个素数,行末加回车换行mov ah,2int 21hmov dl,0ahmov ah,2int 21hnext22:mov bl,[si];取出一个素数mov bh,0call disp10;以十进制形式输出mov dl,20h;每个素数之间加一个空格,便于区分mov ah,2int 21hinc siloop next21retdispsushu endpdispcount proc nearmov bx,count;取出素数个数call disp10;以十进制形式输出retdispcount endpdisp10 proc near;该子程序的作用是将BX中的数以十进制形式输出push cxmov cx,10dcall dec_divmov cx,1dcall dec_divpop cxretdec_div proc nearmov ax,bxmov dx,0div cxmov bx,dxmov dl,aladd dl,30hmov ah,2int 21hretdec_div endpdisp10 endpCODE ENDSEND MAIN程序运行结果:2.用递归计算50以内Fibonacci 数,以十进制形式输出。

《计算机组成原理与汇编语言程序设计》教学探讨

《计算机组成原理与汇编语言程序设计》教学探讨

《计算机组成原理与汇编语言程序设计》教学探讨摘要:为了提高教学水平,完善教学质量,本文对计算机组成原理与汇编语言程序设计课程的教学进行了一系列的探讨,提出了在高校计算机专业的计算机组成原理与汇编语言程序设计的课程教学中如何改进教学方法来激发学生们的学习兴趣、指导学生有效轻松学习该课程的几点措施。

关键词:启发式教学法案例教学法对比法多媒体教学实验教学《计算机组成原理与汇编语言程序设计》课程是高校计算机软、硬件及应用专业以及相关专业学生必修的专业基础课程之一,是操作系统、微机接口等其它课程的必要先修课,对于训练学生掌握单台计算机基本组成原理与内部运行机制、汇编语言程序设计技术有着重要作用。

1 课程特点和存在的问题《计算机组成原理与汇编语言程序设计》与计算机专业及相关专业学生普遍重视的软件类课程有很大的区别,它主要要求学生从CPU 级别掌握CPU的组成、指令流程、进而掌握CPU如何通过系统总线与主存以及外部设备构成整机以及汇编语言程序设计方法。

它是属于硬件类专业基础课。

计算机组成原理部分理论性较强,概念抽象,需要扎实的数字逻辑电路基础,可数字逻辑电路往往是学生门的弱点,因此很难激发学生们的兴趣;而汇编语言是计算机语言中的低级语言,硬件依赖性很高,指令系统中与计算机硬件结构、工作原理相关的内容很多,对于硬件知识了解少的学生来说,很难理解。

再加之随着新的计算机知识的不断涌入,不可避免开设一些计算机新课程导致缩减了该门课程教学时间缩短。

这样造成了该门课的难教难学的局面。

2 教学方法中的一些探索建议通过对上述难点的分析和结合自身的教学经验,对《计算机组成原理和汇编语言程序设计》的教学方法提出几点建议,目的是在现有的资源下,调动学生积极性,让学生能更好将《计算机组成原理与汇编语言程序设计》这门课程学好。

2.1 采用启发式教学方法启发式教学法就是教师启发学生积极思维、让学生主动掌握知识。

为了达到最好效果,我们课前做了充分备课,在上课过程中我们注重把所讲知识用相应的思维方法串起来,熟练的表达出来,使学生感到这些知识是从教师大脑思维中自然流出来的,从而集中精力,跟随教师的思维一起思考,掌握所学知识和相应的思维方法。

中南大学汇编课程设计

中南大学汇编课程设计

中南大学课程设计报告课题:计算机原理与汇编课程设计题目:输出九九乘法表目录摘要九九乘法表输出是应用masm.exe 、link.exe、debug.exe等汇编语言软件进行编译链接及执行目的程序的方法来实现。

并且认识和利用DOS系统下的21h 函数的02功能号来进行单个字符的输出 程序设计的过程中用到循环和子函数的思想。

模块化的程序设计思想有利于源代码代码的编写、错误的查找和修改,同时可以分步来调试程序、减少工作量,乘法表的输出没有乘数和被乘数,只有乘积的结果输出。

关键词汇编语言程序设计、微机原理、九九乘法表、dos中断系统。

一、设计要求本实验要求将九九乘法口诀表输出在屏幕上。

二、设计思想九九乘法表输出程序主要用到一个嵌套循环和两个过程,外层循环用bl保存并记录,外循环每执行一次,bl的值加一。

内循环用bh保存并记录,如果bh 的值小于bl的值则执行内循环,内循环中每盒bl比较一次,成立则值加一不成立则转到换行,子函数执行,同时也比较外循环是否继续满足条件执行,即比较bl的值是否小于10,小于就执行外循环 否则就结束程序。

设计dis子函数,把内存中的16进制数转换成10进制,设计的disp子函数是把十进制转化成ASCLL码并输出乘积,这样得到的显示的结果就是我们看到的10进制数。

子函数output_ctl的功能是换行,当内循环变量bh的值大于外循环值bl时调用这个函数,使得输出的结果有序,输出的结果更容易体现嵌套循环。

三、实验步骤(一)、创建文本文件,编写源代码,把文件保存在有masm.exe link.exe等汇编软件的文件夹下,文件的后缀名改为.asm,比如 九九乘法表输出.asm 。

(二、开启电脑,在“开始”—“运行”输入“cmd”命令进入DOS的字符操作界面,编译链接程序代码,查看源程序是否有错误,有错误则加以修改。

(三)、程序编译链接没有错误的情况下执行目标程序,查看结果的输出情况,并用debug命令查看内存的变化。

组成原理实验总结报告

组成原理实验总结报告

图2-3-11 十六位指令总线数据通路2、指令寄存器IR偶字节打入3、指令寄存器IR奇字节打入4、指令寄存器IR取指与散转七、实验感想图2-4-1 运算器数据通路BX的写控制由O2~O0编码定义,通过按【单拍】钮完成运算源的三、运算器功能编码①若运算控制位设为(M S2 S1 S0=1111)则F=AH,即AH内容送到数据总线。

②若运算控制位设为(M S2 S1 S0=1000)则F=BH,即BH内容送到数据总线。

(6)奇字节逻辑运算令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AH逻辑与BH的结果。

令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AH逻辑或BH的结果。

五、实验结果示例1 算术运算1、字算术运算(1)字写操作(置数操作)(2)字读操作(运算寄存器AX和BX内容送总线)(3)字逻辑运算2、字节算术运算(1)偶字节写(置数操作)(2)偶字节读操作(运算寄存器AL和BL内容送总线)(3)偶字节减法运算(不带进位加)示例2 逻辑运算1、字逻辑运算(1)字写操作(置数操作)(2)字读操作(运算寄存器AX 和BX 内容送总线)(3)字逻辑运算2、字节逻辑运算(1)偶字节写操作(置数操作)(2)偶字节读操作(运算寄存器AL和BL内容送数据总线)(3)偶字节逻辑运算(4)奇字写操作(置数操作)(6)奇字节逻辑运算六、实验思考验证表下表ALU运算器编码表所列的运算功能。

在给定AX=6655h、BX=AA77h的情况下,改变运算器的功能设置,观察运算器的输出,填入下页表格中,并和理论分析进行比较、验证。

表2.4.2 ALU运算器真值表K15K13K12K11AX BX运算结果运算控制运算表达式M S2S1S0带进位算术加A+B+C00006655AA77FUN=( 10CC )带借位算术减A-B-C00016655AA77FUN=( BBDE )带进位左移RLC A00106655AA77FUN=( CCAA )带进位右移RRC A0011FUN=( 332A )算术加A+B0100FUN=( 10CC )算术减A-B0101FUN=( BBDE )左移RL A0110FUN=(CCAA)。

组成原理实验报告

组成原理实验报告

组成原理实验报告(总6页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验报告实验六 模型机与机器指令执行实验一 实验目的 1 实验目的(1) 掌握控制器的工作原理(2) 掌握由控制器、运算器、存储器、组成的模型机的工作原理 (3) 通过运行各种简单程序,掌握机器指令和微指令的关系 2 实验要求(1) 做好实验预习和准备工作,掌握本次实验所用指令系统功能 (2) 将实验用汇编语言源文件编译成机器语言的目标文件 (3) 完成规定的实验内容 (4) 故障分析与排除(5) 实验结束时完成实验报告,并将报告提交服务器。

二 实验原理模型机的逻辑框图如图所示。

其指令系统和微指令系统可参看资料。

在本实验中,模型机作为一个整体工作。

所有微程序的控制信号由微程序存储器uM 输出。

而各寄存器,运算器的控制端口与uM 联接。

三 实验内容 在实验前,先用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。

将计算机串口与实验仪串口相连,启动COP2000软件,并用快捷图标“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接COP2000实验仪”按钮接通到实验仪。

实验1 数据传送/输入输出实验1. 在COP2000软件中的源程序窗口输入下列程序:MOV A ,#12H计算机组成原理机A W T D L RST R3R2R1R0MAR keyinportout PC mem_a mem_dIR Control24ALU DBUS ABUSIA IBUS INT_CODE Display Input SRAM。

中南大学《编译原理》上机实习课程实验报告

中南大学《编译原理》上机实习课程实验报告

编译原理课程实验上机实习中南大学计算机0706班方文一、目的加强学生对编译过程的整体认识,而不是个别阶段的实习。

二、实习要求扩充语句部分:for语句、repeat语句、case语句;三、PL语言及其编译程序1.词法分析2.语法分析3.语义分析及中间代码生成4.汇编代码生成四、扩充1.扩充repeat语句扩充文法<循环语句>::=”repeat”<语句>”until”<表达式>扩充函数:详见文件夹Assignment运行示例:示例代码:program pp;var n,p:integer;procedure p2(n:integer);beginrepeatbegincall write(n);n:=n-1enduntil n=0end;begincall p2(5)end.生成中间代码:0 JMP 0 , 15 ------> 无条件跳转1 JMP 0 ,2 ------> 无条件跳转2 ENTP 2 , 4 ------> 进入过程3 LOD 2 , 3 ------> 装入变量值4 WRITE 0 , 0 ------> 写指令5 LODA 2 , 3 ------> 装入变量地址6 LOD 2 , 3 ------> 装入变量值7 LIT 0 , 1 ------> 装入常量8 SUB 0 , 0 ------> 减9 STO 0 , 0 ------> 将栈顶值存入栈顶次值所指单元10 LOD 2 , 3 ------> 装入变量值11 LIT 0 , 0 ------> 装入常量12 EQ 0 , 0 ------> ==13 JPC 0 , 3 ------> 栈顶值为0时跳转14 RETP 0 , 0 ------> 过程返回15 ENTP 1 , 4 ------> 进入过程16 OPAC 0 , 0 ------> 打开活动记录17 LIT 0 , 5 ------> 装入常量18 CALL 1 , 2 ------> 转子19 ENDP 0 , 0 ------> 程序结束解释运行结果:Your Output:5Your Output:4Your Output:3Your Output:2Your Output:12.扩充for语句扩充文法<循环语句>::=“for”“(”<赋值语句> “;”<表达式> “;”<语句> “)”扩充函数详见文件夹Assignment运行示例示例代码:program pp;var n,p:integer;procedure p1(n:integer;var p:integer);beginfor(p:=1;p<=5;p:=p+1)begincall write(p);endend;begincall read(n);call p1(n,p);call read(n);end.生成中间代码:0 JMP 0 , 19 ------> 无条件跳转1 JMP 0 ,2 ------> 无条件跳转2 ENTP 2 , 5 ------> 进入过程3 LOD 2 ,4 ------> 装入变量值4 LIT 0 , 1 ------> 装入常量5 STO 0 , 0 ------> 将栈顶值存入栈顶次值所指单元6 ILOD 2 , 4 ------> 间接装入7 LIT 0 , 5 ------> 装入常量8 LEQ 0 , 0 ------> <=9 JPC 0 , 18 ------> 栈顶值为0时跳转10 LOD 2 , 4 ------> 装入变量值11 ILOD 2 , 4 ------> 间接装入12 LIT 0 , 1 ------> 装入常量13 ADD 0 , 0 ------> 加14 STO 0 , 0 ------> 将栈顶值存入栈顶次值所指单元15 ILOD 2 , 4 ------> 间接装入16 WRITE 0 , 0 ------> 写指令17 JMP 0 , 6 ------> 无条件跳转18 RETP 0 , 0 ------> 过程返回19 ENTP 1 , 5 ------> 进入过程20 LODA 1 , 3 ------> 装入变量地址21 READ 0 , 0 ------> 读指令22 OPAC 0 , 0 ------> 打开活动记录23 LOD 1 , 3 ------> 装入变量值24 LODA 1 , 4 ------> 装入变量地址25 CALL 1 , 2 ------> 转子26 LODA 1 , 3 ------> 装入变量地址27 READ 0 , 0 ------> 读指令28 ENDP 0 , 0 ------> 程序结束解释运行结果:29翻译开始Your Output:2Your Output:3Your Output:4Your Output:5Your Output:6翻译结束。

汇编实验报告

汇编实验报告

汇编实验报告汇编实验报告是计算机科学领域的一种重要实验报告,通过对汇编语言的学习和实践,学生可以深入了解计算机底层结构及其运行原理,提高编程能力和调试能力。

本篇文章将介绍汇编实验报告的基本结构和写作要点,并列举三个案例供读者参考。

实验报告的基本结构汇编实验报告的基本结构包括封面、目录、实验目的、实验要求、实验内容、实验步骤、实验结果和分析、实验总结和参考文献等部分。

其中,实验目的和实验要求主要描述实验的目标和要完成的任务,实验内容和实验步骤则详细介绍查阅资料、编写程序、调试程序等具体步骤,实验结果和分析介绍实验的结果及其分析,实验总结则对实验过程和结果进行总结并提出改进与展望,参考文献则列出参考资料的来源。

写作要点1. 实验题目应简洁、明确、具有代表性。

2. 实验报告应尽可能具有自己的思考和创造性。

3. 实验过程中遇到的问题和解决方法应详细描述。

4. 实验结果应以表格、图表等形式展示,并进行分析和总结。

5. 实验报告应严格按照学院和教师要求进行格式和排版。

案例一:用汇编语言实现计算器实验目的:熟悉汇编语言的基本语法和运算操作,通过编写计算器程序实现数值的加减乘除运算。

实验要求:掌握汇编语言的基本指令和寄存器使用方法,能够编写简单的运算操作程序。

实验内容:1. 了解计算器的设计原理和运行原理。

2. 查阅资料,学习汇编语言的基本语法和运算操作。

3. 编写计算器程序,实现加减乘除运算。

实验步骤:1. 设计程序结构,明确输入输出方式和运算操作方法。

2. 根据程序结构编写代码,注意运算符的优先级和错误处理等细节。

3. 调试程序,测试功能是否正常。

实验结果和分析:通过实验,我们成功地编写了一个简单的计算器程序,并实现了数值的加减乘除运算。

在调试过程中,我们发现对于除数为0的情况需要进行错误处理,对于输入的数值也需要进行数据校验和类型转换等操作。

总之,计算器程序在实际应用中需要考虑很多细节问题。

实验总结:通过本次实验,我们深入了解了汇编语言的基本语法和运算操作方法,并学会了编写计算器程序。

中南大学 汇编语言实验报告

中南大学 汇编语言实验报告

中南大学汇编语言实验报告计算机原理与汇编实验报告学生姓名学号专业班级指导教师贺建飚学院信息科学与工程学院完成时间 2019年6月实验一二进制转十六进制一、实验目的(1) 掌握循环程序的设计方法。

(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(4) 学会针对不同的问题,选用不同的组织循环的方法。

二、实验要求掌握循环程序的过程和汇编实现原理,进一步熟练掌握DEBUG操作指令以及汇编语言源程序的编辑、汇编、连接及调试过程。

三、实验内容掌握循环排序算法的思想:二进制到十六进制转换程序实验代码如下:assume cs:codecode segmentmain proc farstart: mov bx,[**************]0b ;待转换成十六进制的二进制数 mov ch,4 ;设置循环次数rotate: mov cl,4 ;设置循环左移的位数rol bx,cl ;将bx中的每位依次循环左移4位,;每左移一次,把最高位同时移入CF和操作数最低位mov al,bland al,0fh ;将al高4位清0,保留从rol循环移位到al低四位的值add al,30h ;将4位二进制数转换成对应的ASCII码cmp al,3ah ;判定4位二进制数是否大于9jl printadd al,7hprint: mov dl,al ;调用中断程序输出单个字符mov ah,2int 21hdec ch ;继续循环,直到循环4次为止jnz rotatemain endpmov ax,4c00hint 21hcode endsend四、实验结果DEBUG调试如下:五、实验心得编了这个程序之后发现,想要真正理解一个程序都是需要掌握众多助记符的用法以及它的意思,只有了解并明白了这些之后才可以分析程序或者是编写简单的小程序。

实验二起泡排序算法的程序实现一、实验目的(1)掌握循环程序的设计方法。

中南大学汇编语言实验二

中南大学汇编语言实验二

实验2实验学时: 2 实验地点:二综实验日期:一、实验目的掌握汇编编程规范,熟悉编程环境。

二、实验内容DA TAS SEGMENTdb "welcome to masm"DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXmov ax,0b800hmov es,axmov bx,7b4hmov si,0mov cx,7s0: ;显示welcomemov al,ds:[si]mov es:[bx],almov es:[bx+1],02hadd bx,2inc siloop s0add bx,2inc simov cx,2s1: ;显示tomov al,ds:[si]mov es:[bx],almov es:[bx+1],24hadd bx,2inc siloop s1add bx,2inc simov cx,4s2: ;显示masmmov al,ds:[si]mov es:[bx],almov es:[bx+1],71hadd bx,2inc siloop s2s: ;为了显示,我这边做个死循环jmp short sMOV Ax,4CH ;这边去掉我所谓INT 21HCODES ENDSEND START编程:参考教材实验9,在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串’welcome to masm’。

三、实验步骤算法及关键代码DA TAS SEGMENTdb "welcome to masm"DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXmov ax,0b800hmov es,axmov bx,7b4hmov si,0mov cx,7s0: ;显示welcomemov al,ds:[si]mov es:[bx],almov es:[bx+1],02hadd bx,2inc siloop s0add bx,2inc simov cx,2s1: ;显示tomov al,ds:[si]mov es:[bx],almov es:[bx+1],24hadd bx,2inc siloop s1add bx,2inc simov cx,4s2: ;显示masmmov al,ds:[si]mov es:[bx],almov es:[bx+1],71hadd bx,2inc siloop s2s: ;为了显示,我这边做个死循环jmp short sMOV Ax,4CH ;这边去掉我所谓INT 21HCODES ENDSEND START四、实验小结(简单说明实验过程中出现的问题和解决方法)。

中南大学——机构创意组合实验报告

中南大学——机构创意组合实验报告

实验机构创意组合实验
一、实验目的。

1、加深学生对平面机构的组成原理认识,进一步了解机构组成及运动特性。

2、训练学生的工程实践动手能力,培养学生创新意识及综合设计的能力。

二、仪器设备。

ZBS-C平面机构创意组合分析测试实验台。

三、机构运动简图。

四、计算机构的自由度(列出算式,并給出答案)。

解:活动构件数=5,低副P L=6,高副P H=2, 无虚约束。

F =3n-2P L-P H=3×5-2×6-2=1
即机构的自由度为1
五、指出在机构中自己有所创新之处。

答:创新之处在于,在不改变齿轮部分和凸轮部分的前提下,通过改变杆的长度,以满足杆长条件,并将最短杆从与凸轮通过高副接触的地方换成另一个连架杆的地方。

从而将之前留下来的双摇杆机构变成曲柄摇杆机构。

六、指出机构的设计存在的不足之处,简述进一步改进的设想。

答:不足之处:由于提供的杆的长度有限制,难以轻松的满足杆长条件,再加上受上课时长的限制,所以未将曲柄摇杆机构组合成功。

改进设想:由于有一处连架杆是通过与凸轮高副连接,不好做周转运动,可以考虑将其与齿轮作用,再通过设置最短杆的位置以及满足杆长条件,从而将双摇杆机构变成双曲柄机构。

中南大学 通信原理实验报告20121212汇总

中南大学 通信原理实验报告20121212汇总

中南大学通信原理课程设计报告学院:信息科学与工程学院电子信息班级:通信 20121212 学号: 2012121212姓名: 123321 指导老师:肯定是咋们铁道学院的老师了你完成时间: 2012年2月12号 12点12分12秒目录一、《硬件实验》1、实验三《模拟锁相环与载波同步》 (4)2、实验五《数字锁相环与位同步》 (9)3、实验六《帧同步》 (15)4、实验七《时分复用数字基带通信系统》 (18)二、《软件设计实验》1、实验目的 (23)2、实验基本要求 (23)3、实验原理分析 (23)4、仿真程序代码及分析 (26)5、波形图结果显示 (30)6、心得体会 (33)7、参考文献 (33)《一》硬件实验实验三:模拟锁相环与载波同步一、实验目的1. 掌握模拟锁相环的工作原理,以及环路的锁定状态、失锁状态、同步带、捕捉带等基本概念。

2. 掌握用平方环法从2DPSK信号中提取相干载波的原理及模拟锁相环的设计方法。

3. 了解相干载波相位模糊现象产生的原因。

二、实验内容1. 观察模拟锁相环的锁定状态、失锁状态及捕捉过程。

2. 观察环路的捕捉带和同步带。

3. 用平方环法从2DPSK信号中提取载波同步信号,观察相位模糊现象。

三、基本原理通信系统中常用平方环或同相正交环(科斯塔斯环)从2DPSK信号中提取相干载波。

本实验系统的载波同步提取模块用平方环,原理方框图如图3-1所示,电原理图如图3-2所示(见附录)。

模块内部使用+5V、+12V、-12V电压,所需的2DPSK输入信号已在实验电路板上与数字调制单元2DPSK输出信号连在一起。

下面介绍模拟锁相环原理及平方环载波同步原理。

锁相环由鉴相器(PD)、环路滤波器(LF)及压控振荡器(VCO)组成,如图3-3所示。

图3-3 锁相环方框图模拟锁相环中,PD是一个模拟乘法器,LF是一个有源或无源低通滤波器。

锁相环路是一个相位负反馈系统,PD检测ui(t)与uo(t)之间的相位误差并进行运算形成误差电压ud(t),LF用来滤除乘法器输出的高频分量(包括和频及其他的高频噪声)形成控制电压uc(t),在uc(t)的作用下、uo(t)的相位向ui(t)的相位靠近。

组成原理实验报告

组成原理实验报告

一、实验目的1. 理解计算机组成原理的基本概念和原理。

2. 掌握计算机硬件各模块的功能和相互关系。

3. 培养动手实践能力,提高对计算机硬件的认识。

二、实验内容1. 计算机硬件系统组成2. 中央处理器(CPU)的结构与功能3. 存储器系统组成与工作原理4. 输入/输出系统组成与工作原理5. 总线系统组成与工作原理三、实验步骤1. 计算机硬件系统组成(1)观察计算机硬件系统,了解各模块的名称和功能。

(2)分析各模块之间的相互关系,理解计算机硬件系统的整体结构。

2. 中央处理器(CPU)的结构与功能(1)观察CPU模块,了解其内部结构。

(2)分析CPU的各个部件,如寄存器、控制器、算术逻辑单元(ALU)等的功能。

(3)理解CPU的工作原理,包括指令的获取、译码、执行和存储等过程。

3. 存储器系统组成与工作原理(1)观察存储器模块,了解其内部结构。

(2)分析存储器的基本单元,如RAM、ROM等的功能和特点。

(3)理解存储器的工作原理,包括地址译码、数据读/写等过程。

4. 输入/输出系统组成与工作原理(1)观察输入/输出模块,了解其内部结构。

(2)分析输入/输出设备的类型和功能,如键盘、鼠标、显示器等。

(3)理解输入/输出系统的工作原理,包括数据传输、控制信号等过程。

5. 总线系统组成与工作原理(1)观察总线模块,了解其内部结构。

(2)分析总线的类型和功能,如地址总线、数据总线、控制总线等。

(3)理解总线系统的工作原理,包括数据传输、同步信号等过程。

四、实验结果与分析1. 计算机硬件系统组成实验结果显示,计算机硬件系统由CPU、存储器、输入/输出设备和总线等模块组成,各模块之间相互配合,共同完成计算机的运行。

2. 中央处理器(CPU)的结构与功能实验结果显示,CPU由寄存器、控制器和ALU等部件组成,负责指令的获取、译码、执行和存储等过程。

3. 存储器系统组成与工作原理实验结果显示,存储器由RAM、ROM等基本单元组成,负责数据的存储和读取。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机组成原理与汇编实验报告专业班级信息安全1202班姓名学号 0909122824指导教师贺建彪2014.6.10汇编语言实验一一、实验原理根据要求将BX内容从左到右每4位一组在屏幕上显示出来,利用循环结构完成,每次循环显示一个十六进制数位,因而循环次数是已知的,计数值为4.循环体中包括从二进制到所显示字符的ASCII之间的转换,以及每个字符的显示,后者可以使用DOS功能调用实现。

这里采用了循环移位的方法把所要显示的4为二进制数移到最右面以便做数字到字符的转换工作。

二、实验目的(1)掌握循环程序的设计方法(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(4)学会针对不同的问题,选用不同的组织循环的方法。

三、实验内容'二进制到十六进制转换程序源代码:assume cs:codecode segmentmain proc farstart: mov bx,1111000110101001b ;待转换成十六进制的二进制数 mov ch,4 ;设置循环次数rotate: mov cl,4 ;设置循环左移的位数rol bx,cl ;将bx中的每位依次循环左移4位,;每左移一次,把最高位同时移入CF和操作数最低位mov al,bland al,0fh ;将al高4位清0,保留从rol循环移位到al低四位的值add al,30h ;将4位二进制数转换成对应的ASCII码cmp al,3ah ;判定4位二进制数是否大于9jl printadd al,7hprint: mov dl,al ;调用中断程序输出单个字符mov ah,2int 21hdec ch ;继续循环,直到循环4次为止jnz rotatemain endpmov ax,4c00hint 21hcode endsend start四、实验结果五、实验心得初次熟悉了debug用法,正在学习摸索中。

汇编语言实验二一、实验原理冒泡排序算法需要从第一个数开始依次对相邻两个数进行比较。

如果是按次序排列,则不做任何操作;如不是按次序排列,则使两个数交换位置。

一层一层往上冒泡。

二、实验目的(1)掌握循环程序的设计方法(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(4)学会针对不同的问题,选用不同的组织循环的方法。

三、实验内容起泡排序算法的程序实现源代码:assume ds:datadata segmenta dw 5,84,16,32,8data endscode segmentstart:mov ax,datamov ds,axmov cx,8dec cxlop1:push cxmov dx,0mov si,0lop2:mov bp,a[si]cmp bp,a[si+2]jnb go_onxchg bp,a[si+2]mov a[si],bpmov dx,1 ;标志位go_on:add si,2loop lop2pop cxcmp dx,0jz overloop lop1over:mov ax,4c00hint 21hcode endsend start四、实验结果五、实验心得在做第一遍(n+1)次比较后最小的数已经放在最后,所以第二遍比较只需要考虑(n-1)个数即只需要比较(n-2)次。

第三遍则只需要做(n-3)次比较......总共最多(n-1)遍比较就可以完成排序。

汇编语言实验三一、实验原理程键入关键字,若匹配则显示yes ,match,否则显示oh! no match !二、实验目的(1)掌握循环程序的设计方法(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(4)学会针对不同的问题,选用不同的组织循环的方法。

三、实验内容查找匹配字符串源代码:data segmentmessage1 db 'please input the sentance.',13,10,'$'message2 db 'please input the key word',13,10,'$'message3 db 'yes ,match',13,10,'$'message4 db 'oh! no match !',13,10,'$'seg1 db 50,?,50 dup(?)seg2 db 30,?,30 DUP(?)data endscode segmentassume cs:code,ds:data,es:datastart:mov ax,datamov ds,axmov es,axmov dx,offset message1mov ah,09hint 21hmov dx,offset seg1mov ah,0ahint 21hmov dx,offset message2mov ah,09hint 21hmov dx,offset seg2mov ah,0ahint 21hmov ax,offset seg1mov bx,offset seg2mov cx,[ax+1] ; 初步设定cx的外部循环的次数add ax,2mov si,ax;将si指向输入字符的头add bx,2push bx;保存这个指针,后面会用到mov di,bx;将di指向key的头cld ;比较方向为正L2: mov ax,cx ;保存外部的cx值mov cx,[bx-1] ;将key的长度给cx,来进行比较repe cmpsb ;字符比较jz L1 ;若比较完的时候发现相等zf=1,就表示匹配inc si; 要是每次比较完不相等zf=0,就将si下移pop di; 将di重新指向key的开始push di;并将di保存,瑕疵使用mov cx,ax ;将外部cx的值重新拿出来cmp cx,[bx-1] ;比较剩下的长度是否比key的还短jb L4 ;长度短于就直接输出不匹配loop L2 ;回去并重新开始L4: mov dx,offset message4mov ah,09hint 21hjmp L3 ;输出不匹配,并退出L1: mov dx,offset message3mov ah,09hint 21h ;输出匹配L3: mov ah,04chint 21hcode endsend start四、实验心得应该注意单个字符时的“边缘”情况因为,这是指针的移动和关键字的长度是一致的,但是这并不意味着,两个字符串匹配。

汇编语言实验四一、实验原理调用FIB函数求Fibonacci数,结果高位存在RESULT2H,低位存在RESULT2L,最后调用OUTPUT函数将结果以十进制的形式显示出来。

二、实验目的(1)掌握循环程序的设计方法(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(4)学会针对不同的问题,选用不同的组织循环的方法。

三、实验内容求Fibonacci递归数ASSUME CS:CODE,DS:DA TADA TA SEGMENTBUFF DB 10DB ?DB 10 DUP(?)RESULT DW ?RESULT_SHOW DB 10 DUP(?)DA TA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXLEA DX,BUFFMOV AH,0AHINT 21HMOV DI,0L0: ;统计一共有多少个数字组成CMP BYTE PTR DS:[DI+2],0DHJZ GOINC DIJMP L0GO: ;计算第n个斐波那契数,把数字字符串转换为十进制数MOV BL,10MOV AX,1MOV SI,DI ;为后面判断输入的是不是只输入一个数有用MOV CX,DIL2: PUSH AXSUB BYTE PTR DS:[DI+1],30HMUL BYTE PTR DS:[DI+1]ADD RESULT,AXPOP AXMUL BLDEC DILOOP L2;分两种情况:1.输入的是1;2.输入的不是1CMP SI,1JNZ L7CMP BYTE PTR RESULT,1JNZ L7MOV AX,RESULTJZ L4L7: MOV AX,1MOV BX,0MOV CX,RESULTDEC CXL3: ;第n个斐波那契数存放到AX中PUSH AXADD AX,BXPOP BXLOOP L3L4:;显示这个斐波那契数MOV DX,0LEA SI,RESULT_SHOWMOV DI,0 ;利用DI来累计一共有多少个数字L5:MOV CX,10CALL DIVDWADD CL,30HMOV DS:[SI],CLCMP AX,0JZ L6INC SIINC DIJMP L5L6:MOV DL,DS:[SI]MOV AH,2INT 21HCMP DI,0JZ OKDEC SIDEC DIJMP L6OK:MOV AX,4C00HINT 21H;参数:(AX)=DWORD型低16位数据; (DX)=DWORD型高16位数据; (CX)=除数;返回:(DX)=结果的高16位,(AX)=结果的低16位; (CX)=余数;32位除16位,可以防止溢出!DIVDW: ;子程序定义开始,功能是分离各个数字出来PUSH AXMOV AX,DXMOV DX,0DIV CXMOV BX,AXPOP AXDIV CXMOV CX,DXMOV DX,BXRET ;子程序定义结束CODE ENDSEND START四、实验心得初步熟悉了递归的使用,还需进一步学习。

汇编语言实验五一、实验原理写三个逻辑判断,数字字符判断,大写字母字符判断,小写字母字符判断。

对相应字符的个数进行统计。

在实现每一个逻辑判断时,用了两个判断指令:一个判断是否大于或等于该类型字符的最小ASCII码的字符,另一个判断是是否小于或等于该类型字符的最大ASCII 码的字符。

二、实验目的(1)掌握循环程序的设计方法(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(4)学会针对不同的问题,选用不同的组织循环的方法。

三、实验内容分类统计字符个数源代码:DA TAS SEGMENTSTRING1 DB 'Input Your String: $';输入提示信息STRING2 DB 'Digit: $' ;各类字符提示信息STRING3 DB 'UpAlpha: $'STRING4 DB 'LowAlpha: $'STRING5 DB 'Others: $'DIGIT DB 0 ;数字ALPHAU DB 0 ;大写字母ALPHAL DB 0 ;小写字母OTHERS DB 0 ;其他DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,STRING1 ;显示输入提示信息MOV AH,9INT 21HMOV CX,100 ;设置循环次数主够大L1:MOV AH,1 ;中断调用,单字符输入INT 21HCMP AL,0DH ;若输入回车符则结束JZ OVER2CMP AL,30HJB OTHER ;若<30H(0),OTHERS++CMP AL,39H ;若>39H(9),跳转进一步比较JA HIGHER1JMP DIGITAL ;DIGIT++HIGHER1:CMP AL,41H ;if<41H(A),OTHERS++JB OTHERCMP AL,5AH ;if>5AH(Z),跳转继续比较JA HIGHER2JMP UALPHA ;ALPHAU++HIGHER2: CMP AL,61H ;if<61H(a),OTHERS++JB OTHERCMP AL,7AH ;if>7AH(z),OTHERS++JA OTHERJMP LALPHA ;ALPHAL++JMP OVER ;比较结束OTHER:INC OTHERS ;OTHERS++JMP OVERDIGITAL:INC DIGIT ;DIGIT++JMP OVERLALPHA:INC ALPHAL ;ALPHAL++JMP OVERUALPHA:INC ALPHAU ;ALPHAU++JMP OVEROVER:NOPLOOP L1 ;循环,输入下一字符OVER2:CALL ENDLINE ;回车换行LEA DX,STRING2 ;输出提示信息MOV AH,9INT 21HXOR AX,AXMOV AL,DIGIT ;将统计的数字送AX,为输出做准备CALL DISPLAY ;调用输出两位数字的子程序CALL ENDLINE ;下同LEA DX,STRING3MOV AH,9INT 21HXOR AX,AXMOV AL,ALPHAUCALL DISPLAYCALL ENDLINELEA DX,STRING4MOV AH,9INT 21HXOR AX,AXMOV AL,ALPHALCALL DISPLAYCALL ENDLINELEA DX,STRING5MOV AH,9INT 21HXOR AX,AXMOV AL,OTHERSCALL DISPLAYMOV AH,4CHINT 21HENDLINE PROC NEAR ;控制输出格式,输出回车换行子程序MOV AH,2MOV DL,0AHINT 21HMOV AH,2MOV DL,0DHINT 21HRETENDLINE ENDPDISPLAY PROC NEAR ;输出两位数字的子程序MOV BL,10 ;10送BLDIV BL ;AX/BL,AL=商,AH=余数PUSH AX ;保存AX中的信息MOV DL,ALADD DL,30HMOV AH,2INT 21H ;输出十位数POP AX ;出栈送AXMOV DL,AHADD DL,30HMOV AH,2INT 21H ;输出个位数RETDISPLAY ENDPCODES ENDSEND START四、实验结果五、实验心得汇编的输出都是“字符”,也就是说要想输出两位数字必须做一点处理,将它转换为相应的字符“一个一个”地输出。

相关文档
最新文档