2015-02-17 4 views
-3

a.Преобразование кода C на язык ассемблера

for (i = 0; i < k ; ++i) { 
    j = j + 2*k 
} 

b.

for (i = 0; i < k ; ++i) 
    for (j = 1; j < i; ++j) 
     B[i-j] = B[2*j-1] + 10 

Пусть переменные I, J, К, хранить в $ s0, s1 $, $ s2, соответственно, и базовый адрес B хранится в $ s3. Используйте только TRUE MIPS.

Я потерял этот вопрос, понятия не имею, как написать цикл for, если кто-то может написать код для меня и объяснять шаги, если это возможно, что действительно поможет мне. Я новичок в ассемблере, и я знаю инструкции bge, bgt и т. Д., Но мне нужно научиться вводить их в работу.

+2

Сначала переписать 'for' петлю в качестве' 'if' + goto'. Это должно дать вам более близкое соответствие тому, как превратить его в сборку. – Jester

+4

StackOverflow не является домашней службой автоответчика. По крайней мере, попробуйте, прежде чем спрашивать. – Caleb

+0

Это не проблема домашней работы, это практика экзамена, мне просто нужно знать общий способ ее написания, потому что на экзамене она более расширена, поэтому, если я знаю форму, я могу работать над проблемами. – KAP

ответ

1

скомпилировать с помощью GCC, используя параметр -S