用emu8086显示年月日值
时间: 2024-05-02 13:22:29 浏览: 86
emu8086计数器
我能够理解您的要求,并相应地回答您的问题。要在emu8086上显示年月日值,您可以使用以下代码:
```
; Set up data segment
MOV AX, @DATA
MOV DS, AX
; Get current date
MOV AH, 2AH
INT 21H
; Extract year, month, and day from date
MOV AL, DL ; AL = year (since 1980)
MOV AH, 0
MOV BL, DH ; BL = month
MOV BH, 0
MOV CL, DL ; CL = day
MOV CH, 0
; Convert year to decimal
SUB AL, 80H
MOV DL, 10
DIV DL
ADD AL, 30H ; Convert quotient to ASCII
MOV [year], AL ; Store year in memory
; Convert month to decimal
MOV DL, 10
DIV DL
ADD AH, 30H ; Convert quotient to ASCII
ADD BL, 30H ; Convert remainder to ASCII
MOV [month], AH ; Store tens digit in memory
MOV [month+1], BL ; Store ones digit in memory
; Convert day to decimal
MOV DL, 10
DIV DL
ADD AH, 30H ; Convert quotient to ASCII
ADD CL, 30H ; Convert remainder to ASCII
MOV [day], AH ; Store tens digit in memory
MOV [day+1], CL ; Store ones digit in memory
; Display date
MOV AH, 09H
LEA DX, [date]
INT 21H
; Exit program
MOV AH, 4CH
INT 21H
; Data segment
year DB ?
month DB ?, ?
day DB ?, ?
date DB 0DH, 0AH, 'Today is ', 0, 0, '-', 0, 0, '-', 0, 0, 0DH, 0AH, '$'
```
这段代码将获取当前日期,并将其转换为年月日格式,放在`year`,`month`和`day`变量中。然后,它将日期字符串打印到屏幕上,告诉用户今天的日期是什么。请注意,这是基于DOS系统的代码,并且可能需要进行修改才能在其他平台上运行。
阅读全文