刘公公叽叽歪歪,也不知道扯些什么,我也懒的看。技术这东西,懂就是懂,不懂就是不懂,一行代码顶得了千言万语。而且可以看出,刘公公私下里把我的程序当作了宝贝,刘公公你也找不到比我的程序更简单明了的 os 了。
我前后发过两个 51 下的 os, 两个 dos 下的 os. 完完全全可以运行,这么多人下载了,不能运行早就有人提出来了,我也不会把不能运行的程序发出来。
两个 51 下的 os 的栈结构不同,前一个只保存 6 个,后一个保存了 13个寄存器。而两个程序中中断部分唯一的不同是把 ET0 = 1 改为一条汇编 __asm setb ET0。这或许就是刘公公认为 stack 有问题不能运行的原因,刘公公去看看汇编的代码吧,不要被像那个 CY 以及 结构copy 那样用汇编的代码打脸。
"如何在C51中断中,保存全部 R0到R7,A,B,dph,dpl,psw 等 SFR", 其实很简单,嵌入任何一条汇编就会让C51保存全部sfr, 至少在我使用的 uVision 4.00a 下如此。尽管我不想嵌入汇编,以免打破“没有一条汇编的纯C程序”,但我没有找到其他更简单的方法。 |