Язык ассемблера, вложенные циклы - PullRequest
0 голосов
/ 06 июля 2018

Поскольку я новичок в этом языке, это может звучать по-настоящему нудистски, но это случилось на моем экзамене на днях, и я действительно отчаянно хочу узнать ответ.

По словам моего внутреннего программиста, я думаю, что результат будет:

EAX = 280

Вся помощь будет оценена. Какое окончательное значение регистра EAX для следующей программы?

mov eax, 0 
mov ecx, 10 
loop1: 
mov ecx, 5 
mov eax, 3 
loop2: 
add eax, 5 
jmp loop2 
jmp loop1

1 Ответ

0 голосов
/ 06 июля 2018

Я не уверен, как вы можете обнаружить, что программа остановится на EAX = 280.

Из вашего кода будут выполнены следующие инструкции:

1:     mov eax, 0 
2:     mov ecx, 10 

loop1: 
3:     mov ecx, 5 
4:     mov eax, 3 
loop2: 
5:     add eax, 5 
6:     jmp loop2 
7:     add eax, 5
8:     jmp loop2
9:     add eax, 5
...

Поскольку у вас нет условий, программа никогда не остановится и будет постоянно увеличивать eax на 5 и переходить к loop2 Ветвь к loop1 никогда не будет выполнена.

...