Материал: RGRSPOOtchet

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

and al, 0fh

mov ah, 10

mul ah

mov dx, ax

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and ax, 0fh

add ax, dx

clc

;end GetNum2

jc EnterNewTimeDate_error

cmp ax, 12

jg EnterNewTimeDate_error

test ax, ax

je EnterNewTimeDate_error

shl ax, 5

or di, ax

lea si, InData+6

;call GetNum 4

;call GetNum 2

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and al, 0fh

mov ah, 10

mul ah

mov dx, ax

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and ax, 0fh

add ax, dx

clc

;end GetNum2

jc GetNum4_ret

mov bp, 100

mul bp

push ax

;call GetNum2

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and al, 0fh

mov ah, 10

mul ah

mov dx, ax

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and ax, 0fh

add ax, dx

clc

;end GetNum2

pop bp

jc GetNum4_ret

add ax, bp

clc

;end GetNum4

jc EnterNewTimeDate_error

sub ax, 1980

jl EnterNewTimeDate_error

cmp ax, 119

jg EnterNewTimeDate_error

shl ax, 9

or di, ax

lea dx, MessageEnterTime

mov ah, 9

int 21h

lea dx, InBuffer

mov ah, 0ah

int 21h

cmp byte ptr InCount, 8

jne EnterNewTimeDate_error

lea si, InData

;call GetNum2

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and al, 0fh

mov ah, 10

mul ah

mov dx, ax

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and ax, 0fh

add ax, dx

clc

;endGetNum2

jc EnterNewTimeDate_error

cmp ax, 23

jg EnterNewTimeDate_error

shl ax, 11

mov cx, ax

lea si, InData+3

;callGetNum2

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and al, 0fh

mov ah, 10

mul ah

mov dx, ax

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and ax, 0fh

add ax, dx

clc

;end GetNum2

jc EnterNewTimeDate_error

cmp ax, 59

jg EnterNewTimeDate_error

shl ax, 5

or cx, ax

lea si, InData+6

;call GetNum2

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and al, 0fh

mov ah, 10

mul ah

mov dx, ax

lodsb

cmp al, '0'

jl GetNum2_error

cmp al, '9'

jg GetNum2_error

and ax, 0fh

add ax, dx

clc

;end GetNum2

jc EnterNewTimeDate_error

cmp ax, 59

jg EnterNewTimeDate_error

shr ax, 1

or cx, ax

mov dx, di

clc

;end EnterNewTimeDate

jc MError

mov ax, 5701h

int 21h

lea si, MessageNew

;call PrintTimeDate

push dx

mov dx, si

mov ah, 9

int 21h

pop dx

push dx

push cx

mov ax, dx

and ax, 001fh

aam

or ax, '00'

mov day_pos, ah

mov day_pos+1, al

mov ax, dx

and ax, 01e0h

shr ax, 5

aam

or ax, '00'

mov month_pos, ah

mov month_pos+1, al

mov ax, dx

shr ax, 9

add ax, 1980

mov cl, 100

div cl

push ax

aam

or ax, '00'

mov year_pos, ah

mov year_pos+1, al

pop ax

mov al, ah

aam

or ax, '00'

mov year_pos+2, ah

mov year_pos+3, al

pop cx

mov ax, cx

shr ax, 11

aam

or ax, '00'

mov hours_pos, ah

mov hours_pos+1, al

mov ax, cx

and ax, 07e0h

shr ax, 5

aam

or ax, '00'

mov minutes_pos, ah

mov minutes_pos+1, al

mov al, cl

and al, 1fh

shl al, 1

aam

or ax, '00'

mov seconds_pos, ah

mov seconds_pos+1, al

lea dx, MessageDateTime

mov ah, 9

int 21h

pop dx

;end PrintTimeDate

mov ah, 3eh

int 21h

;jnc NoError

MError:

lea dx, Error

mov ah,09h

int 21h

NoError:

mov ax,4c00h

int 21h

EnterNewTimeDate_error:

stc

ret

GetNum4_ret:

ret

GetNum2_error:

stc

ret

FINISH_PRG:

END BEGIN

Скриншоты программы

Старые значения даты и времени файла MYFILE.txt

Новые значения даты и времени файла MYFILE.txt

Заключение

В ходе данной расчетно-графической работе были изучены возможности операционной системы MS-DOS и основы системного программирования с помощью ассемблера. В результате разработки данной работы была создана программа, позволяющая изменить дату и время создания файла MYFILE.txt и вывести их старые и новые значения.

Литература

  1. Абель П. Ассемблер. Язык и программирование для IBM PC / Пер. с англ. – К.: Век+, М.: ЭНТРОП, 2005. – 736 с.

  2. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT: Пер. с англ./Предисл. Н.В.Гайского. - М.: Финансы и статистика, 1991.- 544 с.: ил.

  3. Шнайдер А. Язык ассемблера для персонального компьютера фирмы IBM: Пер. с англ.- М.: Мир, 1988 2, 0 - 406 с., ил.