0
.data
hello: .asciiz "hello "
msg: .asciiz "Enter ur Name: "
buffer: .space 10
.text
.globl main
main:
li $v0 , 4
la $a0 , msg
syscall

li $v0 , 8
la $a0 , buffer
li $a1 , 20

move $t0 , $a0

syscall

li $v0 , 4
la $a0 , hello

syscall

li $v0 , 4
la $a0 , buffer

move $a0 , $t0

syscall

li $v0 , 10

syscall

.end main

//===========

この行 (la $a0 , buffer) の利点は何かを知る必要があります。削除しようとして何も変更されていないため、この行の存在によりバッファサイズが増減し、何も変更されていません。 ! ... では、このラインの利点は何ですか?

4

1 に答える 1

1

( la $a0 , buffer) は、「バッファ」アドレスをロードして、8 を入れて「バッファ」の長さを入れた$a0ときに文字列を書き込むために使用されます。$v0$a1syscall

問題を解決するには、コードのsyscall前にある必要があると思いmove $t0 , $a0ます。

于 2013-10-31T01:09:51.310 に答える