Элемент перемещения #3 : 0000:00A3
Память : 055F:009F -> 8BE7FBB8 3C08 8EC02689
Файл : 1695 -> 8BE7FBB8 DD02 8EC02689
Разность = 055F
Элемент перемещения #4 : 0000:013D
Память : 055F:0139 -> 009A0600 ED07 50900EE8
Файл : 1849 -> 009A0600 8E02 50900EE8
Разность = 055F
Элемент перемещения #5 : 028E:031E
Память : 07ED:031A -> 019A6F21 5F05 83C40433
Файл : 12794 -> 019A6F21 0000 83C40433
Разность = 055F
Висновок: Було вивчено механізм завантаження програм у пам’ять настройку адрес, ознаймлено з таблицією завантаження файлу та таблицією переміщення.
Звіт з лабораторної роботи № 11.
Мета роботи: Оволодіти програмними засобами та прийомами для написання програм, які завантажують в пам’ять іншу та передають їй управління.
Текст програми на асемблері:
;=====================================
;Ця програма завантажує в якості дочірньої програму
; spo13.exe
;======================================
.286
;--------------------------------------
sts segment stack 'stack'
dw 128 dup (?)
sts ends
;--------------------------------------
data segment
env_doch db 0
db 0
path db 'spo13.exe',0 cmd_line db 0
epb_doch label word
env_seg dw seg env_doch
cmd_offs dw offset cmd_line
cmd_seg dw seg cmd_line
adr_fcb_1 dd 0
adr_fcb_2 dd 0
sp_prnt dw ?
ss_prnt dw ?
psp_prnt dw ?
adr_cvt dw 2 dup(?)
mcb_1 dw ?
mcb_prnt dw ?
mcb_M dw ?
mcb_Z dw ?
kol_mcb dw 0
text_1 db 'Управління передано дочірному процесу'
db 0dh,0ah,'$'
text_2 db 'Управління повернено дочірній програмі'
db 0dh,0ah,'$'
text_3 db 'Програма вернула управління системі'
db 0dh,0ah,'$'
err_msg db ' ... з помилкою.', 0dh,0ah,'$'
soobsh db 10,13,' ( Натисніть будь-яку клавішу )',10,13,'$'
data ends
;--------------------------------------
code segment
assume cs:code,ss:sts,ds:data
nach:
mov ax,data
mov ds,ax
mov psp_prnt,es
mov ah,52h
int 21h
mov adr_cvt,bx
mov adr_cvt+2,es
mov bx,es:[bx-2]
mov mcb_1,bx
adr_mcb:
add kol_mcb,1
mov es,bx
mov mcb_Z,bx
mov al,es:0
cmp al,'Z'
jz out_mcb
mov mcb_M,bx
mov ax,es:[3]
add ax,1
add bx,ax
jmp adr_mcb
out_mcb:
mov ah,4ah
mov es,psp_prnt
mov bx,zseg
sub bx,psp_prnt
int 21h
jc err_4ah
add kol_mcb,1
mov ax,mcb_M
mov mcb_prnt,ax
mov ax,mcb_Z
mov mcb_M,ax
mov ax,zseg
mov mcb_Z,ax
mov ah,09h
lea dx,text_1
int 21h
mov ah,4bh
mov al,0
lea dx,path
push ds
pop es
lea bx,epb_doch
mov sp_prnt,sp
mov ss_prnt,ss
int 21h
jc err_4bh
mov ah,09h
lea dx,text_2
int 21h
cli
mov sp,sp_prnt
mov ss,ss_prnt
sti
mov ah,09h
lea dx,text_3
int 21h
jmp quit
err_4ah:
err_4bh:
mov ah,09h
lea dx,err_msg
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.