Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2013, 17:51   #1
Алина27
Новичок
Джуниор
 
Регистрация: 18.12.2013
Сообщений: 4
Восклицание Помогите найти ошибки в программе

Задание в Ассемблер открываю через dos
найти наибольшее отрицательное число. Массив байт
data segment
max db ?
mass dw 10,24,76,479,-347,281,-24,70,124,97
data ends
code segment
assume cs: code, ds: data
start: mov ax, data
mov ds, ax
lea bx, mass
mov cx, 10
mov ax, [bx]
xor dl,dl
beg:
cmp [bx], 0
jl no
cmp [bx], ax
inc dl
jl no
mov ax, [bx]
no:
inc bx
loop beg
cmp dl, 0
jnz quit
mov max, ax
quit:
mov ax,4C00h
int 21h
code ends
end start
Алина27 вне форума Ответить с цитированием
Старый 19.12.2013, 21:30   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Поменяй db на dw, jl на jnl, jnz на jz. И перенеси inc dl на строку выше. )
Son Of Pain вне форума Ответить с цитированием
Старый 19.12.2013, 21:58   #3
Алина27
Новичок
Джуниор
 
Регистрация: 18.12.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Поменяй db на dw, jl на jnl, jnz на jz. И перенеси inc dl на строку выше. )
это будет выглядеть так:
data segment
max db ?
mass db 10,24,76,479,-347,281,-24,70,124,97
data ends
code segment
assume cs: code, ds: data
start: mov ax, data
mov ds, ax
lea bx, mass
mov cx, 10
mov ax, [bx]
xor dl,dl
beg:
cmp [bx], 0
jnl no
inc dl
cmp [bx], ax
jnl no
mov ax, [bx]
no:
inc bx
loop beg
cmp dl, 0
jz quit
mov max, ax
quit:
mov ax,4C00h
int 21h
code ends
end start
Алина27 вне форума Ответить с цитированием
Старый 19.12.2013, 22:22   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Почти так. Только менять нужно было db на dw, а не наоборот )
И второй jl верни обратно.
Son Of Pain вне форума Ответить с цитированием
Старый 19.12.2013, 22:33   #5
Алина27
Новичок
Джуниор
 
Регистрация: 18.12.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Почти так. Только менять нужно было db на dw, а не наоборот )
И второй jl верни обратно.
Тоесть,вот так:
data segment
max dw ?
mass dw 10,24,76,479,-347,281,-24,70,124,97
data ends
code segment
assume cs: code, ds: data
start: mov ax, data
mov ds, ax
lea bx, mass
mov cx, 10
mov ax, [bx]
xor dl,dl
beg:
cmp [bx], 0
jnl no
inc dl
cmp [bx], ax
jl no
mov ax, [bx]
no:
inc bx
loop beg
cmp dl, 0
jz quit
mov max, ax
quit:
mov ax,4C00h
int 21h
code ends
end start
P.S. очень плохо знаю ассемблер( помоги доделать)
Алина27 вне форума Ответить с цитированием
Старый 19.12.2013, 22:55   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Да, теперь правильно.
Son Of Pain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти ошибки в программе littleMiss Помощь студентам 73 15.01.2012 18:23
Программеры нужно найти ошибки в программе по типу (строки) Димарик1994 Паскаль, Turbo Pascal, PascalABC.NET 4 08.01.2012 18:36
найти ошибки в программе (язык C) nuvoletta Помощь студентам 3 29.11.2011 21:21
найти ошибки в программе IceFlame1292 Помощь студентам 2 09.01.2011 21:55
Помогите пож найти ошибки в программе и дописать ее до конца rm2003 Помощь студентам 1 02.10.2008 21:24