Показать сообщение отдельно

  #818  
Старый 29.11.2008, 22:12
VERte][
Участник форума
Регистрация: 17.05.2007
Сообщений: 220
Провел на форуме:
3013539

Репутация: 441
По умолчанию

Цитата:
Сообщение от 0verbreaK  
Olegros911

Код:
name "Minimal"
org 100h
masiv db 110b,33,0F0h,1111b,251 
mov cx,5
xor si, si	; итератор равен 0

;в bx должно находится какое нибудь
;начальное минимальное значение
;допустим 33
mov bx, 33

Min1: mov dx, masiv[si] ; первый элемент массива

;сравниваем 
cmp bx,dx
jb Min2
add si,2
loop Min1

Min2: mov dl,dx
add: Но обычно берется некоторое число, которое сравнивается с первым элементом массива и если оно меньше эталонного минимального числа, то затем сравниваем остальные элементы с последним. Думаю ты теперь понял. (Код не проверял набирал так)
эээ ну во-первых таким образом прога дойдет до первого меньшего заданного числа и остановится, если дальше в массиве будет меньшее число, то будет не верный результат, во-вторых что это за конструкция такая mov dl,dx ?????
на мой взгляд это должно выглядеть так:
Код:
name "Minimal"
code segment
assume cs:code, ds:code, ss:code
org 100h

start:
mov cx,6
xor si, si	; итератор равен 0

;в bx должно находится какое нибудь
;начальное минимальное значение
;допустим 10
mov bx, 10

Min1: mov dx, masiv[si] ; первый элемент массива

;сравниваем 
cmp bx,dx
jb l
mov bx,dx
l:
inc si
loop Min1
ret
masiv dw 3,4,5,7,2,1
code ends
end start
результат в bx

Последний раз редактировалось VERte][; 30.11.2008 в 00:34.. Причина: step: word, thx 2 0verbreaK
 
Ответить с цитированием