6. ДАСТУРНИ ЮКЛАШ ВА БАЖАРИШ ФУНКЦИЯЛАРИ.
Энди, дастурни бошка дастурдан юклаш ва бажаришни курайлик. 16-ли 4В
функцияси битта дастурга бошка дастурни хотирага юклашига ва укерак булса
бажаришига рухсат беради. Бу функция учун ASCIIZ сатрни адресини DX регистрга
юклаш керак, параметрлар блок адресини эса - ВХ регистрга (хакикатда ES:BX регистр
парага). AL регистрда 0 еки 3 функция номери урнатилади:
AL = 0.
Юклаш ва бажариш. Берилган оперция дастур сегмент префикс
адресини янги дастур учун урнатади, ва Ctrl/Break реакция кичик дастурни адресини ва
бошкаришни янги дастур тамомлашидан кейиг куйидаги командага топшириш адресини
урнатади. ES:BX дан адресланган параметрлар блоки куйидаги форматга эга:
Силжитиш
Вазифа
0
Топшириш учун параметрлар сатрини икки
байтли сегмент адреси
2
PSP+80Н да команда сатрга курсатадиган
туртбайтли курсатгичи
6
PSP+5СН да FCB блокга курсатадиган турт-
байтли курсатгичи
10
PSP+6СН да FCB блокга курсатадиган турт-
байтли курсатгичи
AL = 3. Оверлей юклангичи. Берилган операция даструни еки кодлар блокини
юклайди, лекин PSP ни яратмайди ва бажаришни бошламайди. Шундай килиб оверлей
дастурларни яратиш мумкин. Параметрлар блоки ES:BX регистр парадан адресланади ва
куйидаги форматга эга:
Силжитиш
Вазифа
0
Файлни юклаш учун сегментни икки байтли ад-
реси
91
2
Юклаш модулни икки байтли созлаш факто-
ри.
АХ регистрда кайтариладиган мумкин хато кодлари: 01, 02, 05, 08, 10 ва 11.
Куйидаги дастурда DOS D дисковод учун DIR команда бажаришини сурайди. Бу
дастурни, ЕХЕ модул дек бажаринг:
TITLE EXDOS
(EXE) 4ВН DIR ни бажариш учун DOS функция
CSEG SEGMENT PARA „Code‟
ASSUME
CS: CSEG, DS: CSEG,ES: CSEG
BEGIN:
JMP SHORT MAIN
;-------------------------------------------------------------------------------------------PARAREA DW
?
; Чакириш сатрни адреси
DW
OFFSET DIRCOM ; Команда сатрга курсатгич
DW
CSEG
DW
OFFSET FCB1
;FCB2 га курсатгич
DW
CSEG
DIRCOM
DB
17,‟./C DIR D:‟,13,0
FCB1 DB
16 DUP(0)
FCB2 DB
16 DUP(0)
PROGNAM DB
„D:COMMAND.COM‟,0
;---------------------------------------------------------------------------------------------
MAIN PROC FAR
MOV AH,4AH
; 64К хотирани
MOV BH,100H
;параграфлардан олиш
INT
21H
JC
E10ERR
;Xотира йук-ми?
MOV DI,2CH
;Чакириш сатрни
MOV AX,[DI]
; сегмент адресини олиш
LEA
SI,PARAREA ; ва уни
MOV [SI],AX
;параметрлар блокига 1 сузга езиш
MOV AX,CS
;DS ваES га
MOV DX,AX
;CSEG адресни юклаш
MOV ES,AX
MOV AH,4BH
;Юклаш ва
MOV AL,00
; ва бажариш функцияси
LEA
BX,PARAREA
;COMMAND.COM
LEA
DX,PROGNAM
INT
21H
;DOS ни чакириш
JC
E20ERR
;Бажариш хато-ми?
MOV AL,00
;Хато коди йук
JMP
X10XIT
E10ERR:
MOV AL,01
; Хато коди 1
JMP
X10XIT
E20ERR:
MOV AL,02
; Хато коди 2
X10XIT:
MOV AH,4CH
;Тамомлаш функцияси
92
INT
21H
;DOS ни чакириш
MAIN ENDP
CSEG ENDS
END
Do'stlaringiz bilan baham: |