私はbisonでコンパイラを構築していますが、この問題が発生しました。 私は動的にメモリを割り当て、文字列を格納してから内容を印刷する必要があります。Mipsの動的メモリ割り当てとポインタ
私はデータセクションにポインタを保存し、ポインタにアドレスを保存し、文字列valを割り当ててから印刷することを考えました。 私の問題は、最初の文字だけを印刷する文字列を印刷しようとしているときです。 ここはコード例です。
.data
p: .word 0 # pointer to save the allocated memory first address.
.text
li $v0,9 #allocate instruction
li $a0,64 # allocate 64 byte
syscall
sw $v0,p #save the first memory address to pointer p
li $t0,'a' #write the first byte 'a' cahr
sw $t0,0($v0)
li $t0,'b' #write the first byte 'a' cahr
sw $t0,4($v0)
li $v0,4 #print instruction
lw $a0,p
syscall
これは、火星コンソール上でcharとなります。 なぜですか?
'.align'は、' word'を使用しているので '.align'を使用しようとします。これは' char'と整列していません – Adam