Системные функции ввода с клавиатуры - Assembler
Формулировка задачи:
Помогите написать программу в ассемблере (TASM)
1)Организации паузы и продолжения программы по нажатию клавиши (любой, конкретной)
2)Определить длину файла
3)Переименовать файл и установить в нем время и дату создания
Решение задачи: «Системные функции ввода с клавиатуры»
textual
Листинг программы
; изменить время и дату создания файла mov AH, 57h ; функция даты/времени mov AL, 1 ; установить дату/время mov BX, hаndle ; установить дескриптор mov CX, 0 ; очистить cx or CX, seс ; добавить секунды or CX, min ; добавить минуты or CX, hour ; добавить часы xor DX, DX ; очистить DX or DX,day ; добавить день or DX, mon ; добавить месяц or DX, year ; добавить год int 21h ; в сегмент данных sec DW 6/2 ; 6 секунд min DW 15 * 32 ; 15 минут hour DW 16*2048 ; 16 часов day DW 25 ; 25 число mon DW 3*32 ; Март year DW 25*512 ; 25 лет от 1980г, т.е. 2005 г.
Объяснение кода листинга программы
Объяснение кода:
- mov AH, 57h — устанавливает код функции 57h для системного вызова функции даты и времени.
- mov AL, 1 — устанавливает режим функции даты и времени на однократный запрос.
- mov BX, hаndle — устанавливает дескриптор файла, созданного в сегменте данных, в регистр BX.
- mov CX, 0 — очищает регистр CX, который будет использоваться для хранения времени.
- or CX, seс — добавляет значение переменной seс (6/2=3) к регистру CX.
- or CX, min — добавляет значение переменной min (15*32=480) к регистру CX.
- or CX, hour — добавляет значение переменной hour (16*2048=32768) к регистру CX.
- xor DX, DX — очищает регистр DX, который будет использоваться для хранения даты.
- or DX,day — добавляет значение переменной day (25) к регистру DX.
- or DX, mon — добавляет значение переменной mon (3*32=96) к регистру DX.
- or DX, year — добавляет значение переменной year (25*512=12800) к регистру DX.
- int 21h — вызывает системный вызов функции даты и времени с использованием регистра DX для года, регистра CX для времени и регистра BX для дескриптора файла. Переменные в сегменте данных:
- sec DW 6/2 - переменная seс содержит 6/2=3.
- *min DW 1532* - переменная min содержит 1532=480.
- *hour DW 162048* - переменная hour содержит 162048=32768.
- day DW 25 - переменная day содержит 25.
- *mon DW 332* - переменная mon содержит 332=96.
- *year DW 25512* - переменная year содержит 25512=12800, что эквивалентно 2005 году от нашей эры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д