例6.9 根据当前计算机的时间和日期,显示上午(AM)或下午(PM),以及所在的季节。
解:
| DATA1 | SEGMENT | |||
| MSG | DB "Time: " | |||
| AmPm | DB "AM", 13, 10 | |||
| DB "Season: $" | ||||
| winter | DB "Winter$" | |||
| spring | DB "Spring$" | |||
| summer | DB "Summer$" | |||
| autumn | DB "Autumn$" | |||
| DATA1 | ENDS | |||
| CODE1 | SEGMENT | |||
| … | ||||
| MOV AH, 2CH | ;取当前系统时间 | |||
| INT 21H | ||||
| .IF CH >= 12 | ;下午时间 | |||
| MOV AmPm, 'P' | ;为显示PM作安排 | |||
| .ENDIF | ||||
| MOV DX, OFFSET MSG | ||||
| MOV AH, 09H | ||||
| INT 21H | ;显示字符串MSG,直到'$'结束 | |||
| MOV AH, 2AH | ||||
| INT 21H | ;取当前系统日期 | |||
| .IF (DH == 12) || (DH < 3) | ;判断是否为12月,1月和2月 | |||
| MOV DX, OFFSET winter | ||||
| .ELSEIF (DH >= 3) && (DH < 6) | ;判断是否为3、4和5月 | |||
| MOV DX, OFFSET spring | ||||
| .ELSEIF (DH >= 6) && (DH < 9) | ;判断是否为6、7和8月 | |||
| MOV DX, OFFSET summer | ||||
| .ELSE | ;9、10和11月 | |||
| MOV DX, OFFSET autumn | ||||
| .ENDIF | ||||
| MOV AH, 09H | ;显示季度名称 | |||
| INT 21H | ||||
| … | ||||
| END | ||||