桂电微机实验a所用程序

合集下载

微机实验操作步骤

微机实验操作步骤

微机实验操作步骤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.转载成功后,计算机已经把程序装载进实验箱上的芯片了,但程序还没有开始运行,需要按绿色的“全速运行”按钮控制实验箱开始运行程序。

桂电数据结构实验报告

桂电数据结构实验报告

实验二栈和队列及应用一、实验目的1.掌握用c语言实现队列和栈的方法2.了解栈和队列的使用二、实验内容实验题目一在许多语言现象中,常见到一种形如abcba的文字,这种文字从左到右读和从右到左读结果是一样的,这种文字就是常说的回文。

设计一个程序可以判断给定的一个文字是否是回文。

注意:在本实验中,要求在实现上面的题目时,必须使用如下算法:考虑到栈的先进后出以及队列的后进先出,可以结合这两种结构来实现需要的功能,即将文字分别入队和入栈,然后依次通过出队和出栈输出判断是否有不相同的字符,一旦发现就证明文字不是一个回文。

实验步骤:第一步:编写程序,实现栈,该栈可以用数组实现,也可以用链表实现第二步:编写程序,实现队列,该队列可以为循环队列,也可以用链表实现第三步:编写主算法,使用自己编写的栈和队列实现回文判断问题(通过键盘输入一个以#结束的字符串,进行判断)#include <stdio.h>#include <malloc.h>struct Node;typedef struct Node * PNode;struct Node{char info;PNode link;};struct LinkStack //定义栈{PNode top;};typedef struct LinkStack * PLinkStack;struct LinkQuene //定义队列{PNode f;PNode r;};typedef struct LinkQuene *PLink;PLinkStack CreateStackLink () //创建空栈{PLinkStack ptop;ptop=(PLinkStack)malloc(sizeof(struct LinkStack));if (ptop==NULL){printf ("申请空间失败!\n");exit(-1);}ptop->top=NULL;return ptop;}PLink CreateLink () //创建空队列{PLink pl;pl=(PLink)malloc(sizeof(struct LinkQuene));if (pl==NULL){printf ("申请空间失败!\n");exit (-1);}pl->f=NULL;pl->r=NULL;return pl;}void PushLink (PLinkStack pl,char c)//进栈{PNode p;p=(PNode)malloc(sizeof(struct Node));if (p==NULL){printf ("申请空间失败!\n");exit(-1);}p->info=c;p->link=pl->top;pl->top=p;}void PushQuene (PLink pl,char c) //进队列{PNode p;p=(PNode)malloc(sizeof(struct Node));if (p==NULL){printf ("申请空间失败!\n");exit (-1);}p->info=c;p->link=NULL;if (pl->f==NULL)pl->f=p;elsepl->r->link=p;pl->r=p;}void GetLink (PLinkStack pl) //出栈{PNode p;p=(PNode)malloc(sizeof(struct Node));if (pl->top==NULL){printf ("空栈!\n");exit(-1);}if (p==NULL){printf ("申请空间失败!\n");exit(-1);}p=pl->top;pl->top=pl->top->link;free (p);}void GetQuene (PLink pl) //出队列{PNode p;p=(PNode)malloc(sizeof(struct Node));if (pl->f==NULL){printf ("空队列!\n");exit(-1);}if (p==NULL){printf ("申请空间失败!\n");exit(-1);}p=pl->f;pl->f=p->link;free (p);}char GetLinkData (PLinkStack pl) //获得栈顶数值{if (pl->top==NULL){printf ("空栈!\n");exit(-1);}return pl->top->info;}char GetQueneData (PLink pl) //获得队列头部数值{if (pl->f==NULL){printf ("空队列!\n");exit(-1);}return pl->f->info;}void PrintLink (PLinkStack pl) //打印栈{PNode p;p=(PNode)malloc(sizeof(struct Node));if (p==NULL){printf ("申请空间失败!\n");exit(-1);}p=pl->top;while (p->link!=NULL){printf ("%c=>",p->info);p=p->link;}printf ("%c\n",p->info);}void PrintQuene (PLink pl) //打印队列{PNode p;p=(PNode)malloc(sizeof(struct Node));if (p==NULL){printf ("申请空间失败!\n");exit (-1);}p=pl->f;while (p->link!=pl->r->link){printf ("%c=>",p->info);p=p->link;}printf ("%c\n",p->info);}int main (){//char ch[]="abcdcba";int i;char s1,s2,x;PLinkStack pl1;PLink pl2;pl1=CreateStackLink ();pl2=CreateLink ();printf ("请输入(以#结束):\n");for (i=0;i<50;i++){scanf ("%c",&x);if (x=='#')break;PushLink (pl1,x);PushQuene (pl2,x);}printf ("栈输出为:");PrintLink (pl1);//s=GetLinkData (pl1);//printf ("%c\n",s);printf ("队列输出为:");PrintQuene (pl2);//s=GetQueneData (pl2);//printf ("%c\n",s);while (pl1->top!=NULL && pl2->f!=NULL) {s1=GetLinkData (pl1);s2=GetQueneData (pl2);if (s1==s2){GetLink (pl1);GetQuene (pl2);}else{printf ("不是回文数!\n");break;}}if (pl2->f==NULL){printf ("这是回文数!\n");}return 0;}实验三树及应用一、实验目的1、掌握简单的二叉树编程,掌握二叉树构造的一些方法2、掌握二叉树的中序,前序,后序遍历方法二、实验内容实验题目一:(1)从键盘输入任意二叉树的前根排序序列,用#结束,当某节点的左子树或右子树为空时,用“@”代替,例如对于如下图的二叉树,输入内容为:abd@@eh@@@cf@i@@g@@#(2)分别用三种遍历方法输出遍历结果。

桂电JAVA程序设计与问题求解实验说明书(含实验代码)

桂电JAVA程序设计与问题求解实验说明书(含实验代码)

JAVA程序设计实验实验一 JAVA开发环境及基本语法学院:计算机科学与工程学院专业:信息安全学号: **********姓名:路边葱子2014年6月JAVA程序设计实验实验二系统类和数组学院:计算机科学与工程学院专业:信息安全学号: **********姓名:路边葱子2014年6月JAVA程序设计实验实验三图形界面程序的界面设计学院:计算机科学与工程学院专业:信息安全学号: 1100360100姓名:路边葱子2014年6月JAVA程序设计实验实验四图形界面程序的事件处理学院:计算机科学与工程学院专业:信息安全学号: 1100360100姓名:路边葱子2014年6月JAVA程序设计实验实验五异常学院:计算机科学与工程学院专业:信息安全学号: 1100360100姓名:路边葱子2014年6月JAVA程序设计实验实验六多线程学院:计算机科学与工程学院专业:信息安全学号: 1100360100姓名:路边葱子2014年6月JAVA程序设计实验实验七流与文件学院:计算机科学与工程学院专业:信息安全学号: 1100360100姓名:路边葱子2014年6月JAVA程序设计实验实验八网络学院:计算机科学与工程学院专业:信息安全学号: 1100360100姓名:路边葱子2014年6月实验一 Java开发环境及基本语法一、实验目的1、掌握常用的Java集成开发环境的使用,特别是Eclipse和NetBeans。

2、掌握Java基本语法,重点是面向对象的思想和语法。

3、掌握控制台下(应用程序)的输入输出方法,作为后续部分实验的基础。

二、实验类型设计型。

三、实验内容1、打开实验室计算机上的集成开发环境Eclipse或NetBeans(重点是Eclipse),掌握其基本使用方法。

了解开发软件的各个菜单功能。

会创建java项目(Project),会编辑和编译、运行项目代码。

2、验证和学习所给的几个例子程序及其讲解。

然后自己编写一个至少由一个类构成的Java程序,其功能是在运行后,能接收用户输入一个学生的姓名以及java课的成绩(百分制),并输出对该学生成绩是否达到60分的及格分的判断(可使用if语句)。

linux桂电实验报告

linux桂电实验报告

竭诚为您提供优质文档/双击可除linux桂电实验报告篇一:桂电Linux实验1实验一Linux常用命令用法实验目的:1、掌握Linux一般命令格式;2、掌握有关文件和目录操作的常用命令;3、掌握有关进程的常用命令;4、熟练使用man命令;实验内容:1、正确的登录和退出系统;2、熟悉date,cal,who,echo,clear命令;3、在用户主目录下的文件进行操作:复制一个文件,显示文件内容,查找制定内容,排序,文件比较,文件删除;4、对目录进行管理:创建子目录、改变和显示工作目录、列出和更改文件权限、连接文件;5、利用man显示date,echo等命令的手册页;6、显示系统中的进程;实验步骤:1、登录系统2、使用简单命令:date,cal,who,echo,clear,了解Linux命令格式;3、浏览文件系统:(1)运行pwd命令,确认当前工作目录;(2)运行ls–l 命令,理解各字段含义;(3)运行ls–ai命令,理解各字段含义;(4)使用cd命令,将工作目录改到根目录;(5)用mkdir 命令,建立一个子目录subdir;(6)将工作目录改到subdir;4、文件操作:(1)验证当前工作目录在subdir;(2)运行date>file1,然后运行catfile1,看到什么信息?(3)运行catsubdir,会有什么结果?为什么?(4)利用man命令显示date命令的使用说明;(5)运行mandate>>file1,看到什么?运行catfile1,看到什么?(6)利用ls–lfile1,了解连接计数是多少?运行lnfile1../fa,再运行ls–lfile1,观察链接数有无变化?用cat命令显示fa文件内容;(7)显示file1的前10行,后10行;(8)运行cpfile1file2,然后运行ls–l,看到什么?运行mvfile2file3,然后运行ls–l看到什么?运行catf*,结果如何?(9)运行rmfile3,然后ls–l,结果如何?(10)在/etc/pasword文件中查找注册名的行;(11)运行ls–l,理解各文件的权限是什么?(12)用两种方法改变file1的权限;(13)统计file1文件的行数,字数;(14)运行manls|more显示结果是什么?运行catfile1|head-20|teefile5结果如何?运行catfile5|wc,结果如何?1、登陆系统。

桂电智能仪器实验代码

桂电智能仪器实验代码

实验1ORG 0000HAJMP MAINORG 0200HBUFF EQU 60HMAIN:MOV R3,#00HMOV R4,#00HACALL DISPLAYACALL KEXAMJZ MAINACALL D10msACALL KEXAMJZ MAINMOV R2,#0DFHMOV DPTR,#8004HMOV A,#00HMOVX @DPTR,A KEY1:MOV DPTR,#8002H MOV A,R2MOVX @DPTR,AMOVX A,@DPTRCPL AANL A,#0FHJNZ KEY2MOV A,R3ADD A,#04HMOV R3,AMOV A,R2RR AMOV R2,AJB ACC.0,KEY1AJMP MAIN KEY2:CPL AKEY3:RRC AJNC KEY4INC R4AJMP KEY3 KEY4:ACALL DISPLAYACALL D10msACALL KEXAMJNZ KEY4ADD A,R4MOV BUFF,AKEND:AJMP MAINKEXAM:MOV DPTR,#8002HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETDISPLAY:MOV DPTR,#TABMOV A,60HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#10HMOVX @DPTR,ARETDL:MOV R6,#0FFHSTART: MOV DPTR,#8002H;键值分析及选通DL0:DJNZ R6,DL0DJNZ R5,DLRETTAB:DB 3FH 06H 66H 07HDB 71H 5BH 6DH 7FHDB 79H 4FH 7DH 6FHDB 5EH 39H 7CH 77HAJMP MAINACALL KEXAMJZ MAINMOVX @DPTR,AMOV DPTR,#8001H ORG 0000HORG 0100H MAIN: ACALL KEXAM ;检查按键 JZ MAIN;无继续 ACALL D10ms;延时去抖MOVX A,@DPTRCPL AANL A,#07HCJNE A,#01H,KEY1 ;INT0AJMP INT0KEY1: CJNE A,#02H,KEY2;INT1AJMP INT1KEY2: CJNE A,#04H,MAINAJMP AUTOINT0: ACALL DISPLAY1MOV A,#0FH ;0-5VMOV DPTR,#9000HMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRMOV @R0,AACALL CAIACALL DISPLAYACALL KEXAMJZ INT0AJMP STARTINT1: ACALL DISPLAY2AUTO: MOV 50H,#2000000LOP0:ACALL D10ms DJNZ 50H,LOP0AJMP INT00AUTO1: MOV 51H,#2000000LOP1:ACALL D10ms DJNZ 51H,LOP1AJMP INT11MOV A,#0FH MOV DPTR,#9001H MOV R0,#40H MOVX @DPTR,A ACALL D10ms MOVX A,@DPTR MOV @R0,A ACALL CAI ACALL DISPLAY ACALL KEXAM JZINT1 AJMP START;固定值INT00:ACALL DISPLAY1MOV A,#0FH ;0-5VMOV DPTR,#9000HMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRMOV @R0,AACALL CAIACALL DISPLAYACALL D10msMOV 53H,#30PPP: ACALL DISPLAY1ACALL DISPLAYACALL DISPLAY1ACALL DISPLAYACALL DISPLAY1ACALL DISPLAYDJNZ 53H,PPPACALL KEXAMJZ AUTO1 AJMP STARTACALL DISPLAY2 MOV A,#0FHMOV DPTR,#9001H MOV R0,#40H MOVX @DPTR,A ACALL D10msMOVX A,@DPTR MOV @R0,AACALL CAIACALL DISPLAY INT11: ;固定值 ACALL D10msMOV 54H,#30OOO: ACALL DISPLAY2 ACALL DISPLAYACALL DISPLAY2 ACALL DISPLAYACALL DISPLAY;按键判断 DJNZ 54H,OOOACALL KEXAMJZ AUTOAJMP STARTKEXAM: MOV DPTR,#8004HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8002H MOV A,#00HMOVX @DPTR,AMOV DPTR,#8001H MOVX A,@DPTRCPL AANL A,#0FHRETCAI: MOV A,@R0;数据处理MOV B,#51DIV ABMOV 40H,AMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LOOP2ADD A,#5 LOOP2:MOV 41H,AMOV A,BMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LOOP3;列表显示 个位整数 40H LOOP3:MOV 42H,ARETDISPLAY:MOV DPTR,#TABMOV A,40HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#10HMOVX @DPTR,AACALL D10msMOV A,#80H;小数点MOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#10HMOVX @DPTR,AACALL D10msMOV DPTR,#TAB ;余数41H 42H MOV A,41HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#08HMOVX @DPTR,AACALL D10msMOV DPTR,#TABMOV A,42HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#04HMOVX @DPTR,AACALL D10msRETMOV DPTR,#8004HDISPLAY2:MOV A,#06HDPTR,#8004H@DPTR,ADPTR,#8002HA,#20H@DPTR,AD10msMOVX @DPTR,AMOV DPTR,#8002H MOV A,#20HMOVX @DPTR,ALCALL D10msRETD10ms: MOV R5,#03H ;延时 10 DL: MOV R6,#0FFHDL0:DJNZ R6,DL0DJNZ R5,DLRETDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71H实验4ORG 0000HAJMP KEYPRORG 0200HKEYPR:MOV R3,#00H ;列寄存器MOV R4,#00H ;行寄存器ACALL KEXAMJZ KENDACALL D10msACALL KEXAMJZ KENDMOV R2,#0DFH ;扫描初值KEY1:MOV DPTR,#8004HMOVX @DPTR,AMOV A,R2MOVX @DPTR,A MOV DPTR,#8001H MOVX A,@DPTR CPL AANL A,#0FHJNZ KEY2MOV A,R3ADD A,#04HMOV R3,AMOV A,R2RR AMOV R2,AJB ACC.0,KEY1 AJMP KEND;扫描第一列;有键按下,求行值;无键按下,列加4 ;求下一列扫描值;判断是否已全扫描KEY2:CPL A ;恢复行模型KEY3:RRC AINC R4KEY4:ACALL D10msACALL KEXAMJNZ KEY4MOV A,R3ADD A,R4MOV 60H,A ;键值存入60HL0:CJNE A,#00H,L1MOV DPTR,#DLTABMOV A,30HCJNE A,#05,ADDF1MOV 30H,#00HLJMP ADDF2ADDF1:INC 30HADDF2:MOVC A,@A+DPTRMOV 31H,ADLTAB:DB 01H,20H,50H,80H,0A0HL1:CJNE A,#0FH,L2 ;锯齿波LS0: ACALL DISPLAYMOV DPTR,#9000H;三角LS1:MOVX @DPTR,AINC AACALL DELAYCJNE A,#0FFH,LS1 ACALL DELAYACALL DISPLAYACALL KEXAMJZ LS0AJMP KENDKEND:ACALL DISPLAYLJMP KEYPRL2:CJNE A,#0EH,L3 LS2: ACALL DISPLAYMOV DPTR,#9000H MOV A,#00HMOV R0,#200LS3: ACALL DELAYMOVX @DPTR,A INC A;正弦CJNE A,#0FFH,LS3 LS4: ACALL DELAYDEC AMOVX @DPTR,A CJNE A,#00H,LS4 DJNZ R0,LS3ACALL DISPLAYACALL KEXAMJZ LS2AJMP KENDL3:CJNE A,#0DH,L4 LS5:ACALL DISPLAYMOV A,#00MOV R0,ALS6: MOV DPTR,#TZSBMOVC A,@A+DPTR;方波MOVX @DPTR,A ACALL DELAYINC R0CJNE R0,#32,LS6 ACALL DISPLAYACALL KEXAMJZ LS5AJMP KENDL4:CJNE A,#0CH,KEND ACALL DISPLAYMOV R0,#200LS7: ACALL DISPLAY MOV A,#00MOV DPTR,#9000H MOVX @DPTR,A ACALL DELAYMOV A,#255MOVX @DPTR,A ACALL DELAYDJNZ R0,LS7ACALL D10ms;显示子程;延时 10 毫秒 ACALL DISPLAYACALL KEXAMJZ LS7AJMP KENDDISPLAY:MOV DPTR,#TABMOV A,60HMOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#01HMOVX @DPTR,A RETD10ms:MOV R5,#03H DL: MOV R6,#0FFH DL0: DJNZ R6,DL0DJNZ R5,DLRETDELAY:MOV R6,31H DL1:DJNZ R6,DL1RETKEXAM:MOV DPTR,#8002H ;检查是否有键按下子程序MOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETTAB:DB3FH,06H,66H,07H,71H,5BH,6DH,7FH,79H,4FH,7DH,6FH,5EH,39H,7CH,77H TZSB: DB 80H , 98H, 0B0H, 0C6H, 0DAH, 0EAH, 0F5H, 0FDHDB 0FFH, 0FDH, 0F5H , 0EAH, 0DAH, 0C6H, 0B0H, 98HDB 80H , 68H, 50H , 3AH, 26H, 16H, 0BH, 03HDB 01H, 03H, 0BH, 16H, 26H, 3AH, 50H, 68H实验5ORG 0000HAJMP MAINORG 0200HMAIN:MOV DPTR,#8001H MOV A,#00HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#00HMOVX @DPTR,AMOV R3,#00HMOV R4,#00HACALL DISPLAYACALL KEXAMJZ MAINACALL DL10msACALL KEXAMJZ MAINMOV R2,#0DFHMOV DPTR,#8004HMOV A,#00HMOVX @DPTR,A KEY1:MOV DPTR,#8002H MOV A,R2MOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHJNZ KEY2MOV A,R3ADD A,#04HMOV R3,AMOV A,R2RR AMOV R2,AJB ACC.0,KEY1AJMP MAIN KEY2:CPL AKEY3:RRC AJNC KEY4INC R4AJMP KEY3 KEY4:ACALL DISPLAYACALL DL10msACALL KEXAMADD A,R4MOV 30H,AKEY8:CJNE A,#00H,KEY5 ZIJIAN:MOV 41H,#0LCALL DISPLAY1ACALL DL10msACALL KEXAMACALL DL10msACALL KEXAMJZ ZIJIANAJMP MAINKEY5: CJNE A,#01H,KEY1 JK: LCALL MSFCLCALL DISPLAY1ACALL DL10msAJMP JKMSFC: MOV TMOD,#15HMOV R1,#0AHMOV TL0,#00HMOV TH0,#00HMOV TH1,#3CHSETB P3.4JB P3.4,$SETB TR0SETB TR1WAIT:JBC TF1,NEXTSJMP WAITNEXT:MOV TL1,#0B0HMOV TH1,#3CHDJNZ R1,WAITCLR TR1CLR TR0MOV 41H,TH0MOV 40H,TL0RETBBCD:MOV R2,40H ;二十进制转换MOV R3,41HMOV R0,#64H ;64H 高位数据存储单元MOV R7,#04HMOV DPTR,#PWTABMOV R6,#00HINC R6MOV A,R6MOVC A,@A+DPTRMOV R5,AINC R6MOV @R0,#00H BBC2:CLR CMOV A,R2SUBB A,R4MOV R2,AMOV A,R3SUBB A,R5MOV R3,AJC BBC3INC @R0SJMP BBC2BBC3:MOV A,R2ADD A,R4MOV R2,ADEC R0DJNZ R7,BBC1MOV A,R2MOV @R0,ARETPWTAB: DB 10H 27H 0E8H 03H 0E8H 03H 0AH 00HDISPLAY :MOV R2,#20H ;显示循环次数MOV R0,#64H ; 64H 为高位数据存储单元MOV R7,#4 共 2 个八段管MOV R6,#00100000B 从左边开始显示MOV DPTR,#8002HMOV A,#0MOVX @DPTR,A 关所有八段LOOP:MOV DPTR,#TABMOV A,@R0MOVC A,@A+DPTRCJNE R0,#63H,LOPPORL A,#80H ;第二位打小数点,单位为KHzLOPP:MOV DPTR,#08004HMOVX @DPTR,AMOV DPTR,#08002HMOV A,R6MOVX @DPTR,A ; 显示一位八段管CALL DL10msMOV A,R6 ; 显示下一位RR AMOV R6,ADEC R0DJNZ R7,LOOPDJNZ R2,DISPLAYRETDISPLAY1:MOV DPTR,#TABMOV A,41HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOVX @DPTR,AMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#08HMOVX @DPTR,ARETDDFF:DB 0CH,09FH,4AH,0BH,99HDB 29H,28H,8FH,08H,09HKEXAM: MOV DPTR,#8002H ; 列地址MOV A,#00HMOVX @DPTR,AMOV DPTR,#8001H ; 行地址MOVX A,@DPTRCPL AANL A,#0FHRETDL10ms:MOV 11H,#30HDL0:DJNZ 10H,DL0DJNZ 11H,DLRETTAB:DB 3FH 06H 66H 07H DB 71H 5BH 6DH 7FHDB 79H 4FH 7DH 6FHDB 5EH 39H 7CH 77HORG 0000HAJMP MAINORG 0200HBUFF EQU 60HMAIN:CLR P1.4CLR P1.5CLR P1.6CLR P1.7MOV R3,#00HMOV R4,#00HACALL DISPLAYACALL KEXAMJZ MAINACALL D10msACALL KEXAMJZ MAINMOV R2,#0DFHMOV DPTR,#0D004HMOV A,#00HMOVX @DPTR,A KEY1:MOV DPTR,#0D002H MOV A,R2MOVX @DPTR,AMOV DPTR,#0D001HMOVX A,@DPTRCPL AANL A,#0FHJNZ KEY2MOV A,R3ADD A,#04HMOV R3,AMOV A,R2RR AJB ACC.0,KEY1;INT0KEY2:CPL AKEY3:RRC AJNC KEY4INC R4AJMP KEY3KEY4:ACALL DISPLAYACALL D10msACALL KEXAMJNZ KEY4MOV A,R3ADD A,R4CJNE A,#0CH,KEY5AJMP INT0KEY5: CJNE A,#08H,KEY6;INT1AJMP INT1KEY6: CJNE A,#04H,MAINAJMP AUTOINT0: ACALL DISPLAY1MOV A,#0FHMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRCLR CSUBB A,#178JC GREENSETB P1.4AJMP PASSGREEN: SETB P1.5 PASS:ADD A,#178MOV @R0,AACALL CAIACALL DISPLAYACALL KEXAMJZ INT0KEND:AJMP MAININT1: ACALL DISPLAY2MOV A,#0FHMOV DPTR,#0C001HMOV R0,#40HMOVX @DPTR,AMOVX A,@DPTRCLR CSUBB A,#247JC GRENSETB P1.7AJMP PASGREN: SETB P1.6PAS:ADD A,#247MOV @R0,AACALL CAIACALL DISPLAYACALL KEXAMJZ NT1AJMP MAIN AUTO: MOV 50H,#2000000LOP0:ACALL D10msDJNZ 50H,LOP0AJMP INT00AUTO1: MOV 51H,#2000000DJNZ 51H,LOP1AJMP INT11INT00:ACALL DISPLAY1MOV A,#0FHMOV DPTR,#0C000HMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRMOV @R0,AACALL CAIACALL DISPLAYACALL D10msMOV 53H,#30PPP: ACALL DISPLAY1ACALL DISPLAYACALL DISPLAY1DJNZ 53H,PPPACALL KEXAMJZ AUTO1AJMP MAININT11:ACALL DISPLAY2MOV A,#0FHMOV DPTR,#0C001HMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRMOV @R0,AACALL CAIACALL DISPLAYACALL D10msMOV 54H,#30OOO: ACALL DISPLAY2;按键判断 KEXAM:ACALL DISPLAY2 ACALL DISPLAY DJNZ 54H,OOOACALL KEXAMJZ AUTOAJMP MAINMOV DPTR,#0D004H MOV A,#00HMOVX @DPTR,A MOV DPTR,#0D002H MOV A,#00HMOVX @DPTR,A MOV DPTR,#0D001H MOVX A,@DPTR CPL AANL A,#0FHRETMOV B,#51DIV ABMOV 40H,AMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LOOP2ADD A,#5 LOOP2:MOV 41H,AMOV A,BMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL AB40H ;小数点 DIV ABJB F0,LOOP3ADD A,#5LOOP3:MOV 42H,ARETDISPLAY:MOV DPTR,#TAB;列表显示 个位整数MOV A,40HMOVC A,@A+DPTR MOV DPTR,#0D004H MOVX @DPTR,A MOV DPTR,#0D002H MOV A,#10HMOVX @DPTR,A ACALL D10msMOV A,#80HMOV DPTR,#0D004H MOVX @DPTR,A MOV A,#10H;余数 41H 42H MOVX @DPTR,A ACALL D10ms MOV DPTR,#TAB MOV A,41HMOVC A,@A+DPTR MOV DPTR,#0D004H MOVX @DPTR,A MOV DPTR,#0D002H MOV A,#08HMOVX @DPTR,A ACALL D10ms MOV DPTR,#TAB MOV A,42HMOVC A,@A+DPTR MOV DPTR,#0D004H MOVX @DPTR,A MOV DPTR,#0D002H MOV A,#04H ACALL D10msRETDISPLAY1: MOVMOVMOVXMOVMOVMOVXLCALLRET DISPLAY2: MOVMOVMOVXMOVMOVMOVXLCALLRETD10ms:A,#3FHDPTR,#0D004H @DPTR,A DPTR,#0D002H A,#20H@DPTR,AD10msA,#06H DPTR,#0D004H @DPTR,A DPTR,#0D002H A,#20H@DPTR,AD10msMOV R5,#03H ;延RETTAB: DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71H。

微机原理实验一调试程序的使用

微机原理实验一调试程序的使用

物理与机电工程系(2015——2016 学年第一学期)《调试程序的使用》上机实验报告专业:电子信息科学与技术学号: 52姓名:刷卡机任课教师:风机房实验地点:理工实验楼9007项目编号:实验一命令执行结果如下:执行R命令,即查看、修改CPU寄存器的内容,此时执行结果为:AX =0000 DS=1420BX=0000 SS=1420CX=0000 CS=1420DX=0000 ES=1420执行D命令,即显示存储单元中的内容命令,此时执行结果为:1420:0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1420:0110 00 00 00 00 00 00 00 00-00 00 00 00 34 00 0F 14 ................1420:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1420:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1420:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1420:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1420:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................1420:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................执行A命令,即汇编命令,此时输入汇编命令为:1420:0100 mov al,111420:0102 mov bl,22(1)用七种(除隐含寻址外)不同的寻址方式实现数据的传送。

实验桂林电子科技大学系统实验报告

实验桂林电子科技大学系统实验报告

转载自马如林的博客--I'm lovin' IT(1) 实验题目设计一台CISC模型机,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。

(A类)(2) 嵌入式CISC模型机数据通路框图图1 模型机数据通路框图(5) 微程序流程图机器指令的CPU操作流程图是根据模型机的硬件设计、指令系统、所有指令的解释过程和控制信号的时序设计出来的,如图2所示。

图中每一个方框执行的时间为一个时钟周期(包含T1-T4共4个节拍脉冲周期),对应一条微指令。

框中上面的八进制数表示的是当前微指令在控制存储器中的微地址,框中下面的八进制表示的是当前微指令的后继微地址。

图中的菱形框从属于它上面的方框。

图2 微程序流程图(6) 微指令代码表1 指令格式本模型机使用的微指令采用全水平型微指令,字长为29位,其中微命令字段为21位,P字段为2位,后继微地址为6位,其格式如图3所示:图3 微指令格式2 指令代码表表2 微指令代码(7) 顶层电路图1 模型机的顶层电路图图4 顶层电路图2 模型机微地址寄存器单元aa的内部结构图5 地址寄存器单元aa的电路图3模型机微程序控制器的内部结构图6 微程序控制器的电路图(8) 汇编语言源程序冒泡排序:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。

算法思想: 1 输入10个数2 用R0存放最外层的循环次数,R1存放地址,R2和R3存放比较的两个数,从对应的R1的地址读入.R3存放大的数.如果有更大的数,则交换.最后下沉的就为一个最大的数.然后自减R0.进入下次循环.到循环结束.3 输出结果/** 冒泡程序:每次将最大的数下沉。

* 输入10个数,从小到大输出。

* 作者:longronglin* 时间:2006-5-10*///* 输入10个数*/Mov 0AH R0 //设置循环值10Mov 00H R1 //设置RAM的初始地址00L1: In1 R2 //从开关输入任意一个整数到R2 Mov1 R2 [R1] //将R2存入地址为R1的RAM单元中 Inc R1 //自增R1Cmp R1, R0 //比较R1,R0的大小,R1<R0跳转L1 JB L1//* 冒泡排序*/Mov 0AH R0 //设置外循环值为10Mov 00H R1 //设置RAM的初始地址00L2: Mov2 [R1] R2 //取地址为R1的RAM内容到R2 Inc R1 //自增R1Cmp R0 R1 //比较R0,R1的大小,R0<R1跳转L4JB L4Mov2 [R1] R3 //取地址为R1的RAM内容到R3Cmp R3 R2 //比较R3,R2的大小,R3<R2跳转L3JB L3JMP L2 //无条件跳转L2//* 交换两个数*/L3: Mov1 R2 [R1] //将R2存入地址为R1的RAM单元中Dec R1 //自减R1图7 程序开始及输入2 数的比较。

微机原理实验程序

微机原理实验程序

第四章 软件实验部分实验一 两个多位十进制数相减实验一、实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII 码形式按顺序存放在以DA T AI和DA T A2为首的5个内存单元中(低位在前),结果送回DA T AI 处。

处。

二、实验目的:1.学习数据传送和算术运算指令的用法。

.学习数据传送和算术运算指令的用法。

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

机上建立、汇编、链接、调试和运行汇编语言程序的过程。

三、实验步骤:连好实验箱后接通电源,连好实验箱后接通电源,打开上位机软件打开上位机软件88TE 进入软件调试界面:进入软件调试界面:点击点击点击“文件“文件\打开”打开”文文件路径为C :\88TE\cai\asm\Ruanjian\Rjexp1.asm 。

具体操作如图所示:文件。

点击编译连接生成可执行的exe文件。

通过单步运行调试程序,打开寄存器查看其变量变化情况。

通过单步运行调试程序,打开寄存器查看其变量变化情况。

四、实验程序框图:五、实验程序:文件路径为C :\88TE\cai\asm\Ruanjian\Rjexp1.asm DA DATA SEGMENT TA SEGMENT DA DATA1 TA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数)第一个数据(作为被减数) DA DATA2 TA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数)第二个数据(作为减数) MES1 DB '-','$' MES2 DB '=','$' DA DATA ENDS TA ENDS STACK SEGMENT ;堆栈段堆栈段 STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT TA,SS:STACK,ES:DA ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DAT T A START: MOV AX,DA TA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP ,AX MOV SI,OFFSET DATA1 MOV BX,05 CALL DISPL ;显示被减数显示被减数 MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DA T A2 MOV BX,05 ;显示减数显示减数 CALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA1 MOV DI,OFFSET DA T A2 CALL SUBA ;减法运算减法运算 MOV SI,OFFSET DA T A1 MOV BX,05 ;显示结果显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H 显示减数和被减数被减数和减数转换成十六进制数设 置 计 数 值 消除最低进位数 开 始制进位减 结果送被减数区调整偏移量 计数值-1=10 结果转换成ASCII 码字符串显示结果 结果INT 21H INT 21H MOV AX,4C00H INT 21H DISPL PROC NEAR ;显示子功能显示子功能DSI: MOV AH,02 MOV DL,[SI+BX-1] ;显示字符串中一字符显示字符串中一字符INT 21H DEC BX ;修改偏移量修改偏移量JNZ DSI RET DISPL ENDP SUBA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05 SU1: SUB BYTE PTR[SI+BX-1],30H SUB BYTE PTR[DI+BX-1],30H DEC BX ;将ASCII 码表示的数字串码表示的数字串 JNZ SU1 ;转化为十六进制的数字串转化为十六进制的数字串 MOV SI,DX MOV DI,BP MOV CX,05 ;包括进位,共5位CLC ;清进单位清进单位SU2: MOV AL,[SI] MOV BL,[DI] SBB AL,BL ;带进位相减带进位相减AAS ;非组合BCD码的减法调整码的减法调整 MOV [SI],AL ;结果送被减数区结果送被减数区 INC SI INC DI ;指向下一位指向下一位LOOP SU2 ;循环循环MOV SI,DX MOV DI,BP MOV BX,05 SU3: ADD BYTE PTR [SI+BX-1],30H ADD BYTE PTR [DI+BX-1],30H DEC BX ;十六进制的数字串转化ASCII码表示的数字串码表示的数字串 JNZ SU3 RET SUBA ENDP CODE ENDS END ST ART实验二 两个数相乘的实验一、实验要求:实现十进制数的乘法,实现十进制数的乘法,被乘数和乘数均以被乘数和乘数均以ASCII 码形式存放在内存中,码形式存放在内存中,算式结果在屏幕上显算式结果在屏幕上显示出来。

《微机实验程序》word版

《微机实验程序》word版

1一、实验目的1、熟悉74LS273,74LS244的应用接口方法。

2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。

二、实验内容逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。

三、实验原理介绍本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。

四、实验步骤1、实验接线:(«表示相互连接)CS0 «CS244 CS1«CS273 K1~K8 « IN0~IN7(对应连接)O0~O7«LED1~LED82、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。

4、编写实验报告。

五、实验提示74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。

六、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。

例如:K2置于L位置,则对应的LED2应该点亮。

七、程序框图(实验程序名: T244273.ASM)八、程序源代码清单assume cs:codecode segment publicorg 100hstart: mov dx,04a0h ;74LS244地址in al,dx ;读输入开关量mov dx,04b0h ;74LS273地址out dx,al ;输出至LEDjmp startcode endsend start一、实验目的1.掌握PC机外存扩展的方法。

2.熟悉6264芯片的接口方法。

3.掌握8086十六位数据存储的方法。

二、实验内容向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。

三、实验原理介绍本实验用到存储器电路,见硬件说明。

四、实验步骤1、实验接线本实验无需接线。

2、编写调试程序3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。

五、实验提示1、RAM区的地址为02000H,编程时可段地址设为01000H,则偏移地址为1000H。

最新微机实验程序精编版

最新微机实验程序精编版

2020年微机实验程序精编版1一、实验目的1、熟悉74LS273,74LS244的应用接口方法。

2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。

二、实验内容逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。

三、实验原理介绍本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。

四、实验步骤1、实验接线:(↔表示相互连接)CS0 ↔CS244 CS1↔CS273 K1~K8 ↔ IN0~IN7(对应连接) O0~O7↔LED1~LED82、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。

4、编写实验报告。

五、实验提示74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。

六、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。

例如:K2置于L位置,则对应的LED2应该点亮。

七、程序框图(实验程序名: T244273.ASM)八、程序源代码清单assume cs:codecode segment publicorg 100hstart: mov dx,04a0h ;74LS244地址in al,dx ;读输入开关量mov dx,04b0h ;74LS273地址out dx,al ;输出至LEDjmp startcode endsend start一、实验目的1.掌握PC机外存扩展的方法。

2.熟悉6264芯片的接口方法。

3.掌握8086十六位数据存储的方法。

二、实验内容向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。

三、实验原理介绍本实验用到存储器电路,见硬件说明。

四、实验步骤1、实验接线本实验无需接线。

2、编写调试程序3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。

五、实验提示1、RAM区的地址为02000H,编程时可段地址设为01000H,则偏移地址为1000H。

桂林电子科技大学模拟电子技术实验模板

桂林电子科技大学模拟电子技术实验模板

桂林电子科技大学 模拟电子技术实验报告
----------------------------------------------------------------------------------------------------------------------------------------------------注意事项:测量 RP 的阻值时,应把 RP 与电路断开,测完 RP 后再接回!
三.预习要求(上课时由老师随机抽查预习情况,计入平时成绩)
1.认真复习示波器、函数信号发生器、万用表、直流稳定电源等仪器使用方法。
是否已完成:是【 】
否【 】
2.认真学习单级放大电路实验课件(云盘下载)。是否已完成:是【 】
否【 】
3. 复习有关共发射极放大电路的基本原理,了解三极管的三种工作状态。
12. 将单级放大电路输入端前串联的 5.1KΩ 辅助电阻去掉,测量 uO、uOL,记录在表 4 中,用于计算输 入阻抗。
注意事项:(1)必须将输入端前串联的 5.1KΩ 辅助电阻去掉,信号源直接接在电容 C1 左端。(2)测 量一个波形的峰峰值时,可将示波器另外一个通道的波形关闭,以免测量错误。
五.实验内容 1.静态工作点的测量。
2.掌握单级共射放大电路静态工作点的调试及测量方法,分析负载和静态工作点对放大器性能的影
响。
3.掌握放大器性能指标(电压放大倍数 Av,输入阻抗 Ri 和输出阻抗 Ro)的测试方法。
二.实验元器件及仪器
1.元器件
三极管
9013 1 个
可选电容
若干
可选电阻、变阻器、电阻箱
若干
2.仪器
示波器、直流稳定电源、DDS 信号发生器、数字万用表

(完整word版)微机原理完整实验报告+程序

(完整word版)微机原理完整实验报告+程序

实验题目8253定时/计数器实验 一、 实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

2. 掌握8253定时器/计数器的工作方式和编程原理。

二、 实验内容: 1、实验原理 本实验原理图如图 1所示,8253A 的A0、A1接系统地址总线 A0、A1,故8253A 本实验通道2 有四个端口地址,如端口地址表 1所示。

8253A 的片选地址为 48H~ 4FH 。

因此, 仪中的8253A 四个端口地址为 48H 、49H 、4AH 、4BH ,分别对应通道 0、通道1、 和控制字。

采用8253A 通道0,工作在方式3(方波发生器方式),输入时钟CLK0为 输出OUTO 要求为1KHZ 的方波,并要求用接在 GATE0引脚上的导线是接地("0" 甩空("1"电平)来观察GATE 对计数器的控制作用,用示波器观察输出波形。

2、实验线路连接 (1) 8253A 芯片的CLK0引出插孔连分频输出插孔 (2) 8253A 的 GATE0 接+5V 。

实验步骤 (1) 按图1连好实验线路(2) 运行实验程序 1. 按“调试”按钮2. 选“窗口” “进入示波器窗口” ,然后最小化3. 按“运行按钮”4.将模拟示波器窗口打开,选择“串行口 2”,再按 Ctrl + F2按钮即可看到波形 显示“ 8253-1 ”用示波器测量8253A 的OUT2输出插孔,方波输出,幅值0〜4V 三、实验代码: 1MHZ ,电平)或 3、 CODE SEGMENT ASSUME CS:CODE TCONTRO EQU 004BH TCON2 EQU 004AH CONT PORT EQU 00DFH DATA PORT EQU 00DEH DATA1 EQU 0500H START: JMP TCONT TCONT: CALL FORMATCALL LEDDIS P MOV DX,TCONTRO1MHZ 。

桂电计算机学院java实验指导书

桂电计算机学院java实验指导书
1
桂林电子科技大学计算机科学与工程学院 Java 实验指导书


JAVA 语言程序设计的预备知识 ··········································································· 4 实验一 实验二 实验三 实验四 实验五 实验六 实验七 实验八 JAVA 开发环境及基本语法 ····································································· 6 系统类和数组 ··················································································· 12 图形界面程序的界面设计 ···································································· 18 图形界面程序的事件处理 ···································································· 25 异常······························································································· 33 多线程 ···························································································· 40 流与文件 ························································································· 54 网络······························································································· 64

桂电自动测试系统程序

桂电自动测试系统程序
#include"visa.h"
#include"visatype.h"
void main()
{ ViSession def,funcgen,osci;
char buf[512]={0};
int freq=10,i;
viOpenDefaultRM(&def);
viOpen(def,"GPIB2::2::10::INSTR",VI_NULL,VI_NULL,&funcgen);
for(i=0;i<20;i++)
{
viPrintf(funcgen,"APPL:SIN%d,2.0\n",freq);
viQueryf(osci,"MEAS:VOLT:AC? \n","%s",&buf);
printf("when freq is %dhz: the vpp is %s\n",freq,buf);
Sleep(1500);
viQueryf(osci,"MEASURE:VPP? CHANNEL1\n","%t",buf);
printf("when freq is %dhz: the vpp is %s\n",freq,buf);
freq=freq+200;
}
viUnlock(funcgen);
for(int k=1;k<=20;k++)
{
viPrintf(funcgen,"APPL:SIN 3000,2.0,-2.5\n",freq);

桂电汇编实验报告(14200字)

桂电汇编实验报告(14200字)

桂电汇编实验报告(实验报告实验名称||实验一汇编语言上机过程和Debug常用调试命令一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。

二、实验题目熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。

在调试过程中,学习及掌握debug程序的各种操作命令。

三、问题描述试编写一程序:比较两个字符串string则显示‘match’; 否则,显示‘no match’。

四、方法说明a) 使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。

b) 用汇编程序masm(或asm)对源文件汇编产生目标文件obj如:汇编指示出错则需失效当新调用编辑程序修改错误,直至汇编通过为止。

c) 用连接程序link 产生执行文件EXE.d) 执行程序,可直接从DOS执行程序。

e) 使用debug程序调试程序的方法。

五、实验步骤datarea segmentstringstringmessmessdatarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datarea start:push dssub ax,axpush axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2 cldmov cx,repz cmpsbjz matchlea dx,mess2 jmp short disp match:lea dx, mess1 disp:mov ah,09int 2retmain endp prognam endsend startD:\ 文件名_实验二循环程序设计1循环结构是控制重复执行某一特定程序段的基本程序结构. 在汇编语言程序设计中所, 循环程序的地位也是极为重要,从本质上来看,循环程序结构是分支程序结构的一种手特殊形式, 也是使用条件转移指令来控制执行循环的.一、实验目的学会用循环结构实施进行程序编程。

2015年桂林电子科技大学807微机原理及应用(A2)(2015-B)考研真题

2015年桂林电子科技大学807微机原理及应用(A2)(2015-B)考研真题

桂林电子科技大学2014年研究生统一入学考试试题科目代码:807 科目名称:微机原理及应用(A2)请注意:答案必须写在答题纸上(写在试题上无效)。

一、填空题(每空1分,共30分)1、8086CPU内部基址寄存器有和。

2、-120的原码是,补码是。

3、BCD码有和两种。

4、已知AX=C386H, BX=4F87H,执行指令ADD AX, BX后,标志位PF为,AF为,OF为。

IR OM/RW D5、执行指令IN 23H, AL后,为,为,为。

6、变量具有、和三种属性。

7、某RAM芯片容量为16K×4,访问该芯片需要根地址线和根数据线,要扩展成256K×8的存储器需要片该芯片。

8、8086CPU的I/O端口控制方式有,和三种。

9、中断控制器8259A内部用于设置中断类型号的寄存器是,用于屏蔽外部中断的寄存器是。

10、并行接口芯片8255A的A组由端口和组成,A组有种工作方式。

11、某12位A/D转换器,参考电压为10V,能分辨的最小电压为伏,当输入电压为2.5V时,输出为。

12、定时器8253内部有个位的计数器。

二、选择题(每题2分,共30分)1、在微机中,有符号数一律采用()表示,运算时符号位与数字位一起参加运算。

A. 原码B. 反码C. 补码D. BCD码2、逻辑地址2000H:1000H所对应的物理地址为()。

A. 1200HB. 12000HC. 2100HD. 21000H3、8086CPU标志寄存器中用来表示进位的是()。

A.OF B. CF C.IF D. AF4、以下寄存器不是8086CPU中的段地址寄存器的是()。

A.SIB. DSC. SSD. CS5、执行MOV AX, 0A742H指令后,AL寄存器中的值为()。

A. 0AHB. 0A7H C.74H D. 42H6、运算器由很多部件组成,其核心部分是()。

A. 数据总线 B.累加器 C.寄存器 D.多路开关7、用BP作基址加变址寻址时,操作数所在的段是当前()A.代码段B.数据段C.堆栈段 .附加数据段8、某异步串行通信中传送一个字符的一帧数据中,包括1个起始位、6个数据位、1个偶校验位和2个停止位,若传送波特率为1200,则每秒能传送()个字符。

桂电智能仪器实验代码

桂电智能仪器实验代码

实验1 ORG 0030HAJMP MAINBUFF EQU 60HMAIN: MOV R3,#00HMOV R4,#00HACALL DISPLAYACALL KEXAMJZ MAINACALL D10msACALL KEXAMJZ MAINMOV R2,#0DFHMOV DPTR,#8004HMOV A,#00HMOVX @DPTR,AKEY1: MOV DPTR,#8002HMOV A,R2MOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHJNZ KEY2MOV A,R3ADD A,#04HMOV R3,AMOV A,R2RR AMOV R2,AJB ACC.1,KEY1AJMP MAINKEY2: CPL AKEY3: RRC AJNC KEY4INC R4AJMP KEY3KEY4: ACALL D10msACALL KEXAMJNZ KEY4MOV A,R3ADD A,R4MOV BUFF,AAJMP MAINKEXAM: MOV DPTR,#8002HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETDISPLAY:MOV DPTR,#TABMOV A,60HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#10HMOVX @DPTR,ACJNE R1,#00H,K1LJMP P11K1: CJNE R1,#01H,K3LJMP P22K2: CJNE R1,#02H,K3LJMP P33K3:RETD10ms:MOV R5,#14HDL: MOV R6,#0FFHDL0: DJNZ R6,DL0DJNZ R5,DLRETP11: MOV P1,#01HACALL D10msACALL D10msACALL D10msMOV P1,#02HACALL D10msACALL D10msACALL D10msMOV P1,#04HACALL D10msACALL D10msACALL D10msACALL D10msMOV P1,#08HRETP22: MOV P1,#01HACALL D10msMOV P1,#02HACALL D10msMOV P1,#04HACALL D10msMOV P1,#08HRETP33: MOV P1,#08HACALL D10msMOV P1,#04HACALL D10msMOV P1,#02HACALL D10msMOV P1,#01HRETTAB: DB 3FH 06H 66H 07HDB 71H 5BH 6DH 7FHDB 79H 4FH 7DH 6FHDB 5EH 39H 7CH 77H实验2ORG 0000HAJMP MAINORG 0100HMAIN: ACALL KEXAM ;检查按键JZ MAIN ;无继续ACALL D10ms ;延时去抖JZ MAINSTART: MOV DPTR,#8002H ;键值分析及选通道MOV A,#0DFHMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#03HCJNE A,#01H,KEY1 ;INT0AJMP INT0KEY1: CJNE A,#02H,MAIN ;INT1AJMP INT1INT0: ACALL DISPLAY1MOV A,#0FH ;0-5VMOV DPTR,#9000HMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRMOV @R0,AACALL CAIACALL DISPLAYACALL KEXAMJZ INT0AJMP STARTINT1: ACALL DISPLAY2MOV A,#0FH ;固定值MOV DPTR,#9001HMOV R0,#40HMOVX @DPTR,AACALL D10msMOVX A,@DPTRMOV @R0,AACALL CAIACALL DISPLAYACALL KEXAMJZ INT1AJMP STARTKEXAM: MOV DPTR,#8004H ;按键判断MOV A,#00HMOV DPTR,#8002HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETCAI: MOV A,@R0 ;数据处理MOV B,#51DIV ABMOV 40H,AMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LOOP2ADD A,#5LOOP2:MOV 41H,AMOV A,BMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LOOP3ADD A,#5LOOP3:MOV 42H,ARETDISPLAY:MOV DPTR,#TAB ;列表显示个位整数40H MOV A,40HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV A,#10HMOVX @DPTR,AACALL D10msMOV A,#80H ;小数点MOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#10HMOVX @DPTR,AACALL D10msMOV DPTR,#TAB ;余数41H 42HMOV A,41HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#08HMOVX @DPTR,AACALL D10msMOV DPTR,#TABMOV A,42HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#04HMOVX @DPTR,AACALL D10msRETDISPLAY1: MOV A,#3FHMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#20HMOVX @DPTR,ALCALL D10msRETDISPLAY2: MOV A,#3FHMOV DPTR,#8004HMOV DPTR,#8002HMOV A,#20HMOVX @DPTR,ALCALL D10msRETD10ms: MOV R5,#03H ;延时10 DL: MOV R6,#0FFHDL0: DJNZ R6,DL0DJNZ R5,DLRETTAB: DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71H实验3ORG 0000HAJMP MAINORG 0100HMAIN:ACALL KEXAMJZ MAINACALL D10msACALL KEXAMJZ MAINKEY0: MOV DPTR,#8002HMOV A,#0DFHMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#03HCJNE A,#01H,KEY1AJMP T0KEY1: CJNE A,#02H,MAINAJMP T1T0: MOV R7,#00HL0: MOV DPTR,#9000HMOV A,R7MOVX @DPTR,AINC R7CJNE R7,#00H,L0ACALL KEXAMJZ T0AJMP KEY0T1: ACALL D10msACALL KEXAMJZ T1AJMP KEY0KEXAM: MOV DPTR,#8004HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETD10ms: MOV R5,#03HDL: MOV R6,#0FFHDL0: DJNZ R6,DL0DJNZ R5,DLRETTAB: DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71H实验四ORG 0000HAJMP MAINORG 0100HMAIN: ACALL KEXAMJZ MAINACALL D10msACALL KEXAMJZ MAINKEY0: MOV DPTR,#8002HMOV A,#0DFHMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#03HCJNE A,#01H,KEY1AJMP T0KEY1: CJNE A,#02H,MAINAJMP T1T0: MOV R7,#00HL0: MOV DPTR,#9000HMOV A,R7MOVX @DPTR,AINC R7CJNE R7,#00H,L0ACALL KEXAMJZ T0AJMP KEY0T1: ACALL D10msACALL KEXAMJZ T1AJMP KEY0KEXAM: MOV DPTR,#8004HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETD10ms: MOV R5,#03HDL: MOV R6,#0FFHDL0: DJNZ R6,DL0DJNZ R5,DLRET实验5ORG 0000HAJMP KEYPRORG 0200HKEYPR:MOV R3,#00H ;列寄存器MOV R4,#00H ;行寄存器ACALL KEXAMJZ KENDACALL D10msACALL KEXAMJZ KENDMOV R2,#0DFH ;扫描初值KEY1:MOV DPTR,#8004HMOV A,#00HMOVX @DPTR,AMOV DPTR,#8002H ;送列码地址MOV A,R2MOVX @DPTR,A ;扫描第一列MOV DPTR,#8001H ;送行码地址MOVX A,@DPTRCPL AANL A,#0FHJNZ KEY2 ;有键按下,求行值MOV A,R3 ;无键按下,列加4ADD A,#04HMOV R3,AMOV A,R2 ;求下一列扫描值RR AMOV R2,AJB ACC.1,KEY1 ;判断是否已全扫描AJMP KENDKEY2:CPL A ;恢复行模型KEY3:RRC AJNC KEY4INC R4AJMP KEY3KEY4:ACALL D10msACALL KEXAMJNZ KEY4MOV A,R3ADD A,R4MOV 60H,A ;键值存入60HL0:CJNE A,#00H,L1MOV DPTR,#DLTABMOV A,30HCJNE A,#05,ADDF1MOV 30H,#00HLJMP ADDF2ADDF1:INC 30HADDF2:MOVC A,@A+DPTRMOV 31H,ADLTAB:DB 01H,20H,50H,80H,0A0HL1:CJNE A,#0FH,L2 ;锯齿波LS0:MOV DPTR,#9000HMOV A,#00H;MOV R0,#0FFHLS1:MOVX @DPTR,AINC AACALL DELAY;DJNZ R0,LS1CJNE A,#0FFH,LS1ACALL DISPLAYACALL KEXAMJZ LS0AJMP KENDKEND:ACALL DISPLAYLJMP KEYPRRETL2:CJNE A,#0EH,L3 ;三角波LS2: MOV DPTR,#9000HMOV A,#00H;MOV R0,#500LS3: MOVX @DPTR,AINC ACJNE A,#0FFH,LS3ACALL DELAYLS4: DEC AMOVX @DPTR,ACJNE A,#00H,LS4ACALL DELAY;DJNZ R0,LS3;ACALL D10msACALL DISPLAYACALL KEXAMJZ LS2AJMP KENDL3:CJNE A,#0DH,KEND ;正弦波LS5:MOV A,#00MOV R0,ALS6: MOV DPTR,#TZSBMOV A,R0MOVC A,@A+DPTRMOV DPTR,#9000HMOVX @DPTR,AACALL DELAYINC R0CJNE R0,#32,LS6;ACALL D10msACALL DISPLAYACALL KEXAMJZ LS5AJMP KEND;AJMP LS5DISPLAY:MOV DPTR,#TAB ;显示子程序MOV A,60HMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,AMOV DPTR,#8002HMOV A,#01HMOVX @DPTR,ARETD10ms:MOV R5,#03H ;延时10毫秒DL: MOV R6,#0FFHDL0: DJNZ R6,DL0DJNZ R5,DLRETDELAY:MOV R6,31HDL1:DJNZ R6,DL1RETKEXAM:MOV DPTR,#8002H ;检查是否有键按下子程序MOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETTAB:DB 3FH,06H,66H,07H,71H,5BH,6DH,7FH,79H,4FH,7DH,6FH,5EH,39H,7CH,77H TZSB: DB 80H , 98H, 0B0H, 0C6H, 0DAH, 0EAH, 0F5H, 0FDHDB 0FFH, 0FDH, 0F5H , 0EAH, 0DAH, 0C6H, 0B0H, 98HDB 7FH , 67H, 4FH , 39H, 25H, 15H, 0AH, 02HDB 00H, 02H, 0AH, 15H, 25H, 39H, 4FH, 67H。

C语言程序设计实验1-5+附录20111121

C语言程序设计实验1-5+附录20111121

实验要求1.掌握C程序设计开发的基本步骤2.熟悉一款进行C程序设计的开发工具3.通过运行简单的C语言程序,熟悉C语言的基本格式规范实验内容内容一:运行程序根据老师的演示,运行老师提供的源程序,观察每一个程序的输出结果。

在Visual C++中编译分别Hello.c、Comparing.c和Graph.c三个源程序,并运行其对应的可执行程序。

将演示项目文件夹中的zip或rar文件进行解压,然后运行其中的可执行程序。

观察这些程序的运行效果。

图1. 黑白棋程序运行效果图2. 动态方格程序运行效果图3. 繁星点点程序运行效果内容二:改编程序1.在给出的源程序Hello.c中,改编相应的程序语句使得程序能够实现如下功能:a.在屏幕输出自己的学号和姓名,比如:格式一:1100230201 Zhang San格式二:1100230201Zhang San注:Zhang San是姓名,可以在输出的时候直接用中文代替,例如:1100230201张三注:蓝色字体表明的是屏幕输出仔细思考如何输出格式二的形式。

如何进行输出换行?b.在屏幕输出如下信息Hello worldWelcomeThis is a test注:蓝色字体表明的是屏幕输出2. 在给出的Comparing.c中,改编相应的程序语句使得程序能实现如下要求:a.从键盘输入一个整数,如果是正数,输出该数*2以后的结果值,如果是负数,输出该数b.在Comparing.c的基础上,自己编写程序,改程序能实现如下功能:输入一个字符,判定字符是字母,数字还是其他符号注:可以根据ASCII码表,判断一个字符是字母还是数字及其他符号。

例如小写字母对应的字符范围是’a’ ~ ’z’,大写字符对应的字符范围是’A’ ~ ’Z’;3.在给出的Graph.c中,改编相应的程序语句使得程序能实现如下要求:a.将长方形的边界改为& 符号;b.改变长方形的长度和宽度,长度和宽度自己确定;c.自己设计输出一个菱形(先在纸上画好菱形后,在程序中设置相应的语句实现)内容三:模仿创新参照Hello.c程序,自行设计一个程序使得该程序能在屏幕中输出如下信息:Menu=========================================1.Input the students’ names and scores2.Search scores of some students3.Modify scores of some students4.List all students’ scores5.Quit the system=========================================实验报告内容实验报告内容必须包含内容二和内容三中的所有内容的源代码。

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

1,字符串小于6时,六分频DATA SEGMENTBUF DB 20DB ?DB 20 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA,START:MOV AX, DATAMOV DS, AXMOV AH, 0AHLEA DX, BUF ;键盘输入到缓存区INT 21HLEA SI,BUFMOV AL,[SI+1]CMP AL,6JAE LMOV AL,36HMOV DX,283HOUT DX,ALMOV AX,1000MOV DX,280HOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,76HMOV DX,283HOUT DX,ALMOV AX,167MOV DX,281HOUT DX,ALMOV AL,AHOUT DX,ALL:MOV AH,4CHINT 21HCODE ENDSEND START2,8255 显示第一个字母的ASSII 码X;输入一串字符然后用8255 显示第一个字母的ASSII 码用开关来控制显示和不显示DATA SEGMENTBUF DB 20 ;最大输入字符串字符数DB ? ;实际输入字符数DB 20 DUP(?) ;字符缓存,从这里开始存放输入的字符串,偏移地址为2 DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DX,28BH ;8255 配置MOV AL,80H ;方式0,C口输出OUT DX,AL ;配置成功MOV DX,OFFSET BUFMOV AH,0AH ;0A 号功能输入一串字符INT 21HLEA BX,BUFMOV DX,28AHMOV AL,[BX+2] ;前面说了第一个字符的偏移地址为2OUT DX,ALMOV AX,4C00HINT 21HCODE ENDSEND START3、8255灯闪烁;37dengliangCODE SEGMENTASSUME CS:CODESTART:MOV DX,28BH;初始化MOV AL,80HOUT DX,ALMOV CX,10;循环次数SS1:MOV DX,28AH;A端口MOV AL,88H;全部亮OUT DX,ALCALL DELAY;调用延时MOV DX,28AH;C口OUT DX,ALCALL DELAYLOOP SS1MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXPUSH DIMOV CX,1000Y1: MOV DI,9000X1: DEC DIJNZ X1LOOP Y1POP DIPOP CXRETDELAY ENDPCODE ENDSEND START4、a+b显示结果CODE SEGMENTASSUME CS:CODESTART:MOV DX,28BH ;8255 控制寄存器设置MOV AL,80H ;配置为 A 口 C 口均为方式0 的输出模式,实验中你用哪个口都OK OUT DX,AL ;实现配置MOV AH,01H ;DOS 01 号功能输入数字1INT 21HSUB AL,30H ;ASCII 码转成实际数字MOV BL,AL ;将输入结果暂存在BL 中,因为后面输入还用到ALMOV AH,01H ;输入数字2INT 21HSUB AL,30HADD BL,AL ;两数相加结果存放在BL 中MOV DX,28AH ;A 口地址OUT DX,AL ;数据送到8255A 口进行显示MOV AH,02H ;输出回车MOV DL,0DHINT 21HMOV AH,02H ;换行,为屏幕输出结果准备下MOV DL,0AHINT 21HCMP BL,10 ;判断和是否大于10JB DISPSUB BL,10 ;大于10 的数减去10 就只剩下了个位MOV AH,02H ;02 号功能输出十位1MOV DL,1+30HINT 21HDISP:ADD BL,30HMOV AH,02H ;02 号功能输出个位MOV DL,BLINT 21HMOV AX,4C00HINT 21H ;返回到DOSCODE ENDSEND START5、X大于等于y减6;当X>=Y-6时,用8255使LED灯闪烁。

CODE SEGMENTASSUME CS:CODEMAIN:MOV DX,28BH ;8255 初始化MOV AL,80HOUT DX,ALMOV AH,1 ;输入第一个字符YINT 21HMOV BL,AL ;暂存第一个字符在BLSUB BL,6MOV AH,1 ;输入第二个字符XINT 21HCMP AL,BL ;比较第一个字符和第二个字符的大小JB STOP ;如果小于,则跳转MOV CX ,100LED:MOV AL,0FFH ;1000 0000 PA7输出高电平MOV DX,28AHOUT DX,ALCALL DELAYMOV AL,00H ;1000 0000 PA7输出低电平MOV DX,28AHOUT DX,ALCALL DELAYJMP LED ;用loop野性STOP:MOV AX,4C00HINT 21HDELAY PROC NEARPUSH CXPUSH DIMOV CX,100HY1: MOV DI,1000HX1: DEC DIJNZ X1LOOP Y1POP DIPOP CXRETDELAY ENDPCODE ENDSEND MAIN6,X小于yokX;用键盘输入两个字符XY,若X<Y,则通过8255 点亮一盏LED,否则熄灭LED。

CODE SEGMENTASSUME CS:CODEMAIN:MOV DX,28BH ;8255 初始化MOV AL,80HOUT DX,ALMOV AH,01H ;输入第一个字符INT 21HMOV BL,AL ;暂存第一个字符在BLMOV AH,01H ;输入第二个字符INT 21HCMP BL,AL ;比较第一个字符和第二个字符的大小JB BELOW ;如果小于,则跳转MOV AL,00H ;如果大于,则熄灭LEDMOV DX,28AHOUT DX,ALJMP EXITBELOW:MOV AL,0FFH ; quan点亮LEDMOV DX,28AH ;C口OUT DX,ALEXIT:MOV AH,4CHINT 21HCODE ENDSEND MAIN7、流水灯CODE SEGMENTASSUME CS:CODESTART: MOV DX,28AHMOV AL,80HOUT DX,ALMOV CX,00FFHMOV BL,80HL1: MOV DX,28AHMOV AL,BLOUT DX,ALCALL DELAYROL BL,1LOOP L1QUIT:MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXPUSH DIMOV CX,1000Y1: MOV DI,9000X1: DEC DIJNZ X1LOOP Y1POP DIPOP CXRETDELAY ENDPCODE ENDSEND START8、输入两个字符相同XDATA SEGMENTSTRI DB 0DH,0AH,'NO MATCH$'DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DX,28BH ;8255 控制寄存器设置MOV AL,80H ; A 口、C 口均为方式0 的输出模式,实验中你用哪个口都OK OUT DX,AL ;实现配置MOV AH,01H ;输入第一个字符INT 21HMOV BL,AL ;结果暂存在BL 中MOV AH,01H ;输入第二个字符INT 21HCMP BL,AL ;两个字符相比较JZ MATCH ;相等则用8255 输出到LED;如果不相等则输出下面的字符串MOV DX,OFFSET STRI ;获取NO MATCH 字符的偏移地址MOV AH,09H ;调用09 号功能输出字符串INT 21HJMP ENDCMATCH:MOV DX,28AHMOV AL,BLOUT DX,AL;使用8255 A 口输出ENDC:MOV AH,4CHINT 21HCODE ENDSEND START9、输入量字符小的屏幕显示大的led;键盘输入两个数字,比较大小,小的再屏幕显示,大的通过8255 用发光二极管显示。

CODE SEGMENTASSUME CS:CODESTART:MOV DX,28BH ;8255 配置MOV AL,80H ;A 口输出模式OUT DX,AL ;配置完成MOV AH,01H ;01 号功能输入第一个数字INT 21HMOV BH,AL ;结果暂存MOV AH,01H ;输入第二个数字INT 21HMOV BL,AL ;结果暂存CMP BL,BH ;两数比较JB BELOW;如果BL 不小于BH,则BL,BH 交换MOV AL,BLMOV BL,BHMOV BH,ALBELOW :MOV AH,02H ;显示回车换行为输出结果准备MOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HMOV AH,02H ;02 功能显示小值MOV DL,BLINT 21HSUB BH,30H ;输出实际大小MOV DX,28AH ;用A 口输出大的值MOV AL,BHOUT DX,AL ;输出MOV AX,4C00HINT 21HCODE ENDSEND START10、小写转大写屏蔽数字DATA SEGMENTMSG1 DB 'INPUT STRING:$'MSG2 DB 'OUTPUT STRING:$'MSG3 DB 0DH,0AH,'$' ;或MSG3 DB 13,10,'$'回车换行BUF DB 30DB ?DB 30 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX ;数据段初始化LEA DX,MSG1 ;或MOV DX,OFFSET MSG1,提示输入字符MOV AH,09H ;字符串输出INT 21HMOV DX,OFFSET BUF ;或LEA DX,BUFMOV AH,0AH ;字符串输入INT 21HLEA DX,MSG3 ;回车换行MOV AH,09HINT 21HLEA DX,MSG2 ;提示输出结果MOV AH,09HINT 21HMOV SI,OFFSET BUF ;LEA SI,BUF SI指针取字符MOV CL,[SI+1] ;SI+1存的是字符串实际长度MOV CH,00HCMP CX,00H ;目标-源,结果不回送,只根据运算结果置标志位JZ STOP ;结果为0(ZF=1)跳转,判断字符串长度是不是0ADD SI,2 ;实际存放字符串的开始NEXT: MOV AL,BYTE PTR[SI] ;字符类型判断CMP AL,30H ;和a比较JB NEXT1 ;低于(CF=1)跳转CMP AL,39H ;和z比较JA NEXT1 ;高于跳转INC SILOOP NEXTNEXT1:CMP AL,61H ;和a比较JB NEPA ;低于(CF=1)跳转CMP AL,7AH ;和z比较JA NEPA ;高于跳转SUB AL,20H ;小写转换成大写MOV BYTE PTR[SI],ALNEPA: MOV AH,02HMOV DL,[SI] ;输出结果INT 21HINC SILOOP NEXTSTOP: MOV AH,4CH ;返回DOS INT 21HCODE ENDSEND START11、去缔几个字符位数字DATA SEGMENTSTRING1 DB 'Press any keys please: ', 10, 13, 24H STRING2 DB 13, 10, 'The string is: ', 10, 13, 24H BUF1 DB 20DB ?DB 20 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, ES:DATA START:MOV AX, DATAMOV DS, AXL:MOV AH, 09H ;输入提示LEA DX, STRING1INT 21HMOV AH, 0AHLEA DX, BUF1 ;键盘输入到缓存区INT 21HMOV AH, 09H ;输出提示LEA DX, STRING2INT 21HLEA SI, BUF1 ;键盘输入缓存区;MOV CL, [SI] ;取出实际输入个数;MOV CH, 0L3:MOV AH, 02H ; 显示MOV DL, [SI+3];显示第2个字符INT 21HINC SICMP DL,30HJBE EXITCMP DL,39HJAE EXITMOV DX,28BHMOV AL,80HOUT DX,ALMOV CX,00FFHMOV BL,80HLL: MOV DX,28AHMOV AL,BLOUT DX,ALCALL DELAYROR BL,1LOOP LLQUIT:MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXPUSH DIMOV CX,1000 Y1: MOV DI,9000 X1: DEC DIJNZ X1LOOP Y1POP DIPOP CXRETDELAY ENDPEXIT:MOV AH, 4CHINT 21H CODE ENDSEND START。

相关文档
最新文档