自己早期写的,主要做用是说明一下在没有操作系统的支持下利用BOIS读光驱引导系统的编写方法,自己设计一下从光驱安装操作系统的一个简单过程,好了,引用一下我空间的一段话吧:值得说了一点就是,光驱的引导代码和硬盘引导代码有一点不同,但BOIS也只读第一个扇区的内容并检查结尾处是否以“AA55”结束,这和硬盘是相同的,但光驱还有一点不同的是他的引导文件可以长达整个光盘内容(我从DOS光盘启动盘中读取过引导文件,是1.4M,我自己实验能把盘写入600M的引导文件)。
通过光盘引导代码把硬盘引导代码写入硬盘引导区从而为以后实现从光盘从安装系统到硬盘的过程打开重要的一关。
对了还要说一点的,光驱引导代码和硬盘的引导代码是分开编写的,这是因为BOIS读入引导代码时它们的物理地址都是一样的,如果两个代码写在一个文件内他们的指令逻辑地址会出错。
所以。


用nasm编译后用winhex把硬盘引导代码写入光盘引导代码之后,也就是光盘引导文件的第二个扇区的内容是硬盘引导代码。
光驱引导代码如下(cdboot.asm)只供参考而以,汇编交流,
2023/10/9 15:48:07 7.33MB 读光驱 源代码 BOIS 13h
1
输入为8个按键输入,分别代表8位选手,开始后,数码管显示倒计时,可自行设置时长。
当有选手抢答按下按键后,触发外部中断,音频输出,倒计时停止,另外两个数码管显示选手编号
1
应用程序调试技术作者:(美)JohnRobbins 译者:潘文林陈武目录结论第l部分调试概论第1章错误:问题出在那里,如何解决1.l错误及其调试1.1.l什么是错误1.1.2进程错误及其解决方案1.1.3制定调试计划1.2调试的先决条件1.2.l技能组合l.2.2学习技能组合1.3调试过程1.3.l第1步:复制错误1.3.2第2步:描述错误1.3.3第3步:始终假定错误是你自己的问题1.3.4第4步:分解并解决错误1.3.5第5步:进行有创见的思考1.3.6第6步:杠杆工具1.3.7第7步:开始繁重的调试工作1.3.8第8步:校验错误已被更正.1.3.9第9步:学习与交流1.3.10调试过程的决定性秘诀1.4小结第2章开始调试2.1跟踪变更直到项目结束2.1.l版本控制系统2.1.2错误跟踪系统2.1.3选择正确的系统2.2制定构建调试系统的进度表2.2.l用调试符来连编所有的构件2.2.2警告与错误同等重要2.2.3了解在何处装载DLL2.2.4设计发布构件的轻便诊断系统2.3日常连编和冒烟测试是必须遵循的2.3.l日常构件2.3.2冒烟测试2.4立即连编安装程序2.5QA必须对调试构件进行测试2.6小结第3章边编码边调试3.1注意声明3.1.l如何声明,声明什么3.l.2不同类型的VisualC+十和VisualBasic声明3.l.3SUPERASSERT3.2跟踪、跟踪、跟踪、再跟踪3.3注意注释3.4相信自己,但要校验(单元测试)3.5小结第II部分高效率的调试第4章调试器的工作原理4.1Windows调试器的类型4.1.1用户模式调试器4.1.2内核模式调试器4.2Windows2000操作系统为调试对象提供的支持4.2.1Windows2000堆阵检查4.2.2在调试器中自动启动4.2.3快速中断项4.3MinDBG:一个简单的Win32调试器4.4WDBG:真正的调试器4.4.l内存读写操作4.4.2断点和单步执行4.4.3符号表、符号引擎和堆栈遍历4.4.4StepInto、StepOver和StapOut功能4.4.5WDBG调试器的一个有趣的开发问题4.5如果需要编写自己的调试器4.6WDBG调试器之后是什么?4.7小结第5章使用Visual C+十调试器进行强有力的调试5.1高级断点及其用法5.1.l高级断点语法和位置断点5.1.2在任何函数上快速中断5.1.3在系统或输出的函数中设置断点5.1.4位置断点修饰符5.1.5全局表达式和条件断点5.1.6Windows消息断点5.2远程调试5.3技巧及窍门5.3.1设置断点5.3.2Watch窗口5.4小结第6章使用x86汇编语言和Visual C++调试器Disassembly窗口进行强有力的调试6.1CPU的基础知识6.1.l寄存器6.1.2指令格式和内存编址6.2关于VisualC+十内联汇编器6.3需要了解的指令6.3.1堆栈处理6.3.2最常用的几个简单指令6.3.3常见的序列:函数入口和出口6.3.4变量访问:全局变量、参数和局部变量6.3.5调用进程和返回指令6.4调用约定6.5需要了解的其他指令6.5.l数据处理6.5.2指针处理6.5.3比较和测试6.5.4条约和分文指令6.5.5循环6.5.6字符串处理6.6常见的汇编语言结构6.6.1FS寄存器访问6.6.2结构和类引用6.7完整的例子6.8Disassembly窗口6.8.1导航功能6.8.2在堆栈上查看参数6.8.3SetNextStatement命令6.8.4Memory窗口和Disassembly窗口6.9技巧和诀窍6.9.1Endians6.9.2垃圾代码6.9.3寄存器和Watch窗口6.9.4从ASM文件中学习6.10小结第7章使用VisualBasic调试器进行强
2023/10/7 11:13:46 9.92MB 应用程序调试技术
1
c8051f020与max487通信程序,其中有对端口的配置,中断的使用
2023/10/3 17:15:17 21KB 通信,单片机
1
大学生毕业设计程序讲解倒立摆基于中断和检测的基于arduino开发
2023/10/3 8:45:44 22KB 倒立摆
1
stm32h743串口DMA+空闲中断,可接受不定长数据,代码中对容易出问题的地方做了完善处理。
2023/10/3 8:44:52 1.25MB stm32h DMA 空闲中断
1
辣鸡网站怎么把资源都涨价到35了,改回来谷歌机翻+个人修正的usermanul,感兴趣可以看看目录Initializingthedriver62DW1000的概述132.1简介132.2连接到DW1000132.2.1SPI接口13.2.1.1SPI工作模式132.2.2中断162.2.3通用I/O172.2.4SYNC引脚172.3DW1000操作状态172.3.1状态图172.3.2主要运行状态概述172.4上电复位(POR)192.5上电时的默认配置212.5.3默认发射机配置T222.5.4默认接收器配置222.5.5应该修改的默认配置233消息传输263.1基本传输263.2传输时间戳273.3延迟传输283.4扩展长度数据帧293.5高速传输303.5.1TX缓冲区偏移索引303.5.2发送或接收TX缓冲区时写入314讯息接收334.1基本接收334.1.1前导码检测334.1.2前导码累积344.1.3SFD检测354.1.4PHR解调354.1.5数据解调354.1.6RX消息时间戳364.2延迟接收364.3双接收缓冲器374.3.1启用双缓冲操作374.3.2控制正在访问哪个缓冲区374.3.3双缓冲的操作384.3.4使用双缓冲时的TRXOFF404.3.5超限404.4低功耗侦听414.4.1配置低功率监听424.5低功耗SNIFF模式424.5低功耗SNIFF模式434.5.1SNIFF模式434.5.2低占空比SNIFF模式444.7.1估算第一条路径的信号功率454.7.2估算接收信号功率465MediaAccessControl(MAC)hardwarefeatures475.1循环冗余校验475.2帧过滤475.2.1帧过滤规则485.2.2帧过滤注意事项495.3自动确认495.3.2自动接收器重新启用515.3.3自动ACK周转时间515.3.4帧挂起位FramePendingbit515.3.5主机通知515.4发送并自动等待响应526DW1000的其他功能526.1外部同步526.1.1一次性时基复位(OSTR)模式526.1.2单发发送同步(OSTS)模式536.1.3一次接收同步(OSRS)模式536.2外部功率放大556.3使用片上OTP存储器556.3.1OTP存储器映射556.3.2将值编程到OTP存储器中576.3.3从OTP内存中读取一个值586.4测量IC温度和电压5810附录1:IEEE802.15.4UWB物理层5910.1框架结构概述5910.2数据调制方案5910.3同步头调制方案6010.4PHY头6110.5UWB信道和前导码6210.6标准的其他细节6211附录2:IEEE802.15.4MAC层6211.1一般MAC消息格式6311.2MAC报头中的帧控制字段6311.2.1帧类型字段Frametypefield6411.2.2启用安全性字段SecurityenabledField6411.2.3帧未决字段Framependingfield6411.2.4确认请求字段Acknowledgementrequestfield6511.2.5PANID压缩字段PANIDcompressionfield6511.2.6目标寻址模式字段Destinationaddressingmodefield6511.2.7帧版本字段Frameversionfield6611.2.8源寻址模式字段Sourceaddressingmodefield6611.3序号字段TheSequenceNumberfield6611.4DW1000中的MAC级处理66
2023/10/2 6:23:34 3.91MB DW1000 USER MANUL
1
intmain(void){delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200);//串口初始化为115200LED_Init();//LED端口初始化KEY_Init();//初始化与按键连接的硬件接口InitRc522();//初始化射频卡模块while(1){RC522_Handel();}}
2023/9/29 4:57:09 2.62MB STM32 RC522
1
基于Proteus8.6的8086仿真,8253提供定时中断,用8259响应中断,8255的A口和B口分别控制8个发光二极管及LED显示。
2023/9/27 10:24:42 31KB Proteu 8086 8259 8255
1
适用于STVD环境。
在STM8S003最小系统上PC7口作为红外遥控接收口,通过定时器的输入捕获功能来读取遥控器的高电平时长,从而读取数据。
在定时器中断中判断连发码的次数,统计按键按下的次数。
按键松开后,返回按键值和按键次数。
2023/9/24 1:26:49 59KB STM8S 003 红外 遥控
1
共 548 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡