assembly 在汇编语言中使用条件和时间与日期

nzrxty8p  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(141)

我是汇编语言新手(8086程序),我试图创建一个程序,显示问候取决于系统日期和时间。像如果系统日期是12月25日,那么该程序将打印“圣诞快乐”或如果1月1日,那么它的“新年快乐”。如果它只是一个正常的一天/没有假期,那么只是打印一个“日安”。在系统时间,可能显示“晚上好”或“早上好”。
到目前为止,我已经学会了如何获取和显示系统的时间和日期,现在,我想知道如何在上面应用条件(if-else)。

mpgws1up

mpgws1up1#

假设你在DOS下用函数2Bh查询了日期,那么日期的格式是DL,月份的格式是DH。检查圣诞节的日期只需要写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获得的。

相关问题