news 2026/8/7 23:05:24

HalpInitializeClock函数分析之CMOS_WRITE宏定义和CMOS_CONTROL_PORT=0x70和CMOS_DATA_PORT=0x71

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HalpInitializeClock函数分析之CMOS_WRITE宏定义和CMOS_CONTROL_PORT=0x70和CMOS_DATA_PORT=0x71

HalpInitializeClock函数分析之CMOS_WRITE宏定义和CMOS_CONTROL_PORT=0x70和CMOS_DATA_PORT=0x71

F:\srv03rtm\base\hals/halmps/i386/mpclock.asm:279:cPublicProc _HalpInitializeClock ,0
F:\srv03rtm\base\hals/halmps/i386/mpclock.asm:366: stdRET _HalpInitializeClock
F:\srv03rtm\base\hals/halmps/i386/mpclock.asm:368:stdENDP _HalpInitializeClock

第一部分:
;
; Set the interrupt rate to what is actually needed
;
stdCall _HalpAcquireCmosSpinLock ; intr disabled

mov eax, _HalpCurrentRTCRegisterA
shl ax, 8
mov al, 0AH ; Register A
CMOS_WRITE ; Initialize it
;
; Don't clobber the Daylight Savings Time bit in register B, because we
; stash the LastKnownGood "environment variable" there.
;
mov ax, 0bh
CMOS_READ
and al, 1
mov ah, al
or ah, REGISTER_B_ENABLE_PERIODIC_INTERRUPT
mov al, 0bh
CMOS_WRITE ; Initialize it
mov al,0CH ; Register C
CMOS_READ ; Read to initialize
mov al,0DH ; Register D
CMOS_READ ; Read to initialize

stdCall _HalpReleaseCmosSpinLock


第二部分:
;
; CMOS_READ
;
; Description: This macro reads a byte from the CMOS register specified
; in (AL).
;
; Parameter: (AL) = address/register to read
; Returns: (AL) = data
;

CMOS_READ MACRO
OUT CMOS_CONTROL_PORT,AL ; ADDRESS LOCATION AND DISABLE NMI
IODelay ; I/O DELAY
IN AL,CMOS_DATA_PORT ; READ IN REQUESTED CMOS DATA
IODelay ; I/O DELAY
ENDM

;
; CMOS_WRITE
;
; Description: This macro reads a byte from the CMOS register specified
; in (AL).
;
; Parameter: (AL) = address/register to read
; (AH) = data to be written
;
; Return: None
;

CMOS_WRITE MACRO
OUT CMOS_CONTROL_PORT,AL ; ADDRESS LOCATION AND DISABLE NMI
IODelay ; I/O DELAY
MOV AL,AH ; (AL) = DATA
OUT CMOS_DATA_PORT,AL ; PLACE IN REQUESTED CMOS LOCATION
IODelay ; I/O DELAY
ENDM

第三部分:
//
// CMOS related definitions and macros
//

#define CMOS_CONTROL_PORT 0x70 // cmos command port
#define CMOS_DATA_PORT 0x71 // cmos data port
#define CMOS_FLOPPY_CONFIG_BYTE 0x10

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 0:24:49

Open-AutoGLM脚本如何做到零故障运行?3个关键编写标准揭晓

第一章:Open-AutoGLM 自定义脚本编写规范在开发基于 Open-AutoGLM 框架的自动化任务时,遵循统一的脚本编写规范是确保代码可读性、可维护性和跨团队协作效率的关键。所有自定义脚本应以模块化结构组织,并严格遵守命名约定与异常处理机制。代码…

作者头像 李华
网站建设 2026/8/7 15:28:10

Open-AutoGLM集成难题全解析:5步打通CI/CD流水线瓶颈

第一章:Open-AutoGLM集成难题全解析:5步打通CI/CD流水线瓶颈在将 Open-AutoGLM 集成至企业级 CI/CD 流水线时,常因模型依赖复杂、构建缓存失效和环境隔离不足导致部署延迟。通过系统化拆解集成路径,可显著提升自动化流程稳定性与交…

作者头像 李华
网站建设 2026/8/7 11:19:31

价值投资中的宏观经济考量:全局视野

价值投资中的宏观经济考量:全局视野 关键词:价值投资、宏观经济分析、投资决策框架、经济周期、行业轮动、资产配置、风险对冲 摘要:本文深入探讨价值投资中宏观经济考量的重要性及其应用方法。文章首先介绍宏观经济分析在价值投资中的核心地位,然后详细解析关键经济指标与…

作者头像 李华
网站建设 2026/8/6 5:12:58

Open-AutoGLM收费模式全解析:5种主流定制开发计费方式及企业选型建议

第一章:Open-AutoGLM企业定制开发收费模式概述Open-AutoGLM作为面向企业级应用的大模型定制平台,提供灵活且透明的收费模式,旨在满足不同规模企业在AI集成过程中的多样化需求。其核心计费机制围绕功能模块、服务等级与资源消耗三个维度构建&a…

作者头像 李华
网站建设 2026/8/7 22:05:32

【大模型开发新范式】:Open-AutoGLM 如何让AI研发效率提升300%?

第一章:Open-AutoGLM 开发文档核心解读Open-AutoGLM 是一个面向自动化自然语言任务的开源框架,旨在简化大语言模型(LLM)在实际业务场景中的集成与调优流程。其核心设计理念是通过声明式配置驱动模型行为,支持任务编排、…

作者头像 李华
网站建设 2026/8/6 5:24:01

Open-AutoGLM调试实战(90%工程师忽略的隐藏问题)

第一章:Open-AutoGLM调试实战概述 在大语言模型快速发展的背景下,Open-AutoGLM作为一款支持自动化推理与任务生成的开源框架,为开发者提供了灵活的调试接口和模块化设计。本章聚焦于实际开发中常见的调试场景,帮助用户快速定位问题…

作者头像 李华