📄 work2.asm
字号:
data segment
table dw date, time, function, endo
instruction db "Input number between 1-4 for(1:date;2:time;3:a sentence;4:exit): $"
string db "Hello World!$"
y db "YEAR: $"
m db "month: $"
d db "day: $"
h db "hour: $"
mi db "minute: $"
s db "second: $"
year dw ?
month db ?
day db ?
hour db ?
minute db ?
second db ?
tenW dw 0ah
tenB db 0ah
data ends
stack1 segment para stack
dw 20h dup(0)
stack1 ends
code segment
assume ds:data,ss:stack1,cs:code
start:
mov ax,data
mov ds,ax
rotate: mov dx,offset instruction
mov ah,09h
int 21h
mov ah,01h
int 21h
xor ah,ah
sub al,30h
dec al
shl al,1
mov bx,offset table
add bx,ax
mov ax,[bx]
push ax
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
pop ax
jmp ax
date: mov ah,2ah ;显示当前日期
int 21h
mov year,cx
mov month,dh
mov day,dl
;************年的显示***********
mov dx,offset y
mov ah,09h
int 21h
mov dx,0
mov ax,year
mov cx,4
lop1: div tenW
add dl,30h
push dx
mov dx,0
loop lop1
mov cx,4
lop2: pop dx
mov ah,02h
int 21h
loop lop2
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
;*****************************
;************月的显示*********
mov dx,offset m
mov ah,09h
int 21h
mov ah,0
mov al,month
mov cx,2
lop3: div tenB
add ah,30h
push ax
xor ah,ah
loop lop3
mov cx,2
lop4: pop ax
mov dl,ah
mov ah,02h
int 21h
loop lop4
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
;******************************
;***********天的显示***********
mov dx,offset d
mov ah,09h
int 21h
mov ah,0
mov al,day
mov cx,2
lop5: div tenB
add ah,30h
push ax
xor ah,ah
loop lop5
mov cx,2
lop6: pop ax
mov dl,ah
mov ah,02h
int 21h
loop lop6
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
;***************************
jmp rotate
time: mov ah,2ch ;显示当前时间
int 21h
mov hour,ch
mov minute,cl
mov second,dh
;***********小时的显示**********
mov dx,offset h
mov ah,09h
int 21h
mov ah,0
mov al,hour
mov cx,2
lop7: div tenB
add ah,30h
push ax
xor ah,ah
loop lop7
mov cx,2
lop8: pop ax
mov dl,ah
mov ah,02h
int 21h
loop lop8
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
;***************************
;***********分的显示*********
mov dx,offset mi
mov ah,09h
int 21h
mov ah,0
mov al,minute
mov cx,2
lop9: div tenB
add ah,30h
push ax
xor ah,ah
loop lop9
mov cx,2
lop10: pop ax
mov dl,ah
mov ah,02h
int 21h
loop lop10
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
;***************************
;***********秒的显示*********
mov dx,offset s
mov ah,09h
int 21h
mov ah,0
mov al,second
mov cx,2
lop11: div tenB
add ah,30h
push ax
xor ah,ah
loop lop11
mov cx,2
lop12: pop ax
mov dl,ah
mov ah,02h
int 21h
loop lop12
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
;***************************
jmp rotate
function:
mov dx,offset string
mov ah,09h
int 21h
mov dl, 0dh ; 换行
mov ah,02h
int 21h
mov dl, 0ah
mov ah,02h
int 21h
jmp rotate
endo: mov ah,4ch
int 21h
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -