2015-10-06 164 views
0

我不知道如何檢查內存地址並查看數組內是否存在單詞。檢查內存中的值是否已經存在

如果我有下面的代碼,其中$ T0包含數組

.data 
array: .space 800 #For 200 integers 

la $t0, table 
sw $t1, 0($t0) #Add the value at t1 to the table 

的基地址現在我將如何檢查,如果我加入這個詞已經在表中?

+0

通過所有的項目維護元素的計數數組中,然後簡單地循環和檢查,如果你發現了它。哪一部分導致你的問題? – Jester

+0

主要是循環本身,當我想到它時,我將不得不遍歷數組本身,如果它存在分支。但是,我將如何遍歷數組? –

+0

哦,等等,我不得不將索引增加4。我想我明白要做什麼,我會去嘗試它。 –

回答

0

也許你可以用一些像這樣的東西去:

.data 
array: .space 800  #200 int á 4 bits 
value: .word 0   #value 

table: #some crazy value.... 

.text 

.globl Main 
MAIN: 
    li $t0, 0   #Loop-Start_Point 
    li $t1, 200  #LOOP-Break-Point 
    la $t2, table  #load table 
    addi $t4, $t2, 0 #store table address 
    lw $t5, value  #load value 
    li $t6, 4   #load multiplier 


LOOP: 
    mul $t3, $t0, $t6 #calculate offset 
    addi $t2, $t2, $t3  #add offset 
    beg $t2, $t5, END  #check if value is in table 
    addi $t0, $t0, 1  #add 1 to loop count 
    blt $t0, $t1, LOOP #if loop not finish -> LOOP: 

STORE: 
    sw $t5, ($t4)  #add value 

END: