文档库 最新最全的文档下载
当前位置:文档库 › c语言虚拟存储器

c语言虚拟存储器

c语言虚拟存储器
c语言虚拟存储器

#include

#include

#include

#define M 3 //内存页数

#define N 20 //页面引用序列数

#define Myprintf printf("---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---\n") /*表格控制*/

//定义页面的存储结构

typedef struct page

{

int num; //记录页面号

int time; //记录调入内存时间

int visitBit; //访问位

}Page;

Page P[M]; //内存单元数

int c[M][N]; //暂保存内存当前的状态

int queue[M]={-1,-1,-1}; //记录调入内存的页面

int front=0; //队列头指针

int current=0;

//初始化内存单元、缓冲区

void Init(Page *p,int c[M][N])

{

int i,j;

for(i=0;i

{

p[i].num=-1;

p[i].time=N-i-1;

p[i].visitBit=0;

}

for(i=0;i

for(j=0;j

c[i][j]=-1;

}

//判断页面是否已在内存中

int Equation(int fold,Page *p)

{

int i;

for(i=0;i

{

if (fold==p[i].num)

return i;

}

return -1;

}

//先进先出页面置换算法,加载的页面已在内存中,则

//返回0。否则置换出最先调入内存的页,并返回1

int FIFO(int fold,Page *p)

{

int i,y;

int val=Equation(fold,p);

if(val<0) //请求页面不在内存

{

y=queue[front]; //最先调入内存的页出队

queue[front]=fold; //加入队尾

front=(front+1)%M;

for(i=0;i

if(y==p[i].num)

{

p[i].num=fold; //页面置换

break;

}

return 1;

}

return 0;

}

//LRU置换算法

//取得在内存中停留最久的页面,默认状态下为最早调入的页面int GetMax(Page *p)

{

int i;

int max=-1;

int tag=0;

for(i=0;i

{

if(p[i].time>max)

{

max=p[i].time;

tag=i;

}

}

return tag;

}

//LRU核心部分

int LRU(int fold,Page *p)

{

int i;

int a;

a=Equation(fold,p);

if (a>=0)

{

p[a].time=0;

for(i=0;i

if (i!=a)

p[i].time++;

return 0;

}

else

{

a=GetMax(p);

p[a].num=fold;

p[a].time=0;

for(i=0;i

if (i!=a)

p[i].time++;

return 1;

}

}

//时钟置换算法

//取的内存中访问位为0的淘汰页面int GetClockPage(Page *p)

{

int i;

for(i=0;i

{

if(0==p[current].visitBit)

return current;

else

{

p[current].visitBit=0;

current=(current+1)%M;

}

}

return current;

}

int Clock(int fold,Page *p)

{

int val;

val=Equation(fold,p);

if(val<0)

{

val=GetClockPage(p);

p[val].num=fold;

p[val].visitBit=1;

return 1;

}

return 0;

}

//显示换页过程

void Printf(int a[],int q[],int k)

{

int i,j;

printf("显示换页过程:\n");

Myprintf;

for(j=0;j

printf("%2d |",a[j]);

Myprintf;

for(i=0;i

{

for(j=0;j

{

if(c[i][j]==-1)

printf("%2c |",32);

else

printf("%2d |",c[i][j]);

}

}

Myprintf;

printf("\n调入队列为:");

for(i=0;i

printf("%3d",q[i]);

printf("\n缺页次数为:%6d\n缺页率:%16.6f\n",k+1,(float)(k+1)/N);

printf("\n");

}

int Menu()

{

int i;

printf("\t\t*******************页面置换算法******************* \n");

printf("\t 1.先进先出置换算法(FIFO) \n");

printf("\t 2.最近最久未使用算法(LRU) \n");

printf("\t 3.时钟置换算法(CLOCK) \n");

printf("\t 4.退出\n");

printf("\t\t******************请输入您的选择******************\n");

scanf("%d",&i);

getchar();

return i;

}

//主函数

void main()

{

int i,j,flag;

int q[100]; //记录调入队列

int k ; //调入队列计数变量

int a[N]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};

while(1)

{

flag=Menu();

switch(flag)

{

case 1: //先进先出置换算法(FIFO)

{

Init(P,c);

k=-1;

for(i=0;i

{

if(FIFO(a[i],P))

q[++k]=a[i]; //记录调入页面

c[0][i]=a[i];

for(j=0;j

c[j][i]=P[j].num;

}

Printf(a,q,k);

}

break;

case 2: //最近最久未使用算法(LRU)

{

Init(P,c);

k=-1;

for(i=0;i

{

if(LRU(a[i],P))

q[++k]=a[i]; //记录调入页面

for(j=0;j

c[j][i]=P[j].num;

}

Printf(a,q,k);

}

break;

case 3: //时钟置换算法(CLOCK)

{

Init(P,c);

k=-1;

for(i=0;i

{

if(Clock(a[i],P))

q[++k]=a[i]; //记录调入页面

else //访问页已在内存,访问位置1

{

for(j=0;j

if(a[i]==P[i].num)

P[i].visitBit=1;

}

current=(current+1)%M;

for(j=0;j

c[j][i]=P[j].num;

}

Printf(a,q,k);

}

break;

case 4:

{

printf("欢迎使用!\n");

exit(1);

}

break;

}

}

}

第六章 单片机系统综合实验

第六章 单片机系统综合实验 6.1 单片机基本实验 实验6-1.存储器块清零程序设计 (1)实验目的。1. 掌握存储器读写方法;2. 了解存储器的块操作方法。 (2)实验内容:1. 指定内部RAM 中某块的起始地址和长度,要求能将其内容清零。2. 指定外部RAM 中某块的起始地址和长度,要求能将其内容清零。3. 指定外部RAM 中某块的起始地址和长度,要求能将其内容置为某固定值(如012H )。 (3)实验说明。通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。 (4)参考程序框图。1、程序参考流程如图6-1所示;2、参考程序如下: BLOCK EQU 0400H ORG 0000H LJMP START ORG 0030H START : MOV DPTR,#BLOCK ;DPTR ←起始地址 MOV R0, #0FFH ;R0←块长度 MOV A,#0 ; A ←0 LOOP: MOVX @DPTR,A ;当前地址内容清0 INC DPTR ;地址加1 DJNZ R0,LOOP ; 计数器减1,循环 SJMP $ ; 结束 END 图6-2 程序窗口(存储器块赋值程序) 图6-3 外部数据存储器XDATA 空 间窗 例如若要将从0400H 开始的255个字节外部数据存储器块的内容置成12H 值,请修改以上程序完成此操作,注意在程序调试过程中数据的变化情况。注意在程序调试过程中数据的变化情况。3、程序调试过程。程序窗口如图6-2所示。可通过观察外部数据存储器窗口XDATA 了解程序运行结果,运行结果如图6-3所示。 图6-1 程序流程图

实验1存储器块清零

实验一存储器块清零 软件操作过程:新建文件→保存文件(汇编语言后缀.ASM、C语言后缀.C)→新建项目(出现3个对话框)→对话框1:加入模块文件(选择要加的文件)→对话框2:加入包含文件(头文件之类的,没有可以点取消)→对话框3:保存项目(输入项目名称,注意项目和加入的文件必须在同一个文件夹中)→打开相应的模块文件,输入程序→点击绿色“开始”按钮,运行检查错误修改,直到没有错误为止。 窗口:CPU窗口——特殊功能寄存器窗口、工作寄存器窗口 数据窗口——DATA片内数据存储器 XDAT片外数据存储器 CODE程序存储器 BIT 位存储区 仿真器设置:点仿真器→仿真器设置→选择仿真(Lab2000p仿真)→选择仿真头(MCS51实验)→选择CPU(8031/8032)→选择是否使用软件模拟器→点击好 请编写程序,将片内RAM 30H-4FH单元中的内容清零。 MOV R0,#30H MOV R1,#32 L0:MOV @R0,#00H INC R0 DJNZ R1,L0 SJMP $ 请编写程序,将片内RAM 60H-7FH单元中的内容置为FEH。 MOV R0,#60H MOV R1,#32 L0:MOV @R0,#0FEH INC R0 DJNZ R1,L0 SJMP $

1、片外ram50h—7fh内容置为:feh MOV DPTR,#50H MOV R1,#48 MOV A,#0feH L0:MOVX @DPTR,A INC DPTR DJNZ R1,L0 SJMP $ 2、片内RAM 20H-4FH中内容置为(20h)=00h,(21h)=01h,(22h)=02h, ,(4fh)=2fh MOV A,#00H MOV R1,#20H MOV R0,#48 MOV @R1,A LOOP: INC A INC R1 MOV @R1,A DJNZ R0,LOOP END

单片机实验报告

单片机实验报告 实验一:存储器块清零或赋值 一、实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二、实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的10个字节内容清零或全部赋值为33H。 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 三、实验仪器 微机、VW,WA VE6000编程环境软件,(单片机实验箱) Lab6000/Lab6000通用微控制器MCS51实验 四、实验步骤 1、新建工程文件。(注意:文件不要用中文名称保存时不要用中文路径)

2、编写程序。 3、运行和调试过程。 外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH): 单步执行程序,观察SFR中外部地址指针的变化; 全速执行程序,可以看到外部数据存储器已赋值33H:

五、实验结果 可以看到外部数据存储器已赋值33H: 六、问题讨论 本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。同时,学习掌握汇编程序的编写和调试过程。 实验二:存储块移动 一、实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二、实验内容 将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 由于源地址和目的地址的内容都一样(FF),调试时看不到内容的变化,所以需要给源地址内容赋值。有多种赋值方式(比如在搬移循环体内,赋值一个搬移一个,请在空白处添

模拟示波器的基本工作原理

模拟示波器的基本工作原理 1. 回顾中学的沙漏实验——随时间变化的信号如何在平面展示 物理学理论可以证明,一端通过细绳固定的重物在作摆动时,与中心垂线的距离满足正弦波规律。沙漏实验可以清晰地显示这个随时间变化的波形:用沙漏充当重物,并且在沙漏底下的桌面上平铺一张纸,当沙漏开始摆动时,让纸匀速移动。这样,沙漏中流出的细沙,就在纸上留下了一个正弦波痕迹,如图所示。利用这种设计思想,可以完成波形在平面上(对应于时间的流动)的展开。这种设计思想在波形记录、显示中被广泛采用,比如心电图机,就是用原地摆动的电热针,在匀速移动的记录纸带上描记出心电波形。 利用心电图机的结构,已经可以记录电压信号,但是,示波器在大量的应用中,并不需要通过消耗纸张来记录波形,而仅仅是观察波形。因此,可以重复使用的荧光屏,被应用到示波器的设计中。 在示波器上描绘一条曲线——电子枪和荧光屏 在一个封闭玻璃管显示屏的内壁涂上荧光粉,当荧光粉被大量电子形成的电子束轰击时,会发出荧光。可以发出电子束的设备称为电子枪,它可以连续地发出集束性很强的电子。这些电子束在飞行过程中,如果遇到电场的作用,会因电场形成的力而改变运行方向,导致最终电子束落到荧光屏上的位置发生改变,也就是光点改变。根据这个原理制造的示波管,其结构如图所示。图中电子枪发出的电子束,经过两个偏转板的作用,会在X 、Y 两个方向上发生偏转。 当在Y 偏转板上加入被测信号,而在X 偏转板上不加电压,可以在示波管的荧光屏上看到光点随着被测电压的变化而发生位置变化——电压越大,光点位置越靠上方。 当在X 偏转板上加入一个锯齿波,而在Y 偏转板上不加电压,可以看到光点从荧光屏左边出现,匀速移动到右边,然后又迅速在左边重复出现。 当在X 偏转板上加入一个锯齿波,而在Y 偏转板上加入一个正弦波,则可以看到,光点在匀速左移的同时,其Y 方向位置出现了正弦变化的规律,也就是说,光点的移动轨迹是一个正弦波。 怎样将周期性电压信号稳定地显示于荧光屏 图 沙漏摆动留下的正弦波 图 示波管的结构示意图

示波器原理及其应用分析解析

示波器原理及其应用 示波器介绍 示波器的作用 示波器属于通用的仪器,任一个硬件工程师都应该了解示波器的工作原理并能够熟练使用示波器,掌握示波器是对每个硬件工程师的基本要求。 示波器是用来显示波形的仪器,显示的是信号电压随时间的变化。因此,示波器可以用来测量信号的频率,周期,信号的上升沿/下降沿,信号的过冲,信号的噪声,信号间的时序关系等等。 在示波器显示屏上,横坐标(X)代表时间,纵坐标(Y)代表电压,(注,如果示波器有测量电流的功能,纵坐标还代表电流。)还有就是比较少被关注的-亮度(Z),在TEK的DPO示波器中,亮度还表示了出现概率(它用16阶灰度来表示出现概率)。 1.1.示波器的分类 示波器一般分为模拟示波器和数字示波器;在很多情况下,模拟示波器和数字示波器都可以用来测试,不过我们一般使用模拟示波器测试那些要求实时显示并且变化很快的信号,或者很复杂的信号。而使用数字示波器来显示周期性相对来说比较强的信号,另外由于是数字信号,数字示波器内置的CPU或者专门的数字信号处理器可以处理分析信号,并可以保存波形等,对分析处理有很大的方便。

1.2.1 模拟示波器 模拟示波器使用电子枪扫描示波器的屏幕,偏转电压使电子束从上到下均匀扫描,将波形显示到屏幕上,它的优点在于实时显示图像。 模拟示波器的原理框图如下: 见上图所示,被测试信号经过垂直系统处理(比如衰减或放大,即我们拧垂直按钮-volts/div),然后送到垂直偏转控制中去。而触发系统会根据触发设置情况,控制产生水平扫描电压(锯齿波),送到水平偏转控制中。 信号到达触发系统,开始或者触发“水平扫描”,水平扫描是一个是锯齿波,使亮点在水平方向扫描。触发水平系统产生一个水平时基,使亮点在一个精确的时间内从屏幕的左边扫描到右边。在快速扫描过程中,将会使亮点的运动看起来

微机原理实验报告软件实验1-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

数字示波器及其简单原理图

数字示波器及其简单原理图 数字示波器可以分为数字存储示波器(DSOs)、数字荧光示波器(DPOs)、混合信号示波器(MSOs)和采样示波器。 数字式存储示波器与传统的模拟示波器相比,其利用数字电路和微处理器来增强对信号的处理能力、显示能力以及模拟示波器没有的存储能力。数字示波器的基本工作原理如上图所示当信号通过垂直输入衰减和放大器后,到达模-数转换器(ADC)。ADC 将模拟输入信号的电平转换成数字量,并将其放到存贮器中。存储该值得速度由触发电路和石英晶振时基信号来决定。数字处理器可以在固定的时间间隔内进行离散信号的幅值采样。接下来,数字示波器的微处理器将存储的信号读出并同时对其进行数字信号处理,并将处理过的信号送到数-模转换器(DAC),然后DAC的输出信号去驱动垂直偏转放大器。DAC也需要一个数字信号存储的时钟,并用此驱动水平偏转放大器。与模拟示波器类似的,在垂直放大器和水平放大器两个信号的共同驱动下,完成待测波形的测量结果显示。数字存储示波器显示的是上一次触发后采集的存储在示波器内存中的波形,这种示波器不能实时显示波形信息。其他几种数字示波器的特点,请参考相关书籍。

Agilent DSO-X 2002A 型数字示波器面板介绍

该示波器有两个输入通道CH1和CH2,可同时观测两路输入波形。选择通道1时,示波器仅显示通道1的信号。选择通道2时,示波器仅显示通道2的信号。选择双通道时,示波器同时显示通道1信号和通道2信号。 荧光屏(液晶屏幕)是显示部分。屏上水平方向和垂直方向各有多条刻度线,指示出信号波形的电压和时间之间的关系。 操作面板上的各个按钮按下后,相应参数设置会显示在荧光屏上。 开机后,荧光屏显示如下: 测试信号时,首先要将示波器的地(示波器探笔的黑夹子)与被测电路的地连接在一起。根据输入通道的选择,将示波器探头接触被测点(信号端)。按下Auto Scale,示波器会自动将扫描到的信号显示在荧光屏上。 输入耦合方式:模拟示波器输入耦合方式有三种选择:交流(AC)、地(GND)、直流(DC);部分数字示波器则没有GND耦合这种方式,其通过在屏幕上直接标注零电平线的位置的方法来实现GND耦合(用来确定零电平线)的功能。当选择“地”时,扫描线显示出“示波器地”在荧光屏上的位置。直流耦合用于测定信号直流绝对值和观

南昌大学单片机实验指导书(2015简化版)

微机原理与接口技术实验指导书 机电工程学院 2010年3月

实验一拼字程序(基础实验) 一、实验目的 掌握汇编语言设计和调试方法。 二、实验容 把7000H的低四位BCD数和7001H的低四位BCD数,拼成压缩BCD码的形式存放在7002H。 三、实验说明 通过本实验,掌握拼字的编程方法,同时也可以了解单片机编程、调试方法。 四、主要仪器设备及耗材 PC机、WAVE软件 五、参考程序框图 六、参考程序(略)

实验二清零实验(基础实验) 一、实验目的 1. 掌握存储器读写方法。 2. 了解存储器的块操作方法。 二、实验容 1. 指定部RAM中某块的起始地址和长度,要求能将其容清零。 2. 指定外部RAM中某块的起始地址和长度,要求能将其容清零。 3. 指定外部RAM中某块的起始地址和长度,要求能将其容置为某固定值(如0FFH)。 三、实验说明 通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以 了解单片机编程、调试方法。 四、实验仪器和设备 PC机、WAVE软件。 五、参考程序框图 存储器块清零参考程序框图 六、参考程序(略) 实验三数据块传送程序(基础实验)

一、实验目的 1.了解存的移动方法。 2.加深对存储器读写的认识。 二、实验容 将指定源地址和长度的存储块移到指定目标位置。 三、实验说明 块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免? 四、实验仪器和设备 PC机、WAVE软件。 五、参考程序框图 存储块移动参考程序框图 六、参考程序(略)

实验1 存储器块清零程序

实验1 存储器块清零程序 一、实验要求 指定存储器中某块的起始地址和长度,将其内容清零。 二、实验目的 1、学习使用模拟软件,编辑简单程序; 2、掌握存储器的读写方法; 3、了解存储器块操作块操作方法 三、实验内容 1、实验步骤 启动PC机,打开uVision2软件。 创建工程Project文件,然后创建main.c源程序,。实现对数据块Da[10]的清零函数ClearDataZone: void ClearDataZone(unsigned char* Data,int n) {

} int main() { unsigned char Da[10]={0,1,2,3,4,5,6,7,8,9}; ClearDataZone(Da,10); while(1); } 2、对代码进行编译,编译无误后,进入Debug运行程序,打开数据窗口(DATA),点击暂停按钮,观察要清零的数据区是否被清零。同时打开反汇编代码窗口,找出这段C代码用到的汇编指令有哪些?并对反汇编代码截图。

指令: MOV SJMP LJMP ORL CLR JNZ JZ LCALL DEC

3、针对2中你看到的每一句汇编代码写出相应的含义,并标出。 C:0x011B 7808 MOV R0,#0x08 含义:将0x08这个数据传送到R0寄存器中 C:0x0138 12013D LCALL ClearDataZone(C:013D) 含义:长调用指令,调用ClearDataZone函数 C:0x013B 80FE SJMP C:013B 含义:短转移指令 C:0x0144 1D DEC R5 含义:减1指令。将R5寄存器中的数据减一 C:0x0145 7001 JNZ C:0148 含义:若不为0就跳转 C:0x014A 6010 JZ C:015C 含义:若为0就跳转 C:0x0149 4C ORL A,R4 含义:逻辑或指令。将A和R4寄存器中的数据做或运算,所得结果放在R4中。C:0x0156 E4 CLR A 含义:清0指令 四、实验总结 懂得了实验里边一些汇编代码所包含的意思。

第六章 单片机系统综合实验

第六章单片机系统综合实验 6.1 单片机基本实验 实验6-1.存储器块清零程序设计 (1)实验目的。1. 掌握存储器读写方法;2. 了解存储器的块操作方法。 (2)实验内容:1. 指定内部RAM中某块的起始地址和长度,要求能将其内容清零。2. 指定外部RAM 中某块的起始地址和长度,要求能将其内容清零。3. 指定外部RAM中某块的起始地址和长度,要求 能将其内容置为某固定值(如012H)。 (3)实验说明。通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以 了解单片机编程、调试方法。 (4)参考程序框图。1、程序参考流程如图6-1所示;2、参考程序如下: BLOCK EQU 0400H ORG 0000H LJMP START ORG 0030H START:MOV DPTR,#BLOCK ;DPTR←起始地址 MOV R0, #0FFH ;R0←块长度 MOV A,#0 ; A←0 LOOP: MOVX @DPTR,A ;当前地址内容清0 INC DPTR ;地址加1 DJNZ R0,LOOP ; 计数器减1,循环 SJMP $ ; 结束 图6-1 程序流程图 END 图6-2 程序窗口(存储器块赋值程序)图6-3 外部数据存储器XDATA空 间窗 例如若要将从0400H 开始的255个字节外部数据存储器块的内容置成12H 值,请修改以上程序完成 此操作,注意在程序调试过程中数据的变化情况。注意在程序调试过程中数据的变化情况。3、程序调试过 程。程序窗口如图6-2所示。可通过观察外部数据存储器窗口XDATA 了解程序运行结果,运行结果如图

6-3所示。 (5)思考题。如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。 实验6-2 二进制到BCD转换程序设计 (1)实验目的。掌握简单的数值转换算法。基本了解数值的各种表达方法。 (2)实验内容。1、将给定的一个单字节二进制数,转换成非压缩的二—十进制(BCD)码;2、将给定的一个单字节二进制数,转换成压缩的二—十进制(BCD)码。 (3)实验说明。计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。有兴趣的同学可以试试将BCD转换成二进制码。 五、参考程序框图。(1)程序参考流程如图6-4所示;(2)参考程序 通过本实验学习简单的数值转换算法,了解数值的各种表达方法。同时进一步熟悉单片机实验集成开发软件环境的使用方法。学习“单步”、“跟踪”、“执行到光标处”等调试功能。启动程序运行到最后一条指令处,打开8051 内部数据存储器空间,观察程序执行结果。若A 中原来的内容“123”(7BH)转换为三个 BCD 码“01”、“02”和“03”,并分别存入了从 (30H)开始的三个单元中,如图6-5所示。 程序执行后的结果: 图6-5 内部数据存储器DATA空间窗口 实验6-3 十六进制到ASCII码转换程序设计 (1)实验目的。1.了解十六进制数和ASCII值的区别。2.了解如何将十六进制数转换成ASCII 值。 3.了解如何查表进行数值转换及快速计算。 (2)实验内容。给出一个十六进制数,分别用查表法和逻辑运算方法将其转换成ASCII值。 (3)实验说明。此实验主要让学生了解数值的十六进制数和ASCII码的区别,学会用查表法快速地进行数值转换并进一步了解数值的各种表达方式。 (4)参考程序框图(查表法) 方法一:(通过查表实现数制转换)。程序流程图如图6-6所示。入口条件:待转换的8位二进制数在

模拟示波器的基本工作原理

模拟示波器的基本工作原理 1.回顾中学的沙漏实验——随时间变化的信号如何在平面展示 利用心电图机的结构,已经可以记录电压信号,但是,示波器在大量的应用中,并不需要通过消耗纸张来记录波形,而仅仅是观察波形。因此,可以重复使 用的荧光屏,被应用到示波器的设计中。 2.在示波器上描绘一条曲线——电子枪 和 荧光屏 当在Y 偏转板上加入被测信号,而在X 偏转板上不加电压,可以在示波管的荧光屏上看到光点随着被 测电压的变化而发生位置变化——电压越大,光点位 置越靠上方。 当在X 偏转板上加入一个锯齿波,而在Y 偏转板上不加电压,可以看到光点从荧光屏左边出现,匀速移动到右边,然后又迅速在左边重复出现。 当在X 偏转板上加入一个锯齿波,而在Y 偏转板上加入一个正弦波,则可以看到,光点在匀速左移的同时,其Y 方向位置出现了正弦变化的规律,也就是说,光点的移动轨迹是一个正弦波。 3 .怎样将周期性电压信号稳定地显示于荧光屏? ○ 1~○6时刻,具有相同的特征:都是以上升的方式经过0V 电压。示波器内部,用微分电路可以区分被测信号上升或者下降,用比较器配合外部的电压设置,可以判断被测信号是否经过这个比较电压(比如图中的0V )。这样,再经过一套逻辑电路,可以在被测信号具有相同初相角的时刻,控制X 轴偏转板,发 出一个锯齿 波。这种利用被测信号的周期性,在相 同 初相角时刻,触发X 轴锯齿波扫描信号,使得波形被重叠、稳定地显示于示波器荧光屏的技术,称为同步触发扫描。图中, 锯齿波在○ 1~○6时刻满足触发条件,但仅在○1、○3、○5时刻被触发,是因为在○2、○4、○6时刻,此前的锯齿波尚未扫描结束。 因此,在 示波器外部面板上,有控制被测信号在电压多大时触发锯 齿波产生的电 平旋钮,英文标识为Level ,这个电压称为触发电平。有控制被测信号是上升或者下降经过Level 电压的选择开关,英文标识为Slope 图1.1.3 沙漏摆动留下的正弦波 图1.1.4 示波管的结构示意图 Y 轴偏转板 被测信号 X 轴偏转板 锯齿波 Y 轴偏转板 被测信号 X 轴偏转板 锯齿波

微机实验报告

成绩:实验报告 课程名称:微机原理及应用 实验项目:存储器块清零实验 姓名:李顺源 专业:机械电子工程 班级:机电09-3班 学号:0901040320 计算机科学与技术学院 实验教学中心 2011年11月12日

软件实验一存储器块清零实验 一、实验目的: 1、掌握存储器读写方法; 2、了解存储器的块操作方法。 二、实验内容: 指定存储器中某块的起始地址和长度,要求能将其内容清零。 具体要求:将数据段中以BLOCK地址(0400H)开始的256个内存单元清零。 三、实验用设备仪器及材料: 计算机,伟福Lab2000P仿真实验箱。 四、实验方法及步骤: 1.打开试验箱电源。 2.在windows桌面上双击WAVE图标。 3.建立与伟福实验箱的通信仿真器的选择:Lad2000P仿真实验系统 仿真头:8088/86实验 端口选择:COMI 4.编写实验程序。 5.编译:项目\编译,编译的过程同时也是将程序下传到实验台。 6.程序执行前:检查数据段中以BLOCK地址开始的256哥单元的内容。 7.运行(全速执行,单步,跟踪)。 8.程序执行后:检查数据段中以BLOCK地址开始的256个单元的内容。 9.关实验箱电源,关主机。

五、实验程序流程图: 设置块起始地址 设置块长度 当前地址内容清零地址加1 否 是否清除完 是 结束 六、发挥部分 编写程序 1.实现将存储器0400H—04FFH的4个单元改为0—FH。data segment Block db256 dup(55h) data ends Code segment Assume cs:code,ds:data Start proc near Mov ax , data Mov ds ,ax Mov bx ,off set Block Mov cx ,4 Mov dx,OH Again mov[bx],dx

模拟电子实验示波器的使用

一、实验目的 1. 学习电子电路实验中常用的电子仪器一示波器、函数信号发生器、交流数字毫伏表等主要技术指标、性能及正确使用方法。 2. 初步掌握用双踪示波器观察正弦信号波形和读取波形参数的方法。 、实验设备 三、注意事项 1. 使用前对电源、各旋钮位置进行检查。 2. 使用时要避免碰撞,接入探头的电压不应超过说明书中所规定的最大的输入电压值(注意的是:一般说明书中给出的这一电压值往往是指峰峰值),以免损坏示波器。 3. 若测试点的电压较高,应在断电的情况下,将探头的探针和鳄鱼夹事先与被测试的两个点连接好,再通过电测试,选择可避免在测试中万一因不慎而发生意外事故的可能。 4. 开启示波器后,应注意使辉度和聚集适中(不宜过亮),且波形也不应长时间地停留在一个区域中,以免灼伤荧光屏。 5. 在使用中出现在下列情况之一,即应停机,侍修复后再使用:①开机后保险线即烧断; ②电子官式示波器内的电风扇不转;③示波器内冒烟;④无光点显示或无扫描线;⑤波形跳动不止,或图形失真。 6. 示波器关闭后再用,应至少待了3-5分钟后再开启--以免损害示波管。 7. 使用后应即时关闭其电源和被测电路的电源;然后拔下示波器的电源插头,拆除测试用临时线,全地搬走开妥善地放置好示波器--以免偶然事故的发生. 四、实验原理及计算 在模拟电子电路实验中,经常使用的电子仪器有示波器、函数信号发生器、直流稳压电源、交流毫伏表及频率计等。它们和万用电表一起,可以完成对模拟电子电路的静态和动态工作情况的测试 实验中要对各种电子仪器进行综合使用,可按照信号流向,以连线简捷,调节顺手观察与读 数方便等原则进行合理布局,各仪器与被测实验装置之间的布局与连接如下图所示。接线时应注

单片机实验指导

单片机实验1 汇编语言程序设计实验 ---- 存储器块清零或赋值 一.实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二.实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H。 三.实验仪器 微机、WAVE6000编程环境软件,(单片机实验箱) 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 编译器默认设置: 程序框图 参考程序: Block equ 4000h mov dptr, #Block ; 起始地址 mov r0, #10 ; 清10个字节 mov a, #33h ; Loop: movx @dptr, a inc dptr ; 指向下一个地址 djnz r0, Loop ; 记数减一 ljmp $ end

一.实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二.实验内容 将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。三.实验仪器微机、WAVE6000软件,(单片机实验箱) 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 参考程序与流程图

EDA单片机

THMEMU-1型单片机技术实训装置 12600元/套 本实训装置是根据教育部“振兴21世纪职业教育课程改革和教材建设规划”要求按照职业教育的教学和实训要求而研发的产品。适合高职院校、职业学校的《单片机原理与应用》,《单片机应用与实训》等课程的教学实训。通过本装置可完成单片机的定时器、I/O输入输出、接口扩展、键盘控制、数据显示、数据采集、数据通信等实训,配备有仿真器、ISP下载器。实训内容包括MCS-51单片机基础应用能力训练、综合应用能力训练。 一、装置特点 1.采用接口电路模块化、CPU开放式结构,单片机最小应用系统用防转座螺丝、“D”型8P排座引出所有I/O口,学生可以对各个应用接口电路进行单独实训,也可以组合多个应用接口电路进行综合应用实训。 2.提供了丰富的接口电路,如开关输入,阵列式键盘、LED显示、数码管显示、LED点阵显示、液晶显示、A/D转换、D/A转换、RS232通信、RS485通信、电机控制、温度采集等,这些单片机接口电路涵盖了MCU的各个应用领域。 3.可提供独立的单片机项目实训包(选配),每个项目实训包为一个独立的单片机应用电路,如“语音遥控小车实训包”包含小车实物、控制板(单片机系统)、喇叭、电源、配件、技术资料等。 二、技术性能 1.输入电源:单相三线~220V±10% 50Hz 2.工作环境:温度-10℃~+40℃,相对湿度<85%(25℃)海拔<4000m

3.装机容量:<0.5kVA 4.外形尺寸:1287mm×723mm×1279mm 5.安全保护:具有漏电压、漏电流保护装置,安全符合国家标准。 三、实训装置的基本配置及功能 实训装置由控制屏、实训桌和实训礼包组成。 (一)控制屏 1.直流电源:+5V(5A)/-5V(1A)/+12V(1A)/-12V(1A)各一组。 (二)单片机项目实训包

微机原理实验报告软件实验1

一、实验目的 1.掌握存储器读写方法 2.了解存储器的块操作方法 、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WAVE 6000软件

data ends code segme nt assume cs:code, ds:data start proc n ear mov ax, data mov ds, ax mov bx, offset Block ;起始地址 mov cx, 256 ; 清256字节 Agai n mov [bx], byte ptr 0 inc bx ;地址+1 Loop Agai n ;记数减一 jmp $ ; 死循环 code ends end start 四、实验过程 Sl.asm data segme nt Block db 256 dup(55h) 代码流程图

(1)进入Wave6000,输入程序并检查,保存程序。 ⑵“编译”程序。 (3) “全速执行”程序。 ⑷“暂停”程序运行,在“数据窗口( MEMOREY )”查看0400H 起始的单元 内容,并记录。 (5)在指令“jmp $”处设断点。“全速执行”程序。 ⑹ 在“数据窗口( MEMOREY )”查看0400H 起始的单元内容,记录并分析实 验结果。 六、实验结果及总结 1、在“数据窗口( MEMOREY )”查看0400H 起始的单元内容 运行前: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH) ? 总结:通过本实验,我了解到单片机读写存储器的读写方法, 同时也了解到单片 机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。 实验步骤 运行后: 511H C \UB200Qf \E X&6ASM \S1. ASM (0400 00 0G 00 00 (I) 00 00 CO 00 00 0410 00 00 00 OG oo 10420 00 □0 00 oo □0 關 皿 00 GO oo □ 0 0440 oa 00 00 oo oo 00 □0 co oo oo 0400 00 00 DC oo □ .1JJ 00 00 0D □0 00 oo_ tJ D 00 oa tK 00 ao on XJ 00 (K 0D oo 00 00 co 00 00 oo 00 00 co (K ) 00 oo C - \LAB2000F\EXS6kSM \51. ASM 地址: 0400)( oa 00 W W 00 OO^d r.

单片机实验报告

单片机实验报告 标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

(理工类) 课程名称:单片机原理及应用专业班级:07电子信息工程(2)班学生学号: 02 学生姓名:师中秋 所属院部:信息技术学院指导教师:徐志国 20 10 ——20 11 学年第 1 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:存储器块清零实验学时: 2学时 同组学生姓名:张炎实验地点: B403 实验日期: 2010-10-12 实验成绩: 批改教师:批改时间: 一、实验目的和要求 1、实验目的 (1)掌握存储器读写方法 (2)了解存储器的块操作方法 2、实验要求 指定存储器中某块的起始地址和长度,要求能将其内容清零。 二、实验仪器和设备 伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验过程 实验程序: Block equ 4000h mov dptr, #Block ; 起始地址 mov r0, #0 ; 清 256 字节 clr a Loop:

华北水利水电-单片机实验报告(答案)

单片机实验报告 指导老师:雷冀南 学院:机械学院 专业:机械设计制造及其自动化专业学号: 姓名:

实验一汇编语言源程序编辑 一、实验目的: 了解软件μVision4.0的安装,熟悉在μVision4.0软件环境下进行单片机汇编源程序的编辑和修改,学会使用利用μVision4.0软件监控单片机各个寄存器以及存储器的数据变化等。 二、实验内容: 1、软件的安装和使用 μVision4.0软件的详细安装过程和使用说明请参考相关资料。 2、汇编源程序的编辑 1)编辑和运行下面源程序,并按要求完成实验报告。 实验A存储器块清零S1.ASM BLOCK EQU6000h MAIN:MOV DPTR,#BLOCK;起始地址 MOV R0,#10H;存储块长度 CLR A LOOP:MOVX@DPTR,A INC DPTR;指向下一个地址 DJNZ R0,LOOP;记数减一 LJMP$ END 实验B二进制到ASCII码转换S2.ASM ;将A拆为二个ASCII码,并存入Result开始的二个单元 RESULT EQU20H ORG0000H MAIN:MOV SP,#40H MOV A,#1AH CALL BinToHex LJMP$ BinToHex: MOV DPTR,#ASCIITab MOV B,A;暂存A SWAP A ANL A,#0FH;取高四位 MOVC A,@A+DPTR;查ASCII表 MOV RESULT,A MOV A,B;恢复A ANL A,#0FH;取低四位 MOVC A,@A+DPTR;查ASCII表 MOV RESULT+1,A RET ASCIITab:303132 333435 363738

模拟示波器的使用 实验报告

模拟示波器的使用 ·实验目的 1. 了解示波器的基本原理及基本使用方法; 2. 掌握用示波器观察一路不同型电压信号的方法; 3. 掌握观察利萨如图形的方法,了解利萨如图形测量未知正弦信号的频率的方法. ·实验原理 1. 示波器显示波形原理 若在示波器CH1或CH2端加上正弦波,在示波器的X 偏转板加上锯齿波,当锯齿波电压的变化周期与正弦波电压成整数倍时时,可以显示完整的周期的正弦波形; 若在示波器CH1和CH2同时加上正弦波,在示波器的X 偏转板上加上示波器的锯齿波,则在荧光屏上将的到两个正弦波,即为双踪显示. 同理可得双踪显示的方波. 2. 利用利萨如图测正弦电压的频率基本原理 将被测正弦信号1加到y 偏转板,将参考正弦信号2加到x 偏转板,当两者的频率之比是整数时,在荧光屏上将出现利萨如图. 对稳定不动的图形分别做水平直线和竖直直线与图形相切,设水平线上及竖直线上的切点数之比可得两信号的频率之比 ·实验内容及步骤 1. 连接实验仪器电路,设置好函数信号发生器、示波器. 2. 用示波器观察一路电压信号 (1) 在示波器CH1和YCH2分别加上500Hz 和500Hz 的正弦波,调节示波器至波形稳定,记录在坐标纸上. (2) 在示波器CH1和YCH2分别加上500Hz 和500Hz 的方波,调节示波器至波形稳定,记录在坐标纸上. (3) 分别计算两者的相对误差 3. 用示波器观察李萨如图形 若在示波器CH1和CH2同时加上正弦波,开至X-Y 档,调节两输入端的频率比值分别为1:3,1:2,2:3,1:1,3:2,2:1,微调输入信号的频率至图象稳定,记录在坐标纸上. ·实验记录 (见坐标纸) ·误差分析 观察电压信号时 正弦波1: 频率相对误差%0.1%10098.4999495098.4999%100≈?-=?-=?A A A f f f f 测 ’ 电压相对误差%0.1%100010.1000.1010.1%100≈?-=?-=?A A A V V V V 测 ’ 正弦波2: 频率相对误差%2.0%100500499500%100=?-=?-=?B B B f f f f 测 ’ 电压相对误差%3.2%100024.1000.1024.1%100≈?-= ?-=?B B B V V V V 测 ’

单片机实验报告内容(修改版)

实验一熟悉Keil C的在线调试 一、软件调试步骤 1.硬件准备: 首先您必须具备THKSCM-2实验台一台,和THKL-C51仿真器,还需要一条串口线(串口线的接法是2-3/3-2/5-5也就是交叉接法,不是平行接法)。 2.软件准备: 您需要准备keilc软件一套,版本最好是7.0之后的,我们产品附带光盘就包含了最新的keilc软件,如果老用户无法得到这个版本软件,可以上网寻找,也可以到keil公司的网站下载 https://www.wendangku.net/doc/6f3292946.html, 下载,当然您还可以和我们销售联络,获得光盘。 3.系统设置: 实验箱联接好电源线,串口线联接好PC机和THKL-C51仿真器,把仿真器插入单片机最小应用系统1的锁紧插座。 请注意仿真器插入方向,缺口应朝上。 4.软件设置: 打开keilc软件,创建相关实验的应用项目,包括添加源文件,编译项目文件,详见以上介绍。开始软件设置,找到图2-1所示菜单项。 图2-1 Project菜单 选中以后找到图2-2所示的对话框,按照图2-2里面的图示方法,进行端口设置。

选择硬件仿真。 图2-2设置Debug选项卡 进入Target设置,如图2-3。选择串行口,波特率选择38400,这样就设置好了。 图2-3 Target设置

5.开始调试 按实验指导提供的方法连接好实验导线。打开相关模块的电源开关(关闭不相关模块的电源开关),打开总电源开关。按图2-4中的按钮开始调试。 图2-4 调试窗口 这时候如果出现图2-5所示对话框,那么硬件系统应复位一次,关闭总电源开关2秒后从新打开电源。 图2-5 联接失败对话框 然后按图2-5所示的"Try Again",可进入调试阶段。如图2-6所示。

自编单片机微机原理实验指导

实验一汇编语言程序设计实验 ---- 存储器块清零或赋值一.实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二.实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H。 三.实验仪器 微机、WAVE6000编程环境软件,单片机实验箱 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 编译器默认设置:

实验二存储块移动 一.实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二.实验内容 将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。 三.实验仪器微机、WAVE6000软件,单片机实验箱注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 实验三数据排序 一.实验目的 1了解数据排序的常用算法,掌握冒泡算法。 2进一步熟悉编程环境和调试方法。 3熟悉汇编程序设计。 二.实验内容 将50H开始的10个随机数按从小到大的顺序排列。三.实验仪器微机、WA VE6000编程环境 注意:由于上电后数据都一样,所以需要手动修改50H后10个数据(要排序的数)方法是: 窗口---数据窗口---DATA 找到50H开始的10个2位16进制数,双击,修改其数值 如(6,2,4,9,3,7,1,5,8,0) 之后编译(下载),单步执行,查看排序执行过程 冒泡算法(两层循环,以下是内层循环开始……)。 6,2,9,4,3,7,1,5,8,0 前大后小交换位置如下: 2,6,9,4,3,7,1,5,8,0 前小后大不交换位置如下; 2,6,9,4,3,7,1,5,8,0 前大后小交换位置如下; 2,6,4,9,3,7,1,5,8,0…第一次内层循环结束顺序如下:最大的数9先冒出来 2,6,4,3,7,1,5,8,0,9 接着开始第二次内层循环……

相关文档