Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 15
1

Цикл с несколькими параметрами

08.11.2010, 09:59. Показов 2834. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
можеткто привести пример простого цикла с несколькими условиями (типо if () and () then в паскале)

Assembler
1
2
3
4
5
6
7
8
BB: cmp [bx],ax
    cmp [bx+2],ax
je NN
.
.
NN: inc bx 
.
loob BB
вот, например такой цикл, надо чтобы и cmp [bx],ax и это cmp [bx+2],ax выполнилось для переходана следущую команду, что надо сделать для этого?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2010, 09:59
Ответы с готовыми решениями:

График с несколькими параметрами
Здравствуйте, уважаемые форумчане! Пожалуйста, подскажите, как создать график в Power Point...

Запрос с несколькими параметрами
Дико извиняюсь,если мой вопрос повторит массу,уже заданных ранее, но без вашей помощи я...

301 с несколькими GET параметрами
Всем привет. Ломаю голову, чувствую что задача выполнима, но не могу осуществить: Есть адреса...

ShellExecute с несколькими параметрами запуска
Помогите!! Уже который день мучаюсь! Возникают проблемы при прогрузке dbf файла в таблицу Oracle....

12
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.11.2010, 10:12 2
ты хочешь цикл while или repeat/until сразу с несколькими условиями? Тогда делай явным условным переходом. Для while вперёд за цикл по условию завершения, а для repeat/until - назад к началу тела цикла по условию продолжения.

Добавлено через 2 минуты
И условие - не параметр.
Параметром цикла называется переменная, меняющаяся в цикле и непосредственно используемая в его теле
,
Счётчиком цикла называется переменная, последовательно пробегающая в цикле ряд значений, если её начальное и конечное значения и изменение от шага к шагу описано в заголовке цикла
.Где здесь хоть слово про условия?
0
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 15
08.11.2010, 10:17  [ТС] 3
а разве это не оно cmp [bx],ax ?

можете написать как должно выглядить сам цикл, надо проверить на дву нуля идущих подряд в массиве
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
08.11.2010, 10:19 4
Цитата Сообщение от dain Посмотреть сообщение
цикла с несколькими условиями (типо if () and () then в паскале)
ты лучше напиши какой цикл ты хочешь получить на паскале и выложи сюда, или лучше сам посмотри в отладчике и если возможно(как правило возможно) оптимизируй
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.11.2010, 10:21 5
Цитата Сообщение от dain Посмотреть сообщение
а разве это не оно cmp [bx],ax ?
То то и оно, что условие - это логика, а параметр - арифметика. То есть смысл твоей темы не соответствует её названию. Это
Цитата Сообщение от dain Посмотреть сообщение
цикл с несколькими параметрами
- одно, а
Цитата Сообщение от dain Посмотреть сообщение
цикла с несколькими условиями
- совсем другое.
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
08.11.2010, 10:23 6
Цитата Сообщение от dain Посмотреть сообщение
на дву нуля идущих подряд в массиве
а зачем в таком случае два условия? какой тип данных? (смысли размер)
0
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 15
08.11.2010, 10:24  [ТС] 7
for i:=1 to 10 do
begin
if (a[i]=0) and (a[i+1]=0) then writlen('элементы ',i,' и ',i+1,'равны 0');
end;
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.11.2010, 10:28 8
Цитата Сообщение от dain Посмотреть сообщение
Pascal
1
2
3
4
for i:=1 to 10 do
begin
if (a[i]=0) and (a[i+1]=0) then writlen('элементы ',i,' и ',i+1,'равны 0');
end;
Это обычный цикл со счётчиком. Причём, так как счётчик в теле используется только для адресации, то параметром он не считается, а больше в этом цикле ничего не меняется. Так что параметров здесь нет совсем. А условие в таком цикле одно, двух быть не может.
0
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 15
08.11.2010, 10:31  [ТС] 9
так а как проверить на дву 0 идущих подряд?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
08.11.2010, 10:35 10
если элемент 1 байт, двойного условия можно избежать, например так:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.model small
.data
a db 1,4,5,0,0,6,0,8,0,6,8
size_a equ offset $-a
.code
start:
mov ax, @data
mov ds, ax
 
lea si, a
mov cx, size_a
dec cx
xor bx, bx      ; счетчик
l:
lodsw
or ax, ax
jnz l1
; два нуля подряд
nop
l1:
dec si
inc bx
loop l
 
xor ax, ax
int 16h
.exit
end start
1
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 15
08.11.2010, 10:36  [ТС] 11
а если два?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.11.2010, 10:39 12
Цитата Сообщение от dain Посмотреть сообщение
так а как проверить на дву 0 идущих подряд?
Ты паскаль свой читал? Там же ясно видно условие
Pascal
1
if i>10 then goto <за конец тела>
. Или у тебя в глазах двоится? А два условия у тебя в теле, но условия в теле - не условия цикла.
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
08.11.2010, 10:45 13
если элемент 2 байта, то (в случае 16разрядной проги) все таки придется делать две проверки. Тот же пример:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.model small
.data
a dw 1,4,5,0,0,6,0,8,0,6,8
size_a equ (offset $-a)/2
.code
start:
mov ax, @data
mov ds, ax
 
lea si, a
mov cx, size_a
xor bx, bx      ; счетчик
l:
lodsw
or ax, ax
jnz l1
lodsw
or ax, ax
jnz l1
; два нуля
nop
sub si, 2
l1:
inc bx
loop l
 
xor ax, ax
int 16h
.exit
end start
Добавлено через 3 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
. Или у тебя в глазах двоится? А два условия у тебя в теле, но условия в теле - не условия цикла.
да, постановка вопроса была была немного неграмотна, но суть проблемы понятна. Думаю я ответил на ваш вопрос?
1
08.11.2010, 10:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2010, 10:45
Помогаю со студенческими работами здесь

Запустить программу с несколькими параметрами
Совсем глаз замылился, не могу найти простое решение. Нужно запустить программу с несколькими...

Вложенный запрос с несколькими параметрами
Select dnnb.dbo.Users.Username From dnnb.dbo.Users Where (dnnb.dbo.Users.Username,...

Составить запрос с несколькими параметрами
Дано: Есть .net2.0 и mysql и форма с comboBox1, textBox1, dateTimePicker1. Элементы формы...

Конструктор с несколькими параметрами в ref class
Простите, что не пишу в C++/CLI, просто там никого нет онлайн, и ждать ответа пришлось бы на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru