|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 15, 2004 23:10:32 Нужно написать программу для процессора 8086, выполняющую поиск минимального и максимального числа в массиве. Массив содержит 16-разрядные числа со знаком. Адрес массива - в DS:SI, число элементов - в CX. Результат работы программы: в AX - минимальное значение, в DX - максимальное. Я тут набросал кое-что, но она почему-то не работает: ;вход ; ;в cx-число элем массива ; ds:si-адрес массива ; ;выход ; ax-min ; dx-max ;__________________________________ .model tiny .code org 100h start: ;открываем файл open_file: mov dx,offset file_name mov ax,3d00h int 21h jc error_file ; переход, если ошибка чтения файла mov ds:[si],ax ; записываем адрес массива mov bx,ax mov dx,offset buffer mov cx,1024 mov ah,3fh int 21h ; читаем 1024 из файла jc close_file ; если ошибка, закрыть файл mov cx,ax ; число прочитанных байтов в cx cmp cx,0 je close_file ; если cx=0 - закрываем файл close_file: mov ah,3eh int 21h jmp metka error_file: mov dx, offset mess_error mov ah,9 ; вывод строки на экран int 21h mov ah,0 ;ожидание нажатия любой клавиши int 16h metka: ; конец процедуры open_file call minmax mov ah,9 pop dx int 21h ; вывод dx на экран pop ax mov dx,ax mov ah,9 int 21h ; вывод ax на экран ret ; процедура поиска минимального и макс. значения minmax proc mov ax,ds:[si] mov dx,ds:[si] dec cx next: add si,2 mov bx,ds:[si] cmp ax,bx jge lab1 mov ax,bx lab1: cmp dx,bx jle lab2 mov dx,bx lab2: loop next push ax push dx minmax endp file_name db 'proga.txt',0,'!$' mess_error db 'Error' buffer equ $ end start |
|
|
Дата: Ноя 15, 2004 23:11:09 Помогите пожалуйста исправить ошибки... |
|
|
Дата: Ноя 16, 2004 00:20:16 Вот тебе строки с 95 по 99 mess_error db 'Error$' buffer equ $ int 20h end start По крайней мере не будет зависать... |
|
|
Дата: Ноя 16, 2004 04:04:43 Lokofan но она почему-то не работает Потому что набросал кое-что. Попробуй заварить чай, насыпав в заварник опавших листьев. |
|
|
Дата: Ноя 16, 2004 09:00:00 Пробовал, всё равно не помогает... |
|
|
Дата: Ноя 16, 2004 09:45:20 ipse По крайней мере не будет зависать... Прежде чем постить посмотри внимательно на код. Программа пытается завершить свое выполнение при помощи ret - сразу после int 21h ; вывод ax на экран. Lokofan Ты хочешь получить готовое решение? |
|
|
Дата: Ноя 16, 2004 15:44:45 Я не хочу получить готовое решение, я хочу, чтобы исправили мои ошибки, которых, наверное, у меня очень много... Но сам я их не вижу, т.к. плохо разбираюсь в Ассемблере... |
|
|
Дата: Ноя 17, 2004 03:47:52 Lokofan т.к. плохо разбираюсь в Ассемблере Imho тут дело не в ассемблере. Например, как поведет себя твой код, если исходный файл не будет открыт? Попробуй для начала нарисовать блок-схему или написать пошаговый алгоритм того, что необходимо сделать. PS не пытайся никого обмануть. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.058 |