用80x86汇编语言读写系统时间
来源:互联网 发布:易趣网与淘宝网的不同 编辑:程序博客网 时间:2024/06/05 03:33
用80x86汇编语言编程,设置初值为60,每过一秒减1,减至5秒时鸣笛报警。
悬赏分:100 | 解决时间:2011-6-4 19:39
最佳答案:
;=====================================
;下列程序已经实验通过.
DATA SEGMENT
DATA ENDS
;------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;-------------------------
MOV AH, 2DH ;写时间.
MOV DH, 0 ;此时为0秒.
INT 21H ;写入系统.
;之后,系统的秒数会自动增加
;-------------------------
MOV BL, 55 ;设定到55秒报响.
LOP: MOV AH, 2CH ;读时间.
INT 21H
SUB DH, BL ;减55
JB LOP ;不够减就继续读.
;-------------------------
RING: MOV AH, 2 ;输出字符
MOV DL, 7 ;BP
INT 21H ;报响.
;-------------------------
INC BL ;下次在56秒报响.
CMP BL, 1 ;如果到了1秒.
JZ EXIT ;就结束.
CMP BL, 60 ;到了60秒?
JNE LOP ;没有就继续读.
MOV BL, 0 ;到了60秒,改为0
JMP LOP ;0秒,也要去响一次.
;-------------------------
EXIT:
MOV AH, 4CH
INT 21H
CODE ENDS
END START
;------------------------
在WINDOWS的DOS窗口执行时,好像略快了一点。
回答时间:2011-6-4 19:39
回答者: 做而论道 | 十五级采纳率:43% 名人
提问者对于答案的评价:very good!无以为报,唯将所有分数奉上
原题网址:http://zhidao.baidu.com/question/275699474.html
;=====================================
说明:
程序中,用到了DOS操作系统的读写时间的系统功能调用。
MOV AH, 2CH ;读时间.
INT 21H
读出后:
CH = 小时(0~23);
CL = 分钟(0~59);
DH = 秒数(0~59);
DL = 1/100秒数(0~99)。
用 2DH 号功能调用,即可写入时间。写入前,各寄存器也要按照上述格式设置。
写入时间的功能调用,目前在WinXP环境下,仅仅是影响到了一个DOS窗口,并不改变整机的时间。
在WinXP环境下进行测试发现,在DOS窗口中,时间的渡过,有些快,且不准。
第一次实验,约30秒就报时了,第二次实验,约50多秒,就报时了。
可惜找不到一个装有纯DOS的老式机器来实验。
;=====================================
- 用80x86汇编语言读写系统时间
- 80x86 汇编语言:在屏幕右上角显示系统时间
- 80x86 汇编语言基础教程
- 80x86汇编语言程序设计P50
- 80x86 汇编语言编程:求和
- 80x86汇编语言:福到了
- 80x86汇编语言:字符串移动
- 80x86汇编语言:分类统计
- 80x86 汇编语言:查找字符串
- 80x86 汇编语言编程:EXE2COM
- 用80x86汇编语言编程:输入后反序显示
- 用80x86汇编语言编程:键盘输入与显示输出
- 用80x86汇编语言编程:分类统计字符个数
- 用80x86汇编语言,编写一个判断闰年的程序
- 用80x86汇编语言编程:键盘输入数组,再选择输出
- 80x86 汇编语言编程:用 “*” 显示一个三角形
- 用80x86汇编语言:在字符串中删除一个字符
- X86 汇编语言
- #UML#UML类图
- 关于51单片机外部中断的触发方式
- 51单片机的4×4键盘识别与74LS164驱动数码显示
- 智能交通灯
- 利用单片机控制频率合成器 MC145151-2 的输出频率
- 用80x86汇编语言读写系统时间
- 用80x86汇编语言编程:输入后反序显示
- 用80x86汇编语言编程:键盘输入与显示输出
- 51单片机2个外部中断的应用
- 数码管显示 0000-9999计数器
- 淘宝双飞翼布局,两边固定中间自适应布局。中间内容先显示。
- 51单片机汇编语言编程:开关控制计时
- 读取xml文件的值 字符串的截取
- 数码管显示 0-9999计数器