首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带dosbox的汇编8086设置系统时间?

如何使用带dosbox的汇编8086设置系统时间?
EN

Stack Overflow用户
提问于 2018-06-15 11:47:46
回答 1查看 1.3K关注 0票数 1

我希望设置系统时间,并获取显示时间。我已经用下面的代码成功地获得了系统时间

代码语言:javascript
复制
mov ah,2ch              ;get time
int 21h                 ;ch = hr, cl = min, dh = sec

但是我不能通过以下两种方法设置系统时间

代码语言:javascript
复制
mov ah,03h

mov ch,hr(in bcd)
mov cl,mm(in bcd)
mov dh,sec(in bcd)
mov dl,am_pm

int 1ah 

代码语言:javascript
复制
mov ah,2dh
mov ch,hr
mov cl,mm
mov dh,sec
int 21h
EN

回答 1

Stack Overflow用户

发布于 2020-10-10 19:29:16

代码语言:javascript
复制
.MODEL SMALL
.DATA
.CODE
START: MOV AX,@DATA
MOV DS,AX

;Hour Part
HOUR:
MOV AH,2CH    ; To get System Time
INT 21H
MOV AL,CH     ; Hour is in CH
AAM
MOV BX,AX
CALL DISP

MOV DL,':'
MOV AH,02H    ; To Print : in DOS
INT 21H

;Minutes Part
MINUTES:
MOV AH,2CH    ; To get System Time
INT 21H
MOV AL,CL     ; Minutes is in CL
AAM
MOV BX,AX
CALL DISP

MOV DL,':'    ; To Print : in DOS
MOV AH,02H
INT 21H

;Seconds Part
Seconds:
MOV AH,2CH    ; To get System Time
INT 21H
MOV AL,DH     ; Seconds is in DH
AAM
MOV BX,AX
CALL DISP


;To terminate the Program

MOV AH,4CH     ; To Terminate the Program
INT 21H

;Display Part
DISP PROC
MOV DL,BH      ; Since the values are in BX, BH Part
ADD DL,30H     ; ASCII Adjustment
MOV AH,02H     ; To Print in DOS
INT 21H
MOV DL,BL      ; BL Part 
ADD DL,30H     ; ASCII Adjustment
MOV AH,02H     ; To Print in DOS
INT 21H
RET
DISP ENDP      ; End Disp Procedure


END START      ; End of MAIN

试试这个wotking吧

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50868839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档