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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 15:18   #1
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию найти min max в массиве

посмотрите пожалуйста почему min и max не выводит в hex виде???
Код:
org 100h
.data  
file label byte;ATTRIBUTES
maxlen DB 255      ;MAX DLINA
actlen DB ?       ;REAL DLINA
fileFLD DB 255 DUP(?),'$'  ;GDE BUDET NAHODITSA  

filename db 255 dup(?),'$'
mas db 255,255 dup(?) 
min db ?
max db ?
mes db 10,13,'Input filename plz:$'    
mes1 db 10,13,'Input massiv:$'       
mes2 db 10,13, 'close:$'

mes3 db 10,13,'max:$'
mes4 db 10,13,'min:$'   

mes5 db 10,13,' $'
 
handler DW ?   

ERROR1 DB 13,10,'OTKAZ V DOSTUPE',13,10,'$' 
ERROR2 DB  13,10,'OSHIBOCHNII LOGICHESKII NOMER',13,10,'$'
ERROR3 DB  13,10,'FILE NOT FOUND',13,10,'$'                            
ERROR4 DB  13,10,'WAY NOT FOUND',13,10,'$'
ERROR5 DB  13,10,'NET SVOBODNOGO LOGICHESKOGO NOMERA FAILA',13,10,'$' 
ERROR6 DB  13,10,'OTKAZ V DOSTUPE',13,10,'$'
ERROR7 DB  13,10,'NEDOPUSTIMII KOD DOSTUPA',13,10,'$'
ERROR8 DB  13,10,'WAY NOT FOUND',13,10,'$'
ERROR9 DB  13,10,'NET SVOBODNOGO LOGICHESKOGO NOMERA',13,10,'$'
ERROR10 DB  13,10,'OTKAZ V DOSTUPE/V KATALOGE NET MESTA',13,10,'$'
ERROR11 DB  13,10,'NA DISKE NE HVATILO MESTA',13,10,'$'
ERROR24 DB  13,10,'ERROR TO CLOSE FILE',13,10,'$'



.code

MOV CL,ES:80H 
CMP CL,0
JE INP_1


XOR DX,DX
XOR CH,CH
MOV DX,CX

CLD

MOV DI,81H
MOV AL,' '
REPE SCASB
DEC DI
INC CL
PUSH CX


MOV SI,DI 
MOV DI,OFFSET filename
REP MOVSB 
POP CX
PUSH CX
XOR CH,CH   

pop dx
sub cx,dx
mov si,offset filename
mov di,offset file
rep movsb 
jmp open_file


INP_1:
;out mes 
MOV AH,09h
lea DX,mes
int 21h 

;Input filename
MOV AH,0Ah 
mov DX,offset file 
int 21h      
xor bx,bx
mov bl,actlen
mov fileFLD[bx],'0'  

;create file
mov ah,3ch
mov dx,offset fileFLD
mov cx,0
int 21h  
MOV handler,AX;SAVE DESCRIPTOR

open_file:
;Open file
mov ah,3dh
mov al,01
mov dx,offset fileFLD
int 21h  
JC ERROR_OPEN
MOV handler,AX;SAVE DESCRIPTOR



 ; out mes1
mov ah,9
mov dx,offset mes1
int 21h    
   
;input mas                                                                  

mov ah,0ah
mov dx,offset mas
int 21h 

;save mas in file
mov ah,40h
mov bx,handler
mov dx, offset mas
mov cx,255  
int 21h

;close file
mov ah,3eh
mov bx,handler
int 21h

mov bh,mas[2]
mov bl,mas[2]
mov cl,mas[1]
mov si,2   

cycle:
    cmp mas[si],bl
    jge _min 
    mov bl,mas[si]
    
    _min:
    cmp mas[si],bh
    jle _max
    mov bh,mas[si]
      
    _max:        
    
    inc si
    loop cycle  
  
mov min,bl
mov max,bh

mov ah,9
mov dx,offset mes3
int 21h    

;print hex max
xor dx, dx
mov ah, 02h
mov dl,bh
and dl,0fh
add dl,030h
cmp dl,03ah 
jl print
add dl, 07h
print:
int 21h

mov ah,9
mov dx,offset mes4
int 21h   
 
;print hex min
xor dx, dx
mov ah, 02h
mov dl,bl
and dl,0fh
add dl,030h
cmp dl,03ah
jl print1
add dl, 07h
print1:
int 21h

mov dx,offset mes5
jmp END





ERROR_OPEN:
CMP AX,2
JE ERROR14
CMP AL,3
JE ERROR15
CMP AX,4
JE ERROR16
CMP AX,5
JE ERROR17
CMP AX,12
JE ERROR18
JMP END 


ERROR14:         
LEA DX,ERROR3
JMP END
ERROR15:         
LEA DX,ERROR4 
JMP END
ERROR16:         
LEA DX,ERROR5 
JMP END
ERROR17:         
LEA DX,ERROR6 
JMP END
ERROR18:         
LEA DX,ERROR7 
JMP END 

END:
mov AH,09h
INT 21H    

ret

Последний раз редактировалось lubafffka; 08.06.2011 в 00:13. Причина: то сама исправила
lubafffka вне форума Ответить с цитированием
Старый 08.06.2011, 00:16   #2
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию

вроде работает верно, а выводит все равно в десятичном виде, почему так?
lubafffka вне форума Ответить с цитированием
Старый 08.06.2011, 07:08   #3
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

Ты бы рассказал алгаритм программы, а то не понятно, что зачем делается
wanes101 вне форума Ответить с цитированием
Старый 08.06.2011, 11:05   #4
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию

она создает файл, записывает туда массив, ищет в массиве min и max и должна распечатывать их 16чном виде, но почему то печатает в 10чном
lubafffka вне форума Ответить с цитированием
Старый 08.06.2011, 15:48   #5
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию

сама все сделала...
lubafffka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция нахождения max/min эл-та в массиве Zhenya-Pvl Паскаль, Turbo Pascal, PascalABC.NET 3 20.12.2010 14:31
Delрhi. прозведение между min и max елементами в массиве Толя111 Помощь студентам 7 01.04.2010 18:01
поиск min max в массиве размерности n-1 на ассемблере Sparky Помощь студентам 3 18.09.2009 08:40
Как поменять местами в массиве max и min элемент. Stager Общие вопросы C/C++ 2 13.01.2009 02:03
Как найти max и min элементы матрицы????? ЕвгениуS Помощь студентам 19 02.03.2008 19:47