asm potrzebna wielka pomoc

0

jak <font color="red">napisac </span>program w asm aby <font color="red">sprawdzal </span><font color="red">kdate </span><font color="red">dzisiejszego </span>dnia i <font color="red">jesli </span>data <font color="red">sie </span>zgadza to <font color="red">wykonywal </span>operacje

0

Wersja dla DOSa:
[code]Kod Segment
Org 100h
Assume cs:Kod,ds:Kod
Start: mov ah,2ah
int 21h ;pobierz datę
cmp cx,rok
jne kon
cmp dh,mies
jne kon
cmp dl,dzien
jne kon
mov ah,2ch
int 21h ;pobierz godzinę
cmp ch,godz
jne kon
cmp cl,min
jne kon
cmp dh,sec
jne kon
mov ah,9
lea dx,text
int 21h
kon: mov ah,4ch
int 21h

text db 'The time has come.$'
rok dw 2003
mies db 4
dzien db 26
godz db 11
min db 3
sec db 50

Kod endS
end Start[/code]

Wersja dla Windows:
[code].386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

;-------------------------------------------------------------------
.DATA
text db 'The time has come.',0
capt db 'Akcja!',0
rok dw 2003
mies dw 4
dzien dw 26
godz dw 11
min dw 3
sec dw 50
;-------------------------------------------------------------------
.DATA?
Data SYSTEMTIME
;-------------------------------------------------------------------
.CODE
start:
push offset Data
call GetSystemTime
mov edi,offset Data
assume edi:ptr SYSTEMTIME

mov ax,rok
cmp [edi].wYear,ax
jne kon
mov ax,mies
cmp [edi].wMonth,ax
jne kon
mov ax,dzien
cmp [edi].wDay,ax
jne kon
mov ax,godz
cmp [edi].wHour,ax
jne kon
mov ax,min
cmp [edi].wMinute,ax
jne kon
mov ax,sec
cmp [edi].wSecond,ax
jne kon

push MB_OK
push offset capt
push offset text
push 0
call MessageBox

kon: push 0
call ExitProcess
END start[/code]

Można też zamienić strukturę SYSTEMTIME na FILETIME i użyć funkcji CompareFileTime.

1 użytkowników online, w tym zalogowanych: 0, gości: 1