微机实验三 串操作
微机实验操作步骤

微机实验操作步骤1.检查实验箱串口是否和计算机串口COM1(有的计算机有两个COM口,请注意识别)相连,连接是否紧密,如果连接不紧密,请先关闭实验箱电源,如果已经检查无误,进入步骤2。
2.关闭实验箱电源,按照实验指导书的连线说明把连线连接好(连线前请先看清楚实验箱区域布局图),把线连接完毕后,再打开实验箱电源(主电源位于实验箱箱体右侧,电路板上的电源控制模块位于电路板右上角。
),进入步骤3(注意:实验箱电源处于打开状态时,不能做接线或者拆线动作!)。
3.实验箱通电后,箱上中部下方的液晶屏出现两排方形黑色框框,表明实验箱没有启动,这时需要按实验箱的按钮S01(该按钮位于液晶屏上方文字“中断模块”的上方,如下图),按下不放若干秒后松开,松开稍等,液晶屏会有英文提示出现,表明实验箱开始初始化,如果液晶屏没有变化,重复按S01,直到液晶屏出现英文提示后进入步骤4。
4.等待液晶屏显示提示字符串:“NOW COM IS STANDBY!”,然后再打开联机程序“湖北众友”(在没有出现“NOW COM IS STANDBY!”字样的时候,请先关闭联机程序)5.联机程序启动后,出现以下窗口,直接按确定按钮即可!6.如果出现以下窗口:说明以上某一步骤发生错误,这时,应该关闭实验箱电源,同时关闭联机软件,跳回步骤1进行重新操作!如果没有出现以上窗口,程序将进入汇编编程环境,说明硬件连接以及以上步骤都没有问题,可以进行输入汇编语言的工作。
7.在保存汇编程序的时候,应注意文件名不能用中文&空格,只能用英文、数字以及下划线组成的不超过8个字符的名字,并且文件的全路径不能含有中文&空格。
8.文件成功保存后,先执行【编译】、【编译、连接】,【编译、连接、装载】三个步骤。
如图:9.如果上述的【编译】、【编译、连接】,【编译、连接、装载】三个步骤都没有问题,那么将显示如下窗口:10.转载成功后,计算机已经把程序装载进实验箱上的芯片了,但程序还没有开始运行,需要按绿色的“全速运行”按钮控制实验箱开始运行程序。
微机原理实验三实验报告

实验3. 循环程序设计一、实验目的⒈掌握移位指令的使用方法。
⒉学会循环结构程序的编程方法。
⒊利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。
二、实验要求⒈编写程序并上机调试,记录运行结果。
⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。
)⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对循环程序的概念的理解。
三、实验内容⒉编写统计15个学生数学学习成绩程序。
要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。
源程序代码;DATA SEGMENTDATA1 DB 55,60,65,88,67,70,75,80,77,85,90,66,95,53,100DATA2 DB 5 DUP(?)DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15LEA SI,DATA1LEA DI,DATA2AGAIN:MOV AL,[SI]CMP AL,90JB NEXT1INC BYTE PTR[DI]JMP NEXT0NEXT1:CMP AL,80JB NEXT2INC BYTE PTR[DI+1]JMP NEXT0NEXT2:CMP AL,70JB NEXT3INC BYTE PTR[DI+2]JMP NEXT0NEXT3:CMP AL,60JB NEXT4INC BYTE PTR[DI+3]JMP NEXT0NEXT4:INC BYTE PTR[DI+4]NEXT0:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。
微机原理实验操作步骤:微机原理实验联机运行步骤

微机原理实验联机运行步骤
1、开机进入DV88系统;
2、结合电路图并按实验内容正确连线;
3、用数据线连接计算机与试验箱;
4、打开程序;
5、按复位键(试验箱)后机箱显示“P.”,再按PCDBG
键(试验箱);
6、点击联接(计算机),随后点击一下屏幕中间的任意位
置;
7、再点击编译(计算机),若有错误则改正程序;
8、继续点击调试(计算机);
9、最后点击运行(此时屏幕显示OK),查看并记录运行
结果;
10、按复位键(试验箱),再按PCDBG键(试验箱),并
点击OK(计算机)退出实验。
查看存储器内容步骤:在实验步骤6后面,用右键点击数据窗口,然后输入要查看的地址,会显示相应地址下的内容。
计算机基础实验

实验一微机的基本操作一、实验目的1.学习正确启动与关闭计算机;2.了解计算机系统的硬件组成,熟练掌握主机、显示器、键盘和鼠标的连接操作;3.了解计算机当前所使用的为何种操作系统;4.了解键盘的布局,熟悉键盘的使用及基本指法;5.掌握鼠标的操作。
二、预备知识1.微机使用一般常识(1)计算机开机原则:首先打开外部设备的电源开关,再打开主机开关。
由于我们所使用的计算机一般都会连接显示器这个外部设备,所以我们开机时,先开显示器的开关,再开主机的开关,等候计算机启动就可以了。
(2)当微机接通电源时,绝对不允许带电插拔外部设备(键盘、鼠标、显示器信号线等、热插拔设备如U盘除外),必须时要先关断电源、再进行设备连接操作。
(3)不要频繁开关计算机。
关机后不要Array立即开机,要等待大约30秒后方可进行。
(4)计算机关机原则:与开机顺序相反,首先关闭主机开关,再关闭外部设备开关。
当我们上机结束时,如果想关闭计算机,由于计算机使用的是Windows操作系统,所以不能采用直接关闭计算机电源开关的方法关机。
在Windows状态下关闭计算机的正确方法是:使用鼠标单击【开始】菜单,选择【关闭计算机】,实验图1关闭Windows对话框打开如实验图1所示的对话框。
在此处如点击待机则可进入低耗电能的等待状态;点击关闭将关闭Windows,然后切断计算机的电源;点击重新启动则重新启动Windows。
2.鼠标鼠标是Windows下的主要控制、输入设备。
用于控制屏幕上的光标随着鼠标器的移动而移动,光标和鼠标器的移动方向是一致的,而且与移动的距离成正比例。
在Windows系统系统中,用户可以使用鼠标进行指针移动、单击、双击、拖动、选定等操作。
实验表1 鼠标基本操作3.软盘的使用及注意事项(1)软磁盘的使用插入时要注意正面朝上且方向正确,不要用力强推,以防损坏。
(2)软磁盘使用的注意事项:防磁、防折、防尘、防划、防潮湿等。
当磁盘读写时(读写指示灯亮且有读写声)不要插入或取出磁盘。
实验三 查表及串操作(信计)

实验三串操作及查表一、实验目的:掌握串操作及查表程序设计的方法,学会编写串操作及查表程序。
二、实验题目:题目一:(题6.8)编写程序,将字符串STING1的内容复制到字符串STRING2中。
要求由子程序来实现字符串的复制,并采用寄存器来传递参数。
编程要求:1)根据功能正确切分程序,并根据题意画流程图,将主程序和子程序分别画,使得程序思路清晰,便于根据流程图编写汇编程序。
2)在编写子程序后,要对子程序说明,子程序说明是为了更好的使用子程序,便于别人使用该子程序时了解子程序的功能和调用方法,子程序说明应包括:子程序名、功能、入口参数、出口参数、执行时间等。
3)在子程序中用到的寄存器,在执行子程序之前应保存,以免破坏子程序以外的信息,执行完子程序再恢复原有信息。
编程提示:参考例题:例5-151)串传送时采用串传送指令REP MOVSD。
2)用寄存器传递的参数:字符串STRING1和STRING2的首地址,字符串STRING1的长度。
程序代码:DATA SEGMENTSTRING1 DB 'duxuejie'STRING2 DB ?N EQU($-STRING1)/4DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,NCLDMOV SI,OFFSET STRING1MOV DI,OFFSET STRING1MOV AX,DSMOV ES,AXMOV SI,OFFSET STRING1MOV DI,OFFSET STRING1MOV CX,NCLDREP MOVSWMOV AX,4C00HINT 21HCODE ENDSEND START程序结果截图思考题:1)串传送时采用串传送指令REP MOVSD,因此在使用该指令之前要设置?2)传递参数还可以用什么方法?请修改程序。
实验三串基本操作的编程实现

实验三串基本操作的编程实现【实验目的】内容:串基本操作的编程实现要求:串基本操作的编程实现(2学时,验证型),掌握串的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、合并、剪裁等操作,存储结构可以在顺序结构或链接结构、索引结构中任选,也可以全部实现。
也鼓励学生利用基本操作进行一些应用的程序设计。
【实验性质】验证性实验(学时数:2H)【实验内容】字符串用常规的顺序存储法来存储,实现常用的功能。
自己编程模式:开发一个程序,用来统计文件中各种信息,如字符个数,行数等。
修改程序模式:将下面程序空白的地方填空。
程序检查模式:将本文件夹中的程序运行后总结相关功能。
【思考问题】1. 字符串的顺序存储和链表存储的差异2. 在字符串处理方面主要有什么操作3. 字符串的操作的主要特点是什么4. 举出几个字符串的应用范例【参考代码】立顺序串(仅限单行的字符串,建议不用汉字。
)"<<endl;cout<<"2. 显示串"<<endl;cout<<"3. 修改串"<<endl;cout<<"4. 插入串"<<endl;cout<<"5. 删除串"<<endl;C 语言中是如何实现字符串的cout<<"6. 查找串"<<endl; cout<<"7. 求串长度"<<endl;cout<<"8. cout<<"——结束程序"<<endl; : ---------- "<<e ndl;}int mai n(){int flag=O,return value,positi on, begi npositi on,en dpositi on ,le ngth;char choice,choose ,n ewstr[maxsize];string newstring;menu();while(1){cout<<"请输入选择:";cin> >choice;switch(choice){case '1':if(flag){cout<<"数据已存在,是否覆盖(y/n)";cin> >choose;if(choose=='N'||choose==' n')cout<<"数据没有发生更改!"<<endl; break;}if(choose=='Y'||choose=='y'){retur nvalue=();if(retur nvalue==success)cout<<"创建成功!"<<endl;flag=1;}elsecout<<"输入错误!"<<endl;}else{returnvalue=();if(retur nvalue==success)cout<<"创建成功!"<<endl;flag=1;}break;case 2:if(flag==0)cout<<"请先建立串!"<<endl;else();break;case 3:if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要修改的初始位置:";cin> >beg in positi on;cout<<"请输入要修改的终止位置:";cin»en dpositi on;cout<<"请输入修改后的字符串:";cin»n ewstr;retur nvalue=(beg in positi on,en dpositi on,n ewstr);if(retur nvalue==success){cout<<"修改成功!"<<endl;();}if(returnvalue==overflow){cout<<"字符串的最大长度为"<<maxsize<<endl;cout<<"发生溢出,操作失败!"<<endl;}if(returnvalue==ra nge_error)cout<<"位置错误,操作失败!"<<endl;if(returnvalue==empty)cout<<"字符串为空,操作失败!"<<endl;}break;case '4':if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要插入的位置:";cin> >positi on;cout<<"请输入要插入的字符串cin»n ewstr;len gth=strle n(n ewstr);retur nvalue=(positi on,n ewstr,le ngth); if(retur nvalue==success){cout<<"插入成功!"<<endl; ();}if(returnvalue==overflow){cout<<"发生溢出,操作失败!"<<endl; } if(returnvalue==ra nge_error) cout<<"位置错误,操作失败!"<<endl; } break; case '5': if(flag==0) cout<<"请先建立串!"<<endl; else { (); cout<<"请输入要删除的初始位置:"; cin> >beg in positi on; cout<<"请输入要删除的终止位置 :"; cin»en dpositi on; retur nvalue=(beg in positi on,en dpositi on); if(retur nvalue==success) { cout<<"删除成功!"<<endl; (); } if(returnvalue==ra nge_error) cout<<"位置错误,操作失败!"<<endl; cout<<"字符串的最大长度为 "<<maxsize<<e ndl;if(returnvalue==empty)cout<<"字符串为空,操作失败!"<<endl;}break;case '6':if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要查找的字符串:";cin»n ewstr;positi on=(n ewstr);if(positi on>0){cout<<"已找到!"<<endl;cout<<"字符串出现的初始位置为:"<<position<<endl;}if(positi on==0)cout<<"您要查找的字符串不存在!"<<endl;if(positi on==-1)cout<<"字符串为空,操作失败!"<<endl;}break;case '7':v1.0可编辑可修改if(flag==O)cout<<"请先建立串!"<<endl;else{();len gth=();cout<<"当前串的长度为:"<<length<<endl;}break;case 8:exit(0);break;default:cout<<"输入错误!\n";break;}cout<<"按任意键继续..... "<<endl;getch();system("cls");men u();}getch();return 0;}。
微机实验三 串操作

实验三串操作一、实验目的1.熟悉串操作指令的功能。
2.了解串操作指令的使用方法。
二、实验预习要求1.复习8086指令系统中的串操作类指令。
2.按照题目要求在实验前编写好实验中的程序段。
三、实验任务1.输入以下程序段并运行之,回答后面的问题。
CLDMOV DI,1000HMOV AX,55AAHMOV CX,10HREP STOSW上述程序段执行后:(1) 从DS:1000H开始的16个字单元的内容是什么?。
(2) (DI)= ?(CX)= ?,并解释其原因。
2.在上题的基础上,再输入以下程序段并运行之,回答后面的问题。
MOV SI,1000HMOV DI,2000HMOV CX,20HREP MOVSB程序段执行后:(1)从DS:2000H开始的16个字单元的内容是什么?55AAH(2)(SI)=?(DI)=?(CX)= ?,并分析之。
SI=1020H,DI=2020H,CX=0000H3.从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,从DS:2000H开始的内存单元的内容为”gnirts a si sihT”),试编写程序段并上机验证之。
assume cs:code,ds:datasg,ss:stackdatasg segmentdb 'THIS IS A STRING'db 1000 dup(1)datasg endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,datasgmov ds,axmov es,axmov si,0mov di,30cld;rep movsbdmov cx,16tag: CLDLODSBSTDSTOSBLOOP tagmov ax,4c00hint 21hcode endsend start四、实验心得与体会本次实验,我运用了以往所学的知识,实验进行的很顺利,现在越来越能够掌握这门课的精髓了。
实验三串基本操作的编程实现

实验三-串基本操作的编程实现一、实验目的本实验旨在深入理解和掌握串(字符串)的基本操作,包括串的创建、拼接、比较、子串查找等,并通过编程实现这些操作来加深对理论知识的理解。
二、实验内容1.串的创建与拼接2.串的比较3.子串的查找三、实验步骤与实现1.串的创建与拼接在Python中,我们可以使用字符串来创建串。
字符串是不可变的,这意味着我们不能改变字符串中的字符,但我们可以创建一个新的字符串。
拼接两个字符串可以通过加号(+)来实现。
# 串的创建str1 = "Hello"str2 = "World"# 串的拼接str3 = str1 + " " + str2print(str3) # 输出:Hello World2.串的比较在Python中,我们可以使用比较运算符(如==、<、>)来比较两个字符串。
字符串的比较是基于字符的ASCII值来进行的。
# 串的比较str1 = "Hello"str2 = "World"# 比较两个串是否相等if str1 == str2:print("两个串相等")else:print("两个串不相等") # 输出:两个串不相等3.子串的查找在Python中,我们可以使用find方法来查找一个字符串是否包含另一个字符串。
如果找到了子串,它将返回子串在主串中第一次出现的位置的索引;如果没有找到,它将返回-1。
# 子串的查找str1 = "Hello, world!"str2 = "world"# 查找子串的位置index = str1.find(str2)if index != -1:print("子串在主串中的位置是:", index) # 输出:子串在主串中的位置是: 7else:print("没有找到子串")四、实验总结与思考通过本次实验,我们了解了如何使用Python来实现串的基本操作。
计算机原理实验三 微程序控制器实验 操作步骤

3.2 微程序控制器实验3.2.1 实验目的(1) 掌握微程序控制器的组成原理。
(2) 掌握微程序的编制、写入,观察微程序的运行过程。
3.2.2 实验设备PC机一台,TD-CMA实验系统一套。
3.2.3 实验原理微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1所示。
图3-2-1 微程序控制器组成原理框图控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。
微程序控制器的组成见图3-2-2,其中控制存储器采用3片2816的E2PROM,具有掉电保护功能,微命令寄存器18位,用两片8D触发器(273)和一片4D(175)触发器组成。
微地址寄存器6位,用三片正沿触发的双D触发器(74)组成,它们带有清‚0‛端和预置端。
在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。
当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为‚1‛状态,完成地址修改。
S E 1S E 2S E 3S E 4S E 5S E 0图3-2-2 微程序控制器原理图3.2.4 实验步骤1. 按图3-2-10所示连接实验线路,仔细查线无误后接通电源。
如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。
图3-2-10 实验接线图2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。
继电保护实验指导书

实验一三段式电流保护综合实验(微机型)一、实验目的:1.掌握无时限电流速断保护、带时限电流速断保护及过电流保护的电路原理、工作特性及整定原则。
2. 理解输电线路阶段式电流保护的原理图、展开图及保护装置中各继电器的功用。
二、预习与思考:1. 三段式电流保护为什么要使各段的保护范围和时限特性相配合?2. 由指导教师提供有关技术参数,你能对三段式电流保护进行计算与整定吗?3. 为什么在实验中,采用单相接线三段式保护能满足教学要求?4. 三段式保护模拟动作操作前,是否必须对每个继电器进行参数整定?为什么?5.三段式电流保护各段是如何实现选择性的?为什么电流Ⅲ段的动作最灵敏?三、实验仪器与设备:JSY-2000继电保护实验台四、实验原理:1. 电流速断保护原理及整定原则。
2. 限时电流速断保护原理及整定原则。
3.定时限过电流保护原理及整定原则。
4.三段式电流保护的原理。
1)三段式电流保护的构成无时限电流速断只能保护线路的一部分,带时限电流速断只能保护本线路全长,但却不能作为下一线路的后备保护,还必须采用过电流保护作为本线路和下一线路的后备保护。
由无时限电流速断、带时限电流速断与定时限过电流保护相配合可构成的一整套输电线路阶段式电流保护,叫做三段式电流保护。
图1-1 三段式电流保护各段的保护范围及时限配合输电线路并不一定都要装三段式电流保护,有时只装其中的两段就可以了。
例如用于“线路-变压器组”保护时,无时限电流速断保护按保护全线路考虑后,此时,可不装设带时限电流速断保护,只装设无时限电流速断和过电流保护装置。
又例如在很短的线路上,装设无时限电流速断往往其保护区很短,甚至没有保护区,这时就只需装设带时限电流速断和过电流保护装置,叫做二段式电流保护。
在只有一个电源的辐射式单侧电源供电线路上,三段式电流保护装置各段的保护范围和时限特性见图1-1。
XL-1线路保护的第Ⅰ段为无时限电流速断保护,它的保护范围为线路XL-1的前一部分即线路首端,动作时限为t1I,它由继电器的固有动作时间决定。
微机原理实验三逻辑移位指令操作

实验三
实验目的(要求):巩固练习逻辑移位指令,及串操作指令
实验原理:
实验仪器:DEBUG、微型计算机
实验要求:所有实验内容均需抓图说明。
实验内容:
1.练习逻辑及移位指令
2.练习串操作相关指令,掌握指令及重复前缀的使用规则
3.完成课后习题3-13(编写出程序片段)
(附加阅读)写出完整汇编源程序,对字符串进行操作时,确定它的长度。
要求以或$作为字符串结束标志。
(提示)-----计算串长的子程序-----
STRLEN PROC
LEA DI,STRING
MOV CX,0FFFFH ;(CX)=-1
MOV AL,CR ;(AL)=0DH
MOV AH,’$’;(AH)=24H
CLD ;DF=0
AGAIN: INC CX ;串长加1,初始值(CX)=0 CMP CX,100H
JAE DONE ;串长>255,则结束
CMP [DI],AH ;本字符是’$’?
JE DONE ;是,则结束
SCASB;本字符是CR?
JNE AGAIN ;未找到,返回继续
DONE: MOV LENGTH1,CX ;找到,LENGTH1←串长RET ;返回主程序
STRLEN ENDP。
微机原理实验四串操作指令

实验四串操作指令程序实验一、实验目的1. 熟悉五种串操作指令的功能,会编写常用的串操作应用程序。
2. 会使用DEBUG 命令查看串操作运行的结果。
二、实验环境1. 硬件:PC 微机2. 软件:Masm for Windows 汇编集成开发环境三、实验讲义串指连续存放在存储器中的一些数据字节、字或者双字。
串操作允许对程序连续存放的数据块进行操作。
这是唯一一种可以从存储器到存储器的指令。
源串一般存放在数据段,偏移地址由SI 指定;目标串必须在附加段,偏移地址由DI 指定。
在每次进行串操作后,SI 和DI 两个指针会自动修改。
修改的是增量方向还是减量方向由标志位DF 决定,DF=0 为增量操作,DF=1 为减量操作。
CX 中存放的是数据块的长度,可在CX 前加重复前缀标志,对串进行连续操作。
执行串指令之前,一般先进行如下操作:源串首地址(末地址)→ SI目的串首地址(末地址)→ DI串长度→ CX建立方向标志DF1. 重复前缀标志助记符判断条件说明REP CX 0 CX=CX-1,若CX 0 则重复REPE 或REPZ CX 0 且ZF=1 CX=CX-1,若CX 0 且ZF=1 则重复REPNE 或REPNZ CX=0 且ZF=0 EX=CX-1,若CX 0 且ZF=0 则重复2. 方向标志指令方向标志由标志位DF 决定,有CLD 和STD 两种指令。
CLD 将DF 置0,地址为增量操作。
STD 将DF 置1,地址为减量操作。
3. 串传送指令格式: [REP] MOVS DESTS, SRCS[REP] MOVSB/ MOVSW / MOVSD功能:将DS:SI 中的源串数据传送到ES:DI 规定的目的串单元中。
加重复前缀REP 可实现连续存放的数据块的传送。
例1:将源串中前三个字节的数据传送到目的串。
源串在数据段(DATAS)中,存放在SRC 单元中;目的串在附加数据段(EDATAS)中,存放在DEST 单元中。
微机原理实验指导书

实验一数据传送实验目的:1.熟悉8086指令系统的数据传送指令及8086的寻址方式。
2.利用TurboDebugger调试工具来调试汇编语言程序。
实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。
练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。
压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。
3.指出下列指令的错误并加以改正,上机验证之。
(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。
(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。
试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
实验三串操作实验微机原理与接口技术

2.完善以下程序,将数据段的sbuf指示的“Hello world!”字符串传送到数据段的dbuf 缓冲区。
要求在Turbo Debugger中调试该程序,数据区如下图所示。
DSEG SEGMENTsbuf DB 'Hello world!','$'dbuf DB13 dup(0) ;定义了13个字节的0DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXMOV ES, AXMOV CX, 0DHMOV SI,OFFSET sbufMOV DI,OFFSET dbufCLDREP movsbLEA DX,dbuf ;取有效地址指令lea 将存储器地址送到一个寄存器MOV AH,09HINT 21HMOV AH,4CHINT 21HCSEG ENDSEND START3.用简化段定义的源程序格式改写以上汇编语言源程序。
.model small.stack.datasbuf db 'Hello world!','$'dbuf DB 13 dup(0).codestart: mov ax,@datamov ds,axmov es, axmov cx, 0dhmov si,offset sbufmov di,offset dbufcldrep movsblea dx,dbufmov ah,09hint 21hmov ah,4chint 21hend start4.从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,从DS:2000H开始的内存单元的内容为”gnirts a si sihT”),试编写程序段并上机验证(将结果截图)。
assume cs:code,ds:datasg,ss:stackdatasg segmentdb 'THIS IS A STRING'db 1000 dup(1)datasg endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,datasg实验内容与实验结果mov ds,axmov es,axmov si,0mov di,30cldrep movsbmov cx,16tag: CLDLODSBSTDSTOSBLOOP tagmov ax,4c00hint 21hcode endsend start5.用简化段定义的源程序格式编写一个汇编语言源程序。
西安交大微机原理实验三循环程序的设计

实验三循环程序的设计一、实验目的1.掌握提示信息的使用方法和从键盘键入信息的用法2.掌握循环程序的设计方法二、实验内容编写程序,从键盘分别键入两个字符串,进行比较,若相同,则显示“MATC”H,否则,显示“NOMATC”H 。
三、实验原理强迫cpu 重复执行一指令序列的程序结构是循环程序。
循环程序结构分四部分:1、初始化部分2、循环处理部分3、循环控制部分4、结束部分。
四、程序代码CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1 DB'INPUT STRING1:',0DH,0AH,'$'MESS2 DB'INPUT STRING2:',0DH,0AH,'$'MESS3 DB'NO MATCH',0DH,0AH,'$'MESS4 DB'MATCH',0DH,0AH,'$'MAXLEN1 DB 81 ACTLEN1 DB ?STRING1 DB 81 DUP(?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP(?)DATA ENDSSTACK SEGMENT PARA STACK 'STACK'STA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV DX,OFFSET MESS1 MOV AH,09HINT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN1 INT 21HCRLFMOV DX,OFFSET MESS2 MOV AH,09HINT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN2 INT 21HCRLFMOV SI,OFFSET ACTLEN1 MOV BX,OFFSET ACTLEN2 MOV AL,[SI]CMP AL,[BX]JNE NOMA NOMATCH: MOV CX,[SI] AND CX,0FHNEXT:INC SIINC BXMOV AL,[SI]CMP AL,[BX]JNE NOMADEC CXCMP CX,0JNE NEXTMOV AH,09HMOV DX,OFFSET MESS4 INT 21HJMP DENDNOMA:MOV AH,09HMOV DX,OFFSET MESS3 INT 21HDEND:MOV AX,4C00HINT 21HEND START五、头验调试过程 1•调试字符串输入功能在edit 中输入代码,编译、链接后,用debug 的-u 命令反汇编生成的可执行文件 shiyan3.exa 首先调试字符串输入是否正确,设置断点如下所示:110778:0000 B06AG? MOU AX P G?6A U778:00G8 BED8 MOU DS, AX 077G :0GQ5 8EC0 ruu ES.AXGT?78:0OGV B88O07 MOU AX P 6?B00778: 0O0A BED0 rou SS,AX 0778:0OGC BC3Z0O MOU SF,G0QZ 0778:0OGF BAO0GG MOU DX.0000 Qf?78:001Z B409 MQU AH.09 0778:0614 CDZ1 IHT Z1 0778:0016 B4GA MOU AH (0A O7?a :O0ia BA35O0 MOU DX R6035 0778:001® CDZ1 IHT 21 O77O :0O1D B402 MOU AH 题 Q7?0: Q01T B20D MOU DLpOD -g43INPUT STHING1: xjtuINPUT 31H1INGZ : bjtuAX=0£GA BX=0OGG CX=0158 DX=O0GA SF=003ZBF=0O0G SI=0000 DI=0000DS=076A ES=G76A SS=O70e CS=Q776 IF=0GH3MU UP El PL HZ NA FO NC阴76:0643 EE3606MOUSI ,0036用-d 命令查看如下以上说明字符串输入部分工作正常。
实验三 串类型及操作

实验三串类型及操作1、实验目的(1)理解和掌握串的类型定义方法;(2)掌握串的定长顺序存储结构和堆分配存储结构;(3)掌握串的基本操作;2、实验内容(1)编程实现在串s中下标为pos的字符之前插入串t。
串的存储结构采用定长顺序存储,表示如下:#define MAXLEN 40typedef struct { /*串结构定义*/char ch[MAXLEN];int len;}SString;串的生成和输入代码可参考如下:void createstring(SString *s){i nt i,j;c har c;p rintf("请输入要建立的串的长度:");s canf("%d",&j);f or(i=0; i<j; i++){printf("请输入串的第%d个字符:",i+1);fflush(stdin);scanf("%c",&c);s->ch[i] = c;}s->len = j;}void output(SString *s){i nt i;f or (i=0;i<s->len;i++)printf("%c ",s->ch[i]);p rintf("\n");}主函数代码如下:void main(){S String *str1;S String str2;i nt i,j,k,pos;i nt flag=0;s tr1 = (SString *)malloc(sizeof(SString));s tr1->len = 0;p rintf("建立字符串1:\n");c reatestring(str1);p rintf("建立字符串2:\n");c reatestring(&str2);p rintf("请输入要插入的位置:");s canf("%d",&pos);f lag=StrInsert(str1,pos,str2);i f(flag == 0)printf("插入操作失败!");e lse{printf("插入后串为:\n");output(str1);}}请完成函数int StrInsert(SString *s, int pos, SString t)的代码,若插入成功,函数值返回1,则返回0。
实验三 串基本操作的编程实现

实验三串基本操作的编程实现实验三串基本操作的编程实现实验三串基本操作的编程实现【实验目的】内容:串基本操作的编程实现要求:串成基本操作的编程同时实现(2学时,检验型),掌控串成的创建、结点、填入、删掉等基本操作的编程同时实现,也可以进一步编程同时实现搜寻、分拆、剪裁等操作方式,存储结构可以在顺序结构或链接结构、索引结构中自由选择,也可以全部同时实现。
也引导学生利用基本操作展开一些应用领域的程序设计。
【实验性质】检验性实验(学时数:2h)【实验内容】字符串长度排序,字符串的替代。
【思考问题】1.字符串的顺序存储和链表存储的差异?c语言中就是如何同时实现字符串的?2.在字符串处置方面主要存有什么操作方式?3.字符串的操作方式的主要特点就是什么?4.列举几个字符串的应用领域范例?【参考代码】(一)字符串长度排序intstrlen(char*s){。
}/*主程序:读取字符串长度后,输出该字符串的长度*/voidmain(){charstring[50];/*声明长度为50的字符串数组*/intlength;/*字符串长度*/printf(\gets(string);/*读取字符串存到变量string*/length=strlen(string);/*计算字符串string的长度*/printf(\}/*期望的结果*//*pleaseinputstring:howareyou?*//*theinputstringlengthis12*/(二)字符串的替换/*将字符串s2从字符串s1的某一个边线pos替代s1的子串*/char*strrep(char*s1,char*s2,intpos){。
}/*主程序:输入两字符串,再进行字符串取代*/voidmain(){charstring1[100];/*声明字符串数组1*/charstring2[50];/*声明字符串数组2*/intposition;/*展开替代的初始边线*/printf(\/*读取原始字符串并存入\gets(string1);printf(\/*加载欲替代的子字符串并取走\gets(string2);printf(\/*读取进行字符串替换的起始位置\scanf(\strrep(string1,string2,position);/*进行字符串的取代*/printf(\}/*期望的结果*//*pleaseinputoriginalstring:myfavoritecolorisblack.*//*pleaseinputsubstitutestring:white*//*pleaseinputsubstituteposition:22*//*the finalstring:myfavoritecoloriswhite.*/【实验小结】(总结本次实验的重难点及心得体会、体会、斩获)得分_____________批改日期_____________教师亲笔签名____________。
实验三 串级控制实验2016

实验三串级控制实验一、实验目的1.熟悉串级控制系统的结构与特点。
2.掌握串级控制系统的投运与参数整定方法。
3.了解阶跃扰动分别作用于副对象和主对象时对系统主变量的影响。
二、实验设备1.PCS-C型过程控制综合实验装置(DDC控制单元、信号及控制板)。
2.计算机及MCGS组态软件(PCS-C-DDC.MCG)。
3.实验专用线若干及九芯通讯线两根。
三、实验原理本实验采用计算机控制,将下水箱液位控制在设定高度。
串级回路是由内反馈组成的双环控制系统,属于复杂控制范畴。
在计算机中设置了两个虚拟控制器作为主副控制器。
将上水箱的液位信号输出作为主控制器输入,主控制器的输出作为副控制器的输入,在串级控制系统中,两个控制器任务不同,因此要选择控制器的不同调节规律进行控制,副控制器主要任务是快速动作,迅速抵制进入副回路的扰动,至于副回路的调节不要求一定是无静差。
主控制器的任务是准确保持下水箱液位在设定值,因此,主控制器采用PI控制器也可考虑采用PID控制器。
上下水箱液位串级控制系统的方块原理图如图4.2所示。
图4.1 液位串级控制系统块原理图串级控制系统的参数整定参考本章概述部分内容。
四、实验步骤与内容1.了解实验装置中的对象,流程图如图4.2所示。
图4.2 上下水箱液位串级控制系统流程图2.按图4.3接好实验导线和通讯线。
图4.3上下水箱双容串级控制实验接线图(高联实验台)上下水箱双容串级控制实验接线图(云创实验台)3.将控制台背面的通讯口与上位机连接。
4.将手动阀门1V1、V4、V6打开,将手动阀门1V6、1V7、LV关闭。
5.先打开实验对象的系统电源,然后打开控制台上的总电源,再打开直流电压和DDC控制单元电源。
6.打开计算机上的MCGS运行环境,选择“系统管理”下拉菜单中的“用户登录”,出现如下界面。
图4.4 用户登录界面7.点击“确认”,用户登录完毕。
选择“串级控制实验”下拉菜单中的“上下水箱双容控制实验”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三串操作
一、实验目的
1.熟悉串操作指令的功能。
2.了解串操作指令的使用方法。
二、实验预习要求
1.复习8086指令系统中的串操作类指令。
2.按照题目要求在实验前编写好实验中的程序段。
三、实验任务
1.输入以下程序段并运行之,回答后面的问题。
CLD
MOV DI,1000H
MOV AX,55AAH
MOV CX,10H
REP STOSW
上述程序段执行后:
(1) 从DS:1000H开始的16个字单元的内容是什么?。
(2) (DI)= ?(CX)= ?,并解释其原因。
2.在上题的基础上,再输入以下程序段并运行之,回答后面的问题。
MOV SI,1000H
MOV DI,2000H
MOV CX,20H
REP MOVSB
程序段执行后:
(1)从DS:2000H开始的16个字单元的内容是什么?
55AAH
(2)(SI)=?(DI)=?(CX)= ?,并分析之。
SI=1020H,DI=2020H,CX=0000H
3.从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,从DS:2000H开始的内存单元的内容为”gnirts a si sihT”),试编写程序段并上机验证之。
assume cs:code,ds:datasg,ss:stack
datasg segment
db 'THIS IS A STRING'
db 1000 dup(1)
datasg ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,datasg
mov ds,ax
mov es,ax
mov si,0
mov di,30
cld
;rep movsbd
mov cx,16
tag: CLD
LODSB
STD
STOSB
LOOP tag
mov ax,4c00h
int 21h
code ends
end start
四、实验心得与体会
本次实验,我运用了以往所学的知识,实验进行的很顺利,现在越来越能够掌握这门课的精髓了。