0
我有這樣的C函數:MIPS返回的值不正確
int bin_img(unsigned char *ptr, int w, int h, unsigned char limiar);
在我的代碼,我用我的功能是這樣的:
printf("The value is %d\n",bin_img(dp, width, height, LIMIAR));
試想一下各變量的定義是這樣的:
#define LIMIAR 128
unsigned char *dp;
int w = 5;
int h = 0;
dp[] = {74,250,153,28,26}
我不得不程序MIPS我bin_img功能。
想象我有這樣的代碼:
bin_img:
lb $15,0($4)
move $2,$15
jr $31
這將打印74巫婆是我的數組的元素冷杉。 如果我做
bin_img:
lb $15,1($4)
move $2,$15
jr $31
或本:
bin_img:
lb $15,2($4)
move $2,$15
jr $31
它會打印一些負數,如果我這樣做:
bin_img:
lb $15,3($4)
move $2,$15
jr $31
或本
bin_img:
lb $15,4($4)
move $2,$15
jr $31
它將打印28和26 r espectively。爲什麼它會打印負數?
Should'n其打印250和153?
謝謝。已解決驗證讀取的數字是否大於0.如果不是,則添加255.您的解決方案是正確的,並且soooooo更容易。非常感謝 – Favolas 2012-04-10 21:06:43