Member 14784282 Ответов: 2

Реализуйте вложенный цикл:внешний цикл 3, средний цикл 2, внутренний цикл 1


Включить Irvine32.inc
.данные
граф дворд ?
строковый байт 0ah , "это внутренний цикл",0ah,0
строка 1 байт 0ah , "это средний цикл",0ah,0
string2 байт 0ah , "это внешний цикл",0ah,0

.код
основной процесс
mov ebx,0
mov ecx,3 ;значение внешнего контура
L1:
mov edx,offsetstring2
вызов writestring
mov eax , ecx
вызов writedec
количество mov, ecx
mov ecx, 2 ;среднее значение цикла
добавить ebx , 1

L2:
mov edx, offsetstring1
вызов writestring
mov eax, ecx
вызов writedec
количество mov, ecx
mov ecx, 1 ;значение внутреннего цикла
добавить ebx , 2

L3:
mov edx, offsetstring
вызов writestring
mov eax , ecx
вызов writedec
;вызов самосвалов

петля L3
mov ecx , граф
петля L1
вызовите самосвалы
главная конечное
конец основной


пожалуйста, запустите эту программу

Что я уже пробовал:

Include Irvine32.inc
.data
count dword ?
string byte 0ah , "it is internal loop",0ah,0
string1 byte 0ah , "it is middle loop",0ah,0
string2 byte 0ah , "it is external loop",0ah,0

.code
main PROC
mov ebx,0
mov ecx,3 ;external loop value
L1:
mov edx,offsetstring2
call writestring
mov eax , ecx
call writedec
mov count, ecx
mov ecx, 2 ;middle loop value
add ebx , 1

L2:
mov edx, offsetstring1
call writestring
mov eax, ecx
call writedec
mov count, ecx
mov ecx, 1 ;internal loop value
add ebx , 2

L3:
mov edx, offsetstring
call writestring
mov eax , ecx
call writedec
;call dumpregs

loop L3
mov ecx , count 
loop L1
call dumpregs
main endp
end main

phil.o

Это не c++. В чем заключается ваш вопрос?

OriginalGriff

И что же?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Что вы пытались сделать, чтобы выяснить, почему?
Есть ли какие-либо сообщения об ошибках, и если да, то где и когда? Что вы сделали, чтобы это произошло?

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

2 Ответов

Рейтинг:
1

CPallini

Это ассемблерный код, а не C++.
И вы можете запустить его самостоятельно: есть учебные пособия, доступные по использованию Irvine32 библиотека.


Рейтинг:
1

Richard MacCutchan

loop L3
mov ecx , count
loop L1
call dumpregs
main endp
end main

Вы пропали без вести loop L2