Вобщем программа совсем элементарная. Должна по идее в массиве, заданнов в сегдменте данных находить минимальный элемент:
text segment
assume CS:text, DS:data
begin: mov AX, data
mov DS, AX
mov cx, 9
mov si, 1
mov BL, mas[0]
sikl:
CMP BL, MAS[si] ; BL > MAS[SI] -> SF=0
JNS B ; IF SF=0 ( BL>MAS[SI] )
MOV BL, MAS[si] ; BL:=MAS[SI] ( IF MAS[SI]<BL )
B:
INC SI
Loop sikL
mov AX, 4C00h
int 21h
text ends
data segment
MAS DB 1,2,3,5,5,1,7,8,9,10
data ends
end begin
У меня во время выполнения программы (когда я ее пощагово в дебагере запускаю) появляется какая-то непонятная команда
ADD [BX+SI], AL
которая мне записывает в DX:0000 (те в область данных, где у меня этот массив лежит - затирает его ) какую-то хрень, потом еще пару раз появляется и затирает дркгие элементы массива.
PZL, ОБЪЯСНИТЕ ЧТО ЗА ФИГНЯ. СПАСИБО.
|