ASM печатать поверх уже напечатанных значений
Вопрос
У меня есть скрипт ASM, который отображает дату (день, месяц, год) и время (часы, минуты, секунды).
Это печатает текущую дату и время в DOS-окне. Дело в том, что это статично. То, что я хочу сделать, это сделать его динамичным, то есть мне нужно написать новое значение в том месте, где текущее значение стоит на экране. Как вы делаете это в ASM?
Я понятия не имею, и Google не был моим другом для этого.
Решение
Используйте код ASM, чтобы поместить курсор перед печатью строки. Например:
MOV DX,1629H ; (LINE 16H, COL 29H)
MOV AH,2 ; Move cursor to DH,DL
INT 10H
; now print your string
Другие советы
Если ваш DOS-ящик - это COMMAND.COM или CMD.EXE до Windows 2000 (более новые CMD.EXE не поддерживают ANSI), то он будет поддерживать escape-последовательности ANSI. Вы можете использовать различные команды курсора для позиционирования курсора. в начале ваших часов перед отображением нового времени.
Это на самом деле не проблема для конкретного языка, а скорее для платформы. Вы сказали, что работаете в DOS-боксе, поэтому вы можете использовать один из следующих вариантов:
<Ол>Если вы собираетесь много заниматься программированием на ассемблере в DOS, я бы оставил закладку на один из прерывание ссылки .