Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 17:44   #1
MichaelRED
 
Регистрация: 08.05.2010
Сообщений: 4
Вопрос почему не правильно заполняет поля структуры ... ???

Сделал прогу ..
Мне нужно создать дерево ! Короч описал я структуру и создал массив елементов типа структуры ! Запалняю елементы оч просто ... ввожу два массива и переисываю значение елементов в поля структуры .. но что то не правильно !!
Ето должен быть курсач !!! =) ГОРЮ
MichaelRED вне форума Ответить с цитированием
Старый 09.06.2010, 17:49   #2
MichaelRED
 
Регистрация: 08.05.2010
Сообщений: 4
По умолчанию

.model small
.stack 100h

; ОПИС СТРУКТУРИ "ДЕРЕВО"
node_tree struc
imovir db 0
riven db 0
symbol db 0
l_son dw 0
r_son dw 0
ends

.data
mas db 50 dup (?)
mas2 db 50 dup (?)
maks db 50 dup (?)
symb db 50 dup (?)
mas3 db 2 dup (?)
index db 20 dup(?)
rivn db 1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5 ,5,5,5,5,5,5,5,5,5,5,5,5,5
msgg1 db ' Vvetit kilkist vuzliv => $',10,13,'$'
msgg3 db 'Vvedit elementu dereva => $ '
msgg4 db 'Vvedit imovirnosti => $ '
kil db ?
kil2 dw ?
ten db 10
max1 db ?
max db 3
inp db ?
buf db 2 dup (0)
x db ?
y db ?
i1 db ?
ind db ?
ind1 dw ?
suma db ?
elem node_tree 50 dup (?)
.code
; ПРОЦЕДУРИ
Vvid proc
lea dx,max
mov ah,0Ah
int 21h
mov cl,inp
xor ch,ch
xor ax,ax
xor si,si
m11:
mul ten
mov bl,buf[si]
sub bl,30h
inc si
add ax,bx
cmp si,cx
jne m11
ret
Vvid endp

; ВІДЕОРЕЖИМ
VideoMode proc
mov ah, 0
mov al, 3 ;Відеорежим номер 3 (16 кольорів)
int 10h
ret
endp VideoMode

sum proc
mov ah,mas2[si]
add suma, ah
ret
endp sum

start:
mov ax,@data
mov ds,ax
call VideoMode
mov ah,09h
lea dx, msgg1
int 21h
call vvid
mov kil,al
mov ax, word ptr kil
mov kil2, ax
xor ax, ax

; ВВІД КЛЮЧІВ
mov ah, 02h
mov dh, 2
mov dl, 1
int 10h
mov ah, 09h
lea dx, msgg3
int 21h
mov cx,kil2
xor si, si
mov x, 1
mov y, 3
go:
mov ah, 02h
mov dl, x
mov dh, y
int 10h
push cx
push si
call vvid
pop si
pop cx
mov mas[si], al
inc si
add x, 3
loop go

;ЙМОВІРНОСТІ
mov ah, 02h
mov dh, 4
mov dl, 1
int 10h
mov ah, 09h
lea dx, msgg4
int 21h
mov cx,kil2
xor si, si
mov x, 1
mov y, 5
go1:
mov ah, 02h
mov dl, x
mov dh, y
int 10h
push cx
push si
call vvid
pop si
pop cx
mov mas2[si], al
inc si
add x, 3
loop go1

; СУМА
mov cx, kil2
xor si, si
mov suma, 0
go2:
call sum
inc si
loop go2

mov i1, 0
;Максимальний
mov cx, kil2
go4:
mov ah, mas2[0]
mov max1, ah
xor ax, ax
xor si, si
go3:
cmp si, kil2
jae exit
inc si
mov al, mas2[si]
cmp max1, al
ja go3
jb re
re:
mov al, mas2[si]
mov max1, al
mov ind1, si
jmp go3

exit:
mov ah, max1
cmp ah,mas2[0]
jne reg
mov ind1, 0
reg:
inc i1
mov si, word ptr i1
dec si
mov ah,byte ptr kil2
cmp i1, ah
ja exit1
mov ah, byte ptr ind1
mov index[si], ah
mov ah, max1
mov maks[si], ah
push si
mov si, ind1
mov mas2[si], 0
pop si
jmp go4
exit1:
mov ah,02
mov dh, 7
mov dl,1
int 10h

mov ind, 0
; МАСИВ СИМВОЛІВ
mov cx, kil2
xor si, si
go7:
mov ah, index[si]
mov ind, ah
push si
mov si, word ptr ind
mov ah, mas[si]
pop si
mov symb[si], ah
inc si
loop go7

; Заповнення дерева
mov cx, kil2
xor si, si
cyk:
mov ah, symb[si]
mov elem[si].symbol, ah
mov ah, maks[si]
mov elem[si].imovir, ah
inc si
loop cyk

; Заповнення рівнів дерева
mov cx, kil2
xor si, si
cy1:
mov ah, rivn[si]
mov elem[si].riven, ah
inc si
loop cy1

; вивід
mov ah, 02
mov dh, 8
mov dl, 1
int 10h
mov cx, kil2
xor si, si
show:
mov ah, 02h
mov dl, elem[si].imovir
add dl, 30h
int 21h
inc si
loop show

mov ah,4ch
int 21h
end start
MichaelRED вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Измененние цвета фона поля (поля со списком) при редактировании TimRus Microsoft Office Access 2 17.05.2010 21:56
Есть код но почему то не правильно работает -ushёl- Помощь студентам 1 10.05.2010 22:27
как получить значение поля грид на основе значения другого lookUp поля malayka БД в Delphi 0 21.04.2010 19:06
Выявление одинаковости значений поля в одной талице по значению поля в другой nikmay SQL, базы данных 4 13.08.2009 12:51
Список структуры (типа база) почему неработает ??? Stark[SG!] Общие вопросы C/C++ 1 15.05.2008 15:25