我是汇编语言新手(8086程序),我试图创建一个程序,显示问候取决于系统日期和时间。像如果系统日期是12月25日,那么该程序将打印“圣诞快乐”或如果1月1日,那么它的“新年快乐”。如果它只是一个正常的一天/没有假期,那么只是打印一个“日安”。在系统时间,可能显示“晚上好”或“早上好”。到目前为止,我已经学会了如何获取和显示系统的时间和日期,现在,我想知道如何在上面应用条件(if-else)。
mpgws1up1#
假设你在DOS下用函数2Bh查询了日期,那么日期的格式是DL,月份的格式是DH。检查圣诞节的日期只需要写cmp dx, 0C19h。从下一个示例中获得灵感:
cmp dx, 0C19h
mov si, Xmas cmp dx, 0C19h ; 25 dec je GoPrint mov si, NewY cmp dx, 0101h ; 01 jan je GoPrint ... GoPrint: mov dx, si mov ah, 09h ; DOS.PrintString int 21h ... Xmas: db 'Merry ...', 13, 10, '$' NewY: db 'Happy ...', 13, 10, '$'
对于“Good day”与“Good evening”,您可以将类似的代码应用于CH寄存器中的时间(小时),该时间是通过调用DOS函数2Ch获得的。
1条答案
按热度按时间mpgws1up1#
假设你在DOS下用函数2Bh查询了日期,那么日期的格式是DL,月份的格式是DH。检查圣诞节的日期只需要写
cmp dx, 0C19h
。从下一个示例中获得灵感:
对于“Good day”与“Good evening”,您可以将类似的代码应用于CH寄存器中的时间(小时),该时间是通过调用DOS函数2Ch获得的。