Содержание
Задание… 2
1. Блок-схема к заданию 1… 3
2. ASM 1 4
3. Блок-схема к заданию 2… 7
4. ASM 2 8
5. Блок-схема к заданию 3… 11
6. ASM 3 12
7. Блок-схема к заданию 4… 16
8. ASM 4 17
9. Блок-схема к заданию 5… 19
10. ASM 5 20
11. Блок-схема к заданию 6… 23
12. ASM 6 24
13. KOMP.CPP 26
14. Руководство пользователя… 36
Списоклитературы… 39
Задание
Информатика — курсовое задание, вариант 1
Три байтовые переменные A, B, и C содержат целыезначения. Упорядочить эти значения по возрастанию так, чтобы A содержала минимальноезначение, а С — максимальное.
Задан байтовый массив из N элементов в неупакованном BCDформате. Написать процедуру преобразования исходного массива
Задан байтовый массив из N элементов. Написать процедуру,отыскивающую: номер максимального и минимального элементов, а также разностьмежду максимальным и минимальным элементами.
Написать процедуру нормализации значения, содержащегося вAX. Нормализация заключается в сдвиге содержимого AX влево до тех пор, покастарший из битов, имеющих значение 1, не попадет в 15-й разряд. Если же сразу(AX)=0 или 15-й разряд содержит 1, то процедура не должна выполняться. При выходеиз процедуры регистр BX должен содержать число, равное количеству выполненныхсдвигов.
Считая содержимое регистров DX:AX 32-битной величиной,написать программу, загружающую в регистр DL номер самого младшего бита,содержащего 1.
Индивидуальное задание: определить размер файла из DTA.
1. Блок-схема к заданию 1
/>
2. ASM 1
mes macro msg
mov ah,9
lea dx,msg
int 21h
endm
abc macro char
add char,'0'
mov dl,char
mov ah,2
int 21h
sub char,'0'
endm
d_seg segment
a db 5
b db 9
c db 3
str db 'Ishodnie dannie:',10,13,'$'
str2 db 'Resultat sortirovki po vozrastaniyu',10,13,'$'
str3 db 'Press any key.........$'
enter db 10,13,'$'
space db ' ','$'
strA db 'A=','$'
strB db 'B=','$'
strC db 'C=','$'
d_seg ends
c_seg segment
assume ds:d_seg,cs:c_seg
start:mov ax,d_seg
mov ds,ax
mes enter
mes str
mes enter
mes strA
abc a
mes space
mes strB
abc b
mes space
mes strC
abc c
mes enter
mov al,a
mov bl,b
mov cl,c
cmp al,bl
jl continue
xchg al,bl
continue:
cmp al,cl
jl continue2
xchg al,cl
continue2:
cmp bl,cl
jl continue3
xchg bl,cl
continue3:
mov a,al
mov b,bl
mov c,cl
mes enter
mes str2
mes enter
mes strA
abc a
mes space
mes strB
abc b
mes space
mes strC
abc c
mes enter
mes enter
mes str3
mov ah,1
int 21h
mov ah,4ch
int 21h
c_seg ends
end start
/>
3. Блок-схема к заданию 2
/>
4. ASM 2
mes macro msg
mov ah,9
lea dx,msg
int 21h
endm
dseg segment
k dw 10
mdb10
masdb1,3,6,8,9,1,4,7,2,3,7,9,4,5,8,9
str db 'Ishodnii massiv elementov v neupakovannom BCDformate:',10,13,'$'
str1 db 10,13,'Poluchenii massiv elementov v ypakovannomBCD formate:',10,13,'$'
str2 db 10,13,'Press any key.........',10,13,'$'
enter db 10,13,'$'
space db ' $'
dseg ends
cseg segment
assume cs:cseg, ds:dseg
vivod proc
xor cx,cx
k_del:
mov dx,0
div k
add dx,'0'
push dx
inc cx
cmp ax,0
jne k_del
k3:
pop dx
mov ah,2
int 21h
loop k3
ret
vivod endp
abcproc
xorsi,si
xordi,di
movbx,16
movcx,16
decbx
m2:
moval,mas[si]
mulm
incsi
addal,mas[si]
movmas[di],al
cmpsi,bx
jem1
incdi
incsi
loop m2
m1:
ret
abcendp
start:
movax,dseg
movds,ax
mes enter
mes str
mes enter
mov bx, 0
met2: mov al, mas[bx]
mov ah,0
call vivod
mes space
inc bx
cmp bx,15
jle met2
call abc
mes enter
mes str1
mes enter
mov bx, 0
met1: mov al, mas[bx]
mov ah,0
call vivod
mes space
inc bx
cmp bx,7
jle met1
mes enter
mes str2
mov ah,1
int 21h
movah, 4ch
int21h
cseg ends
end start
/>
5. Блок-схема к заданию 3
/>
/>
6. ASM 3
char1 macro b
add b,'0'
mov dl,b
mov ah,2
int 21h
sub b, '0'
endm
char macro a
xor dx, dx
mov ax, a
mov bx, 10
div bx
add dl,'0'
mov ah, 2
int 21h
endm
mes macro str
mov ah,9
lea dx,str
int 21h
endm
d_seg segment
mindb0
maxdb0
n_mindw1
n_maxdw1
razdb0
adb2,6,4,1,7,9,3
n=$-a
enter db 10,13,'$'
str db 10,13,'Ishodnii massiv: $'
str1 db 10,13,'Resultat: $'
str2 db 10,13,'Number min chisla: $'
str3 db 10,13,'Number max chisla: $'
str4 db 10,13,'Raznost mezhdu max i min chislami: $'
str5 db 10,13,'Press any key........$'
space db ' $'
d_seg ends
c_seg segment
assume cs:c_seg, ds:d_seg
start:
movax,d_seg
movds,ax
xorsi,si
moval,a[si]
movmin,al
movmax,al
incsi
m3:
moval,a[si]
cmpal,max
jlem1
movmax,al
movbx,si
incbx
movn_max,bx
m1:
cmpal,min
jgem2
movmin,al
movbx,si
incbx
movn_min,bx
m2:
incsi
cmpsi,n
jlm3
moval,max
subal,min
movraz,al
mes str
mes enter
xor si,si
povtor:
char1 a[si]
mes space
inc si
cmp si,n
jne povtor
mes enter
mes str1
mes enter
mes str2
char n_min
mes enter
mes str3
char n_max
mes enter
mes str4
char1 raz
mes enter
mes enter
mes str5
mov ah, 1
int 21h
movah,4ch
int21h
c_seg ends
end start
/>
7. Блок-схема к заданию 4
/>