このコミュニティでは新しいです。私たちは大学でmipsをプログラミングしています。私は宿題で私の問題を解決する必要があります。 .pgmファイルを開いて、いわゆるヘッダー(この場合はp5形式と可変長x幅)を読み取る必要があります。読み込んだファイルを開くと、1行目に4行が表示されます。 p5; 2番目。長さx幅; 3番目はアスキーコードの色の濃さと4番目の長さです。 私の仕事は今このasciiを変換することです、そして、私はこのasciiのサイズを知る必要があると思います。 以前、私は、ASCIIに変換するためのMIPSコードを持っていましたが、ここでの問題は、このコードは、この(コメントはそのためのgerman-に残念である)のように、私のアスキー用語の一部だけを変換することを、次のとおりです。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