народ понимаю, что это безнадежно, но может найдется такой человек который решиться помочь! Задача: Ввести одномерный массив, найти в нем максимальный элемент и прибавить его ко всем элементам массива. Получившийся массив вывести на экран.
Я уже недели 2 бьюсь с этим но никак не получается. Находит максиммальный элемент не правильно и прибовлят тоже как то косо! Вот собсно что я тут накодил:
| Код | Title xam2(exe) Codeg segment para 'Code' Assume cs:codeg,ds,codeg,ss,codeg,es:nothing Org 100h main jmp begin
;******Pazdel objvlenij dannix********** a label byte MaxlnA db 4 ReallnA db ? StA db 1 dup(' '),'$'
;b label byte ;MaxlnB db 4 ;ReallnB db ? ;StB db 1 dup(' '),'$'
;x label byte ;MaxlnX db 4 ;ReallnX db ? ;StX db 1 dup(' '),'$'
Primer db 'BBEDUTE ODHOMEPHbIU MACCUB [1..10]:', '$' Stroka2 db 'MAKCUMAJIbHbIU EJIEMEHT:', '$'
BinA dw 0 BinB dw 0 BinA2 dw 0 BinB2 dw 0 BinX dw 0
massiv dw 10 dup(?) ;massiv2 dw 10 dup(?)
BinV dw 0
Pa dw 1 dup(' '),'$' Pb dw 1 dup(' '),'$' Px dw 1 dup(' '),'$' ccx dw 0 koordx dw 1 Otvet dw 0 mul10 dw 1 k db 1 dup(' ') m10 dw 1 kt dw 0 max dw 0 ;***************************************
;---------------------------------------Main Program Procedure Begin proc ;-------------rejim--------- Mov ah,00 Mov al,03 Int 10h ;--------------Vivod Primera- Mov dh,01 Mov dl,02 Call Cursor
Lea dx,primer Call Write
;--------------Vvod massiva --- ;==================podgotovka cikla========= mov cx,10 mov bp,0 mov koordx,1 ;==================Telo cikla========= L: add koordx,3
mov dh,03 mov dl,koordx Call Cursor
Lea dx,a Call Read mov ccx,cx ;--------------------------------------------------------------- ; Perevod v Bin lea si,StA-1 mov bl,RealLnA call bin mov BinA,di
mov cx,ccx mov ax,BinA mov massiv[bp],ax add bp,2 loop L ;--------------------------------------------------------------- ;Mov dh,04 ;Mov dl,02 ;Call Cursor ; ;Lea dx,stroka2 ;Call Write
;-------------------------------------------------------------
;mov ax,Otvet ;mov binv,ax ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; lea si,Pa-1 ; mov ax,BinV ; call ascii ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ;------------------------------- ;Deustvij s massivom ;============================================================= mov cx,10 mov bp,0
L3: sub dx,massiv[bp] jc L4 jnc L5 L4: mov dx,massiv[bp] mov BinV,dx mov max,dx L5:
add bp,2 Loop L3
;mov bp,2 ;mov ax,dx ;mov BinV,ax ;---------------------------------------------------------- Mov dh,05 Mov dl,02 Call Cursor
Lea dx,stroka2 Call Write ;------------------------------------------ lea si,Pa-1 mov ax,max call ascii ;------------------------------------------ Mov dh,05 Mov dl,27 Call Cursor
Lea dx,pa Call Write ;============================================================
;===============Vivod massiva===============
;===============Podgotovka cikla=========== mov cx,10 mov bp,0 mov koordx,1 ;========================================== L2:
add koordx,3 mov ax,massiv[bp] add ax,max
mov binv,ax mov ccx,cx ;------------------------------------------ lea si,Pa-1 mov ax,BinV call ascii ;------------------------------------------ mov cx,ccx
Mov dh,07 Mov dl,koordx Call Cursor
Lea dx,pa Call Write
;add koordx,3
add bp,2 mov ax,0 loop L2
;============================================ ;+++++++++++++++++++++++++++++++++++++++++ ; Mov dh,07 ; Mov dl,02 ; Call Cursor ; ; Lea dx,stroka2 ; Call Write ; ;---------------------------------------------------------------- ; Lea dx,pa ; Call Write ;-----------Zaderjka-------- Mov ah,00 Int 16h ;++++++++++++++++++++++++++ Int 20h Ret Begin endp ;--------------------------------------------------------------- ; Procedure and Function
Cursor Proc
mov ah,02h Mov bh,00 int 10h
Ret Cursor endp
Write Proc
mov ah,09 int 21h
Ret Write endp
Read Proc
Mov ah,0ah Int 21h
Ret Read endp
Simvol Proc
Mov ah,0ah Mov bh,0 mov bl,00 Mov cx,1 Int 10h
Ret Simvol endp
bin proc mov m10,1 mov di,0 mov cx,10 b20: mov al,[si+bx] and ax,00fh mul m10 add di,ax mov ax,m10 mul cx mov m10,ax dec bx jnz b20 ret bin endp
ascii proc mov cx,10 mov bx,3 c20: cmp ax,10 jb c30 mov dx,0 div cx or dl,30h mov [si+bx],dl dec bx jmp c20 c30: or al,30h mov [si+bx],al ret ascii endp
Codeg ends end begin
| |