Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Assembler - jc nefunguje ako ma

A spravne sa to robi tak ze funkcia nezasaghuje do nejakych globalnych premennych, ale vrati handle v ax, a do nejakych premennych si to das az po navrate fcie. A fcia co otvara subor len otvara subor, a necarbe po obrazovke.
Potom to bude napr. takto

FILE_OPEN PROC 
    push dx
    mov ah,3dh                        ; DOS funkcion to open a file
    xor al,al                         ; clearing al register
    int 21h                           ; interrupt   
    pop dx
    ret                               ; vraciam buf CF alebo handle v AX
ENDP
pozn: push dx a pop dx sa da dosiahnut aj tak, ze sa do deklaracie fcie napise
FILE_OPEN PROC uses DX

hlavny program (tu riesim ze co bude na obrazovke, a ne kdesi vo file open) napr.
FILE_PRINT PROC
    CALL CLRSCR
    lea dx,filename
    CALL FILE_OPEN
    jc ERROR3
    mov handle, ax
...
P.S> v assembleri mozes principialne robit to iste co v C, parametre do funkcie posles bud v registri alebo v stacku, a navr. hodnotu v CF a (E)AX registri apod.
T.j. neco ako v C:
if(handle=FileOpen("nazov")) RobNeco(handle) else error();
bude v asm:
lea dx, nazov_str
call FileOpen
jc error
call RobNeco ;v AX uz mam handle, to moze byt rovno parameter tej funkcie...
jmp exit

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny