学习DOS汇编显示系统日期时间程序
16位实模式适用于DOS环境org 100h ; 显示日期 mov ah, 2Ah ; 获取系统日期 int 21h ; CX年, DH月, DL日 mov al, dl ; 日 call print_dec mov dl, / ; 分隔符 call print_char mov al, dh ; 月 call print_dec mov dl, / ; 分隔符 call print_char mov ax, cx ; 年 call print_dec ; 显示分隔空格 mov dl, call print_char ; 显示时间 mov ah, 2Ch ; 获取系统时间 int 21h ; CH时, CL分, DH秒 mov al, ch ; 时 call print_dec mov dl, : ; 分隔符 call print_char mov al, cl ; 分 call print_dec mov dl, : ; 分隔符 call print_char mov al, dh ; 秒 call print_dec mov ax, 4C00h ; 退出程序 int 21h ; 子程序打印AL中的十进制数0-99 print_dec: aam ; AL - AH(十位), AL(个位) add ax, 3030h xchg al, ah mov dl, al call print_char mov dl, ah ; 子程序打印DL中的ASCII字符 print_char: push ax mov ah, 02h int 21h pop ax ret在模拟器运行如下它有两个子过程print_char打印dl中的ascii字符print_dec打印AL中的十进制数0-99学习一下aam指令x86 AAM指令用于对AL寄存器中的非压缩BCD乘法结果进行调整以得到正确的非压缩BCD格式高位存于AH中低位存于AL中。AAM指令本身并不带操作数。在执行AAM之前通常是先执行MUL指令将两个非压缩BCD数相乘结果存于AX中实际上结果主要在AL中然后使用AAM指令将AL中的结果调整为两个非压缩BCD数字高位存于AH中低位存于AL中。为什么会有这两句add ax, 3030hxchg al, ah查到的资料说这两句汇编代码的作用是将AX寄存器中的两字节非压缩BCD码转换成可以显示的ASCII码ADD AX, 3030H将AX寄存器中的内容与3030H相加结果存入AX寄存器中。这一步骤通常用于将非压缩BCD码转换为ASCII码。XCHG AL, AH交换AX寄存器中AL和AH的内容。这一步骤用于调整字节顺序使得转换后的ASCII码正确显示。这两句代码的组合常用于将二进制无符号数转换成显式的十进制ASCII码并显示。例如如果AX中存储的是非压缩BCD码经过这两步操作后AX中的内容将变成对应的ASCII码便于在屏幕上显示。ADD AX, 3030H将非压缩BCD码转换为ASCII码。XCHG AL, AH交换字节顺序确保ASCII码正确显示。这两句代码的组合常用于将二进制无符号数转换成显式的十进制ASCII码并显示mov dl, / 这么写也是可以的没出错我汇编不是太熟悉mov ah, 2Ah ; 获取系统日期int 21h ; CX年, DH月, DL日调用中断获取系统日期把2Ah赋给ah是入参调用成功以后cx寄存器的值是年dh寄存器的值是月dl寄存器的值是日有时间继续

相关新闻

VSCODE菜单修改字体大小

VSCODE菜单修改字体大小

Virtualbox修改ubuntu显示大小 ctrl

2026/5/17 5:45:27 阅读更多 →
Ubantu服务器构建openclaw并接入飞书

Ubantu服务器构建openclaw并接入飞书

一、安装核心依赖OpenClaw运行依赖于Node.js且版本必须大于v22.0.0# 1. 安装Node.js 22.x(官方推荐稳定版) curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs# 2. 验证Node.js版本(需≥v22.0.…

2026/7/3 13:40:36 阅读更多 →
OpenClaw 的具体应用场景

OpenClaw 的具体应用场景

OpenClaw 的具体应用场景 引言:OpenClaw 是一个开放且可扩展的机器人控制与协作平台,致力于通过模块化架构实现跨行业的应用能力。它能够将机器人、传感器、AI 服务和云端仿真整合在统一的接口之下,支持从工业制造到教育培训等多场景的落地实…

2026/7/3 12:37:09 阅读更多 →

最新新闻

TPAFE0808与PIC32MZ的多通道信号采集系统设计

TPAFE0808与PIC32MZ的多通道信号采集系统设计

1. 项目背景与硬件选型解析 在工业控制和嵌入式监测领域,多通道信号采集与控制系统一直是核心需求。TPAFE0808作为3PEAK公司推出的8通道可配置ADC/DAC模拟前端芯片,配合Microchip的PIC32MZ1024EFH064高性能微控制器,构成了一个灵活高效的混合…

2026/7/3 15:13:23 阅读更多 →
硬盘缓存扩容教程,提升节点有效流量分成

硬盘缓存扩容教程,提升节点有效流量分成

在PCDN(P2P内容分发网络)的业务逻辑中,节点的硬盘缓存能力直接决定了调度权重。许多新手玩家往往只关注带宽大小,却忽略了缓存命中率这一核心指标。实际上,平台调度系统更倾向于将热门资源派发给那些拥有大容量、高读写…

2026/7/3 15:09:22 阅读更多 →
内存架构探讨

内存架构探讨

为了实现更高的性能,目前CPU集成了内存控制器,使得内存拥有控制器与存储体物理分离的架构。这样的架构提高了性能,但存储体就没有了任何的逻辑保护,这样理论和实践上就存在了多种绕开控制器直接访问存储体的可能。

2026/7/3 15:09:22 阅读更多 →
Python项目规范:结构化工程目录与代码风格

Python项目规范:结构化工程目录与代码风格

你永远不知道一个没有项目规范的Python仓库能烂到什么程度。一个utils.py塞满5000行函数,全局变量从A到Z排列,import语句像蜘蛛网一样交叉引用,main.py里混着单元测试和数据库连接——这不是段子,是每天都在发生的代码灾难。结构混…

2026/7/3 15:05:20 阅读更多 →
【产品演示】一次PCIe Gen6 x4 E3.S SSD远程Demo:为什么SerialTek分析仪真正快在“抓完以后”?

【产品演示】一次PCIe Gen6 x4 E3.S SSD远程Demo:为什么SerialTek分析仪真正快在“抓完以后”?

我们前两周做了一次使用SerialTek PCIe 6.0协议分析仪抓取业内最新的Gen6 x4 E3.S SSD的流量的远程实时演示,表面上看是一次 PCIe Gen6 x4 E3.S SSD 的协议分析仪 Demo,但真正看完整个过程,会发现它讨论的并不只是“能不能抓到包”。更核心的…

2026/7/3 15:05:20 阅读更多 →
Spring AI Alibaba实战:Java开发者快速集成AI能力的完整指南

Spring AI Alibaba实战:Java开发者快速集成AI能力的完整指南

最近在尝试将AI能力集成到Java应用中时,发现市面上针对Java开发者的AI应用开发框架选择不多,且配置复杂。Spring AI的出现,特别是其与阿里云等国内服务的集成,为Java开发者提供了一条开箱即用的捷径。本文将手把手带你从零开始&am…

2026/7/3 15:05:20 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻