我是這個社區的新成員。我們在大學編程mips,在作業中我需要解決我的問題。 我們必須打開一個.pgm文件並讀取所謂的標題(在這種情況下,使用p5格式和可變長度x寬)。當你打開你讀過的文件時,你會得到4行第一行。 P5;第2位。長x寬;第三是ascii碼的顏色深度和第四長期。 我的工作是現在轉換這個ascii,我想我必須知道這個ascii的大小。 以前,我對ASCII轉換一個MIPS代碼,但現在的問題是,這個代碼轉換隻是我的ASCII術語的一部分,像這樣(的意見是德語的感到抱歉):Mips彙編程序 - 如何獲取.ascii的長度
.data
str: .ascii "GV_]VTI=97:@JPH<1-/6;L\pz ¶³¶»ÃËËÄ»°y{xzk`[email protected]@?>9326<DD:1.--++*-./-//000002222344///35;@LVau ¥´¬§»Çĸ³³»ª °¿Åù±¯¦||x{{yttw{sv}¡°¸±¡¡£¢£p_Z[_hfYUW^accacdehhhhdghjjlnnonnnljifjgfdggfdiiiillllglrvtkiltzx~«ÀÖ¿°©´¾ÃÇÈ×ßãÖÇ»º¡±¼ËÙENSOIHD>;>CHTPB4/+.6<JWizª¯®°¸ÃËËÄ»¶xvj\NECDB<735:?:40//---,+,--./00000222235400259=DNXdw£®³½Á½³¯¯²¢¥§°»ÃÆõ©«}z{|xtmmqus¡±À¹¦m`ZZ^ce\WZ^abcacdehhhhdghjjlnnonnnlljijhggihhfiiiillmljnuxvnlqw~|¤¶ÐáÕÉÅÇÈÇÉÌÝàÒľ³µª¡¡¤±¼ËÙ[email protected]??DILNRI=1,*-6=ISao §¨·ÃËËÄ»º¯wpg\SIEDC>83359520110//.--,-//0000022224751139=CGOXfx£®¼¶®¨¤£¥°»À»¾¼³©¥vnjjmsz¬ÅÅƳxxttxuja[Y[_c`^]^abcacdfhhhhdghjjlnnnnnnonkjlkihjjhghhhhkkjknsy}vpqw~¸ÏãéáÝ×ÓÌÁÂÈÙ඲ª¬¥¦¢§ ¡¨±¼ÌÙ@[email protected]<82.+)-6>IO[e| £«´ÅËËļÁ¹vndbVKACA<11/.-.//000022225772/4<AFIQYhx¢°½{¡±½½±²¶´®|lmos¸ÍÌ®tpmjgnnjc[XX[`a`_^abcacdfhjhhdghjjlnoonnnpomknmkjljihggggjjjjsv{wrs}¸ÑãíêÝß×ÏǸ´½ÐÛµ²§¡¨¡ª ¢«²¤¡«±ºÌÙ:ADEA>:5;94268501051"
# it converts just to: GV_]VTI=97:@JPH<1
.text
main:
addi $s0, $zero, 0 # $s0 :=0; hier wird das Ergebnis aufsummiert
la $s1,str # $s1 := &str; hier wird der Zeiger auf das nächste Zeichen gehalten
addi $s2, $zero, 10 # $s2 := 10; hier steht konstand die 10 zur Multiplikaton
addi $s3, $zero, 48 # s3 := 48; hier 48, um die ASCII "0" in den Wert 0 umzuwandeln
loop:
lb $s4,($s1) # Lade nächstes Zeichen des
sub $s4, $s4, $s3 #Bilde ASCII-Ziffer auf Integer-Wert [0..9] ab
bltz $s4,terminate # Wenn Zeichen <0,
mult $s0, $s2
mflo $s0 # §s0 := §s0 *10
add $s0, $s0, $s4 # s0= s0 + Ziffernwert
addi $s1, $s1, 1 # s1= s1+1; also auf die nächstes Zeichn im String
j loop
terminate:
li $v0,1 # Resultat ausgeben
or $a0, $zero, $s0 # in ss0 stand das Ergebnis
syscall
li $v0,10
syscall
希望你能給我一個提示。
目前尚不清楚你想轉換什麼。這顯然不是一個數字? – Jester