
29.11.2008, 22:12
|
|
Участник форума
Регистрация: 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
|
|
|