关于C51排序问题,进来帮忙看看这样有没问题?谢谢
题目:用8051 Keil C 写出排序程序,原资料摆在IDATA 80h~8ah,排序后摆在DATA 40h~4ah。
我的解答:
#define num 11
#include <reg51.h>
#include"stdio.h"
main()
{
char idata *org=0x80;
char data *result=0x40,temp;
unsigned char i=0,j=0,k=0;
for(i=0;i <num;i++)
*(result+i)=*(org+i);
for(i=0;i <num-1;i++)
{//选择排序
k=i;
for(j=i+1;j <num;j++)//选择i+1到num的最小值
if(*(result+j) <*(result+k))
k=j;
if(k!=i)//如果i不是最小则交换
{temp=*(result+i);
*(result+i)=*(result+k);
*(result+k)=temp;}
}
}
编译没问题,但debug时候run说:
*** error 65: access violation at I:0x80 : no 'read' permission
是什么原因呢?我学C51没多久,请指教,谢谢!
发表时间:2006年5月4日12:22:40