B
boogpicker
Guest
хей,
Аз съм нов в МИЦ и се опитват да преведат Бързо сортиране алгоритъм в МИЦ.Проблемът е, че когато го зареди в PCSpim, той получава прекъсна и просто продължава да работи, докато близо Spim.мога кой да гледам на това, което имам и да видите дали можете да разбера, когато неговата получаване затвори?
О, и аз го didn't коментар още.
. данни
масив:. дума 8,2,7,1,5,6,3,4,9,0
Дължина:. дума 10
. текст
. globl основните
начало:
La $ A0, масив
ход $ a1, $ нула
LW $ A2, дължина
под $ A2, $ A2, 1
JAL Бързо сортиране
Li $ V0, 10
syscall################################################## ##############
Бързо сортиране:
# $ A0 съдържа масив
# $ A1 съдържа 0
# $ A2 съдържа N-1
# $ S0 съдържа ниско
# $ S1 съдържа висока
# $ S2 съдържа pivotPosition
под $ SP, $ SP, 16
SW $ S0, 0 ($ SP)
SW $ s1, 4 ($ SP)
SW $ S2, 8 ($ SP)
SW $ кв., 12 ($ SP)
ход $ S0, $ a1
ход $ s1, $ a2
, ако: bge $ S0, $ s1, end_if
JAL Деление
ход $ S2, $ V0
под $ A2, $ S2, 1
JAL Бързо сортиране
ход $ A2, $ s1
допълнителни $ a1, $ S2, 1
JAL Бързо сортиране
end_if:
LW $ S0, 0 ($ SP)
LW $ s1, 4 ($ SP)
LW $ S2, 8 ($ SP)
LW $ кв., 12 ($ SP)
допълнителни $ SP, $ SP, 16
младши $ кв.
end_QuickSort:
################################################## #############
Разменени:
ход $ t0, $ A0
ход $ T1, $ a1
SW $ T1, 0 ($ t2)
SW $ t0, 0 ($ t2)
SW $ t0, 0 ($ t2)
end_Swap:
################################################## #############
Подраздел:
# $ A0 съдържа масив
# $ S0 съдържа ляво
# $ S1 съдържа право
# $ S2 съдържа ос
# $ A1 съдържа ниско
# $ A2 съдържа висока
# $ T1 изчисления масив [ниски]
# $ T0 съдържа база адрес
# $ T2 съдържа изчисления за масив [право]
# $ T3 съдържа масив [право]
# $ T4 съдържа изчисления за масив [ляво]
# $ T5 съдържа масив [ляво]
под $ SP, $ SP, 16
SW $ S0, 0 ($ SP)
SW $ s1, 4 ($ SP)
SW $ S2, 8 ($ SP)
SW $ кв., 12 ($ SP)
La $ t0, масив
започва:
ход $ S0, $ a1
ход $ s1, $ a2
MUL $ T1, $ a1, 4
добави $ t1, $ t0, $ T1
LW $ S2, 0 ($ t1)
while_condition:
bge $ S0, $ s1, end_while
MUL $ t2, $ s1, 4
добави $ t2, $ t0, $ t2
LW $ t3, 0 ($ t2)
while_condition_2:
Регистриран $ T3, $ s2, end_while_2
под $ s1, $ s1, 1
J while_condition_2
end_while_2:
while_condition_3:
bge $ S0, $ s1, end_while_3
MUL $ T4, $ s0, 4
добави $ t4, $ t0, $ t4
LW $ Т5, 0 ($ T4)
BGT $ Т5, $ s2, end_while_3
допълнителни $ s0, $ s0, 1
J while_condition_3
end_while_3:
if_2:
bge $ S0, $ s1, end_if_2
MUL $ T4, $ s0, 4
добави $ t4, $ t0, $ t4
LW $ A0, 0 ($ T4)
MUL $ t2, $ s1, 4
добави $ t2, $ t0, $ t2
LW $ a1, 0 ($ t2)
JAL Разменени
end_if_2:
end_while:
MUL $ T1, $ a1, 4
добави $ t1, $ t0, $ T1
MUL $ t2, $ s1, 4
добави $ t2, $ t0, $ t2
LW $ t3, 0 ($ t2)
SW $ t3, 0 ($ t1)
SW $ S2, 0 ($ t2)
ход $ V0, $ S2
LW $ S0, 0 ($ SP)
LW $ s1, 4 ($ SP)
LW $ S2, 8 ($ SP)
LW $ кв., 12 ($ SP)
допълнителни $ SP, $ SP, 16
end_Partition:
Аз съм нов в МИЦ и се опитват да преведат Бързо сортиране алгоритъм в МИЦ.Проблемът е, че когато го зареди в PCSpim, той получава прекъсна и просто продължава да работи, докато близо Spim.мога кой да гледам на това, което имам и да видите дали можете да разбера, когато неговата получаване затвори?
О, и аз го didn't коментар още.
. данни
масив:. дума 8,2,7,1,5,6,3,4,9,0
Дължина:. дума 10
. текст
. globl основните
начало:
La $ A0, масив
ход $ a1, $ нула
LW $ A2, дължина
под $ A2, $ A2, 1
JAL Бързо сортиране
Li $ V0, 10
syscall################################################## ##############
Бързо сортиране:
# $ A0 съдържа масив
# $ A1 съдържа 0
# $ A2 съдържа N-1
# $ S0 съдържа ниско
# $ S1 съдържа висока
# $ S2 съдържа pivotPosition
под $ SP, $ SP, 16
SW $ S0, 0 ($ SP)
SW $ s1, 4 ($ SP)
SW $ S2, 8 ($ SP)
SW $ кв., 12 ($ SP)
ход $ S0, $ a1
ход $ s1, $ a2
, ако: bge $ S0, $ s1, end_if
JAL Деление
ход $ S2, $ V0
под $ A2, $ S2, 1
JAL Бързо сортиране
ход $ A2, $ s1
допълнителни $ a1, $ S2, 1
JAL Бързо сортиране
end_if:
LW $ S0, 0 ($ SP)
LW $ s1, 4 ($ SP)
LW $ S2, 8 ($ SP)
LW $ кв., 12 ($ SP)
допълнителни $ SP, $ SP, 16
младши $ кв.
end_QuickSort:
################################################## #############
Разменени:
ход $ t0, $ A0
ход $ T1, $ a1
SW $ T1, 0 ($ t2)
SW $ t0, 0 ($ t2)
SW $ t0, 0 ($ t2)
end_Swap:
################################################## #############
Подраздел:
# $ A0 съдържа масив
# $ S0 съдържа ляво
# $ S1 съдържа право
# $ S2 съдържа ос
# $ A1 съдържа ниско
# $ A2 съдържа висока
# $ T1 изчисления масив [ниски]
# $ T0 съдържа база адрес
# $ T2 съдържа изчисления за масив [право]
# $ T3 съдържа масив [право]
# $ T4 съдържа изчисления за масив [ляво]
# $ T5 съдържа масив [ляво]
под $ SP, $ SP, 16
SW $ S0, 0 ($ SP)
SW $ s1, 4 ($ SP)
SW $ S2, 8 ($ SP)
SW $ кв., 12 ($ SP)
La $ t0, масив
започва:
ход $ S0, $ a1
ход $ s1, $ a2
MUL $ T1, $ a1, 4
добави $ t1, $ t0, $ T1
LW $ S2, 0 ($ t1)
while_condition:
bge $ S0, $ s1, end_while
MUL $ t2, $ s1, 4
добави $ t2, $ t0, $ t2
LW $ t3, 0 ($ t2)
while_condition_2:
Регистриран $ T3, $ s2, end_while_2
под $ s1, $ s1, 1
J while_condition_2
end_while_2:
while_condition_3:
bge $ S0, $ s1, end_while_3
MUL $ T4, $ s0, 4
добави $ t4, $ t0, $ t4
LW $ Т5, 0 ($ T4)
BGT $ Т5, $ s2, end_while_3
допълнителни $ s0, $ s0, 1
J while_condition_3
end_while_3:
if_2:
bge $ S0, $ s1, end_if_2
MUL $ T4, $ s0, 4
добави $ t4, $ t0, $ t4
LW $ A0, 0 ($ T4)
MUL $ t2, $ s1, 4
добави $ t2, $ t0, $ t2
LW $ a1, 0 ($ t2)
JAL Разменени
end_if_2:
end_while:
MUL $ T1, $ a1, 4
добави $ t1, $ t0, $ T1
MUL $ t2, $ s1, 4
добави $ t2, $ t0, $ t2
LW $ t3, 0 ($ t2)
SW $ t3, 0 ($ t1)
SW $ S2, 0 ($ t2)
ход $ V0, $ S2
LW $ S0, 0 ($ SP)
LW $ s1, 4 ($ SP)
LW $ S2, 8 ($ SP)
LW $ кв., 12 ($ SP)
допълнителни $ SP, $ SP, 16
end_Partition: