news 2026/4/17 19:38:12

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/4/16 17:04:50

零售客服智能化转型,Open-AutoGLM实现准确率提升42%的秘密

第一章:零售客服智能化转型的行业背景随着消费者行为的快速演变和数字技术的持续进步,传统零售客服模式正面临前所未有的挑战。客户期望获得即时、精准且个性化的服务体验,而人工客服在响应速度、服务成本和一致性方面逐渐显现出局限性。在此…

作者头像 李华
网站建设 2026/4/17 17:36:51

为什么你的Open-AutoGLM项目总失败?这7个关键点你必须掌握

第一章:Open-AutoGLM项目失败的根源分析Open-AutoGLM项目旨在构建一个开源的自动化类GPT模型训练与推理框架,但在实际推进过程中遭遇了多重结构性问题,最终导致项目停滞。深入剖析其失败原因,有助于为后续类似项目提供关键警示。技…

作者头像 李华
网站建设 2026/4/15 20:23:06

揭秘 Open-AutoGLM 架构设计:如何实现零代码大模型调优?

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

作者头像 李华
网站建设 2026/3/29 7:33:53

技术会过时,但PHP程序员解决问题的能力永不过时。

“技术会过时,但 PHP 程序员解决问题的能力永不过时。” 这句话看似鼓舞人心,实则蕴含深刻的职业哲学与能力演化逻辑。它并非否定技术学习的重要性,而是强调:真正的核心竞争力,是超越具体工具的底层思维与工程素养。一…

作者头像 李华
网站建设 2026/4/10 9:44:33

从零构建AutoGLM系统,手把手教你实现智能任务分解引擎

第一章:AutoGLM系统概述与核心理念AutoGLM 是一个面向自动化自然语言处理任务的智能系统,旨在通过大语言模型(LLM)驱动的工作流实现从数据理解到模型推理的端到端自动化。该系统融合了任务解析、上下文感知调度、动态提示工程与结…

作者头像 李华
网站建设 2026/4/18 2:06:20

错过再等十年:Open-AutoGLM多智能体框架内部架构首次曝光

第一章:Shell脚本的基本语法和命令Shell脚本是Linux和Unix系统中自动化任务的核心工具,通过编写一系列命令并保存为可执行文件,用户可以高效地完成重复性操作。Shell脚本通常以#!/bin/bash开头,称为Shebang,用于指定解…

作者头像 李华