操作系统的完整代码——编写YCOS应用程序
1. 计算圆周率源代码pi2.cpp
#define YCORG -1 //该设置使编译器生成头部为YCEXE结构的可执行文件
#include "ycio.cpp" //提供前缀为ycio_的函数和C/C++标准函数char *calc_pi()
{int b_time = clock();#define PI_LEN 40 * 7 * 5static char pbuf[PI_LEN];int *f = new int[PI_LEN + 1];if(!f){printf("new error!\n");return nullptr;}int a=10000,b=0,c=PI_LEN,d,e=0,g,kk=0;for(; b-c; ) f[b++] = a/5;for(; d=0, g=c*2; c -= 14,sprintf(&pbuf[kk],"%.4d",e + d/a),kk ? 0 : (memmove(&pbuf[2],&pbuf[1],3),pbuf[1]='.',kk=1),kk += 4,e = d % a)for(b=c; d+=f[b]*a, f[b]=d%--g,d/=g--,--b; d*=b);delete f;sprintf(&pbuf[kk], "\n%d 位\ntime: %d ",kk-1, clock() - b_time);return pbuf;
}void main(int argc,char *argv[],char *envp[])
{char *pp0 = (char*)malloc(1); char *pp1 = (char*)malloc(2);char *pp2 = (char*)malloc(3); char *pp3 = (char*)malloc(4);char *pp4 = (char*)malloc(1024*1024*25);for(int ii=0; ii<argc; ii++) printf("\n%s ",argv[ii]); printf("\n");for(int ii=0; envp[ii]; ii++) printf("\n%s ",envp[ii]); printf("\n");printf("\n\t\t%x ",pp0); printf("%x ",pp1);printf("%x ",pp2); printf("%x ",pp3); printf("%x\n",pp4);printf(calc_pi());
}
C/C++代码文件 pi2.cpp
在YCOS提示符下,键入pi2后,按回车执行。
2. 计算e的一万位源代码exp0.cpp
#define YCORG -1
#include "ycio.cpp"void calc_exp(char pbuf[])
{#define NUMBER_BASE 100000#define NUMBER_WIDTH 2001int b_time = clock();int *aResult = new int[(NUMBER_WIDTH+1) * 2];if(!aResult){pbuf[0] = 0;return;}memset(aResult,0,(NUMBER_WIDTH+1) * sizeof(int) * 2);int *aWork = &aResult[NUMBER_WIDTH+1];int ii,bb,kk=0,iStatus;aResult[0] = aWork[0] = NUMBER_WIDTH;aResult[1] = aWork[1] = 1;#define ILIMIT 3300for(ii=1; ii<ILIMIT; ii++){iStatus = kk = 0;for(int jj=1; jj<=aWork[0]; jj++){if(kk > 0) bb = aWork[jj] + (kk * NUMBER_BASE);else bb = aWork[jj];aWork[jj] = bb / ii;kk = bb % ii;if(aWork[jj]) iStatus = 1;}if(!iStatus) break;kk = 0;for(int jj=aWork[0]; jj>0; jj--){bb = aWork[jj] + aResult[jj] + kk;kk = 0;while(bb >= NUMBER_BASE){bb -= NUMBER_BASE;kk += 1;}aResult[jj] = bb;}}sprintf(pbuf, "e = %1.1d.", aResult[1]);kk = strlen(pbuf);for(ii=2; ii<NUMBER_WIDTH; ii++){sprintf(&pbuf[kk], "%5.5d ",aResult[ii]);kk += 6;if(!(ii % 10)){sprintf(&pbuf[kk++],"\n");if(!(ii % 200)) sprintf(&pbuf[kk++],"\n");}}sprintf(&pbuf[kk], "kk=%d time: %d ",kk,clock() - b_time);delete aResult;
}
void main(int argc,void **argv)
{
char pbuf[15000];
calc_exp(pbuf);
printf(pbuf);
}
C/C++代码文件 exp0.cpp
在YCOS提示符下,键入exp0后,按回车执行。在boch计算机模拟环境下,本程序运行
时间较长。
3. 其它应用程序
下面列出几个在YCOS下运行的应用程序。
#define YCORG -1
#include "ycio.cpp"
void main()
{for(int ii=0; ;ii++){char dbuf[8192];int kk = snprintf(dbuf,sizeof(dbuf),"aaa---=%d %d",ycio_get_current_process(),ii);ycio_write(dbuf,kk,80 * 0 + 60);Sleep(10000);}
}
C/C++代码文件 pro0.cpp
#define YCORG -1
#include "ycio.cpp"
void main()
{for(int ii=0; ;ii++){char dbuf[8192];int kk = snprintf(dbuf,sizeof(dbuf),"bbb---=%d %d",ycio_get_current_process(),ii);ycio_write(dbuf,kk,80 * 1 + 60);Sleep(5000);}
}
C/C++代码文件 pro1.cpp
#define YCORG -1
#include "ycio.cpp"
void main()
{for(int ii=0; ;ii++){char dbuf[8192];int kk = snprintf(dbuf,sizeof(dbuf),"ccc---=%d %d",ycio_get_current_process(),ii);ycio_write(dbuf,kk,80 * 2 + 60);Sleep(2500);}
}
C/C++代码文件 pro2.cpp
#define YCORG -1
#include "ycio.cpp"int main(int argc,char *argv[],char *envp[])
{printf("\n%d\n",0x7fffffff);printf("%d\n",0x3fffffff);printf("%p\n",0x2018);printf("%l\n",0x7fffffffffffffff);printf("%l\n",-0x7fffffffffffffff-1);printf("%lu\n",0xffffffffffffffff);printf("%u\n",0xffffffff);printf("qqwweerr %16s\n","123456");printf("%%%% %16s\n","123456");printf("%K %16s\n","123456");printf("aa %16s\n","123456");printf("a %16s\n","123456");printf("%d\n",argc);for(int ii=0; ii<argc; ii++) printf("\n%s ",argv[ii]);for(int ii=0; envp[ii]; ii++) printf("\n%s ",envp[ii]);printf("\n\n");unsigned int aa = 0xc11220ab;int ii = aa >> 22;int jj = (aa >> 12) & 0x3ff;unsigned int *pgDir = (unsigned int*)PageDir_POS;unsigned int *pgTable = (unsigned int*)(pgDir[ii] & ~0xfff);unsigned int rr = (pgTable[jj] & ~0xfff) + (aa & 0xfff);int attr = pgTable[jj] & 0xfff;printf("line address aa = %p was changed to\n",aa);printf("physical address rr = %p %x\n",rr,attr);return 0;
}
C/C++代码文件 ex0.cpp
操作系统的完整代码——编写YCOS应用程序相关推荐
- python用一行代码编写一个回声程序_利用Python实现一个WC程序
项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数 ...
- python用一行代码编写一个回声程序_Python源码分析2 - 一个简单的Python程序的执行...
本文主要通过跟踪一个非常简单的Python程序的执行,简单讨论Python实现的基本框架和结构. 要执行Python程序如下,功能非常简单:从1加到10再打印出来 # test program sum ...
- 完美反编译任何小程序完整代码,扒小程序
废话不多说,直接上主题. 1.第一步下载一个模拟器(推荐使用自带root的模拟器),我使用的是夜神模拟器 下载地址:https://www.yeshen.com/ 2.下载好之后,下载一个RE管理器 ...
- python计算器小程序源码_python代码编写计算器小程序
本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import math class ...
- python计算器程序_利用Python代码编写计算器小程序
1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 def __init__(self):8 #创建主界面 9 ...
- python计算器小程序源码_python编写计算器程序-python代码编写计算器小程序
本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import math class ...
- python编写计算器-python代码编写计算器小程序
本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import math class ...
- python用一行代码编写一个回声程序_一行python代码实现树结构
树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...
- python用一行代码编写一个回声程序_使用Python的多回声测验
我在写一个程序来管理一个五问多的问题- 关于全球变暖的选择测验和计算数字 正确答案. 我首先创建了一本字典,比如:questions = \ { "What is the global wa ...
- 小程序云开发获取手机号完整代码 云函数中网络请求第三方接口
小程序云开发获取手机号完整代码 效果图: 小程序代码 <button open-type="getPhoneNumber" bindgetphonenumber=" ...
最新文章
- HDU 4292 Food(dinic +拆点)
- ASIC与FPGA能达到的频率差异巨大是为什么
- 继承redis spring_实例讲解Springboot以Repository方式整合Redis
- SSL 1055——能量项链_DP
- 替换IP java代码
- 遍历List过程中同时修改
- linux内核源码代码量,Linux内核源代码数量已经超过1000万行
- linux命令找目录,linux中何种指令可以查看当前所处的目录位置?
- [错误总结]升级spring-boot->2.6.2|hiberate->5.4.33.Final|spring cloud->2021.0.0 |spring admin->2.4.1
- juery 常用方法
- java was datasource_mybatis默认的数据源连接池(PooledDataSource和UnPooledDataSource)
- ubuntu-16.04安装程序报错 you might want to run 'apt-get -f install' to correct these
- 使用5502自带的UART口发送数据乱码的问题
- 漫谈android系统(4)bring up panel
- 女性黑客的崛起将造福世界
- 内存占用过高,缓存不释放导致死机处理方案
- 快速转换:将音乐文件转换为MP3格式的步骤
- 阿里企业邮箱526 Authentication failure[0]
- iOS上相见恨晚的6个APP,能让你的iPhone更有逼格!
- 浮点数的表示及范围 IEEE754
热门文章
- 网站建设之帝国cms搭建小技巧详细搭建配置教程
- 怎么找网页源文件位置_网页源文件看不到swf或者MP3,怎么找音频文件真实地址、...
- OSPF邻居关系建立故障排除
- Excel VBA简介
- 人脸对齐:Wing Loss人脸关键点检测算法2018
- kotlin 实战之核心基础特性总结
- 活动报名丨AI ProCon 2020火爆来袭!
- 狮子鱼社区团购系统团长推广二维码不显示,以及选择地址失败的解决方案
- ChucK初步(10)
- python:It seems that scikit-learn has not been built correctly