Имя пользователя:
Пароль:
 

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

Аватара для Oleg_SK

Ветеран


Сообщения: 1328
Благодарности: 144

Профиль | Отправить PM | Цитировать


igor7
Давно я уже не кодил на асме (особенно под DOS), но попытаюсь помочь тебе. Ты не совсем четко определил условия задачи, по этому я сделаю следующие допущения:
1) Программа должна быть написана с помощью MASM;
2) Программа будет работать в среде MS DOS;
3) Все значения в массиве беззнаковые (т.е. отрицательных значений в нем нет);
4) Итоговое минимальное значение будет выводиться в шестнадцатеричном виде.
5) В итоге ты желаешь получить исполняемый COM-файл.

Код: Выделить весь код
model tiny
.code
.386
org 100h

start:
mov ebx, offset Arrey
mov ecx, 0Fh
mov al, byte ptr[ebx]
inc ebx
lo:
mov ah, byte ptr[ebx]
cmp al, ah
jbe cont ; 
mov al, ah
cont:
inc ebx
dec ecx
jnz lo
; теперь нужное тебе мин. значение находится в регистре al.
; Теперь выводим его на экран.
mov dh, al
and dh, 0Fh
shr al, 4
call print
mov al, dh
print:
cmp al, 10
sbb al, 69h
das
mov dl, al
mov ah, 2
int 21h
ret

Arrey db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0 ; это массив

end start
Вот и все.

З.Ы: Я не проверял этот код на работоспособность...

-------
Здесь вместо "Спасибо" принято щелкать на "Полезное сообщение" у тех постов, которые вам помогли, или показались полезными.


Последний раз редактировалось Oleg_SK, 03-06-2010 в 01:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:37, 03-06-2010 | #2