2011-09-02 5 views
0

la/li을 사용하지 않고 어셈블리의 메모리에있는 .word 값을 어떻게 인쇄합니까? 기본 기능 만 사용할 수 있습니다. 나는 .asciiz를 인쇄 할 수 있습니다,하지만 난 그것을 메모리 주소 :(여기 la/li을 사용하지 않고 Assembly의 메모리에있는 .word 값을 인쇄하는 방법

asciiz을 인쇄 할 내 코드의 값 (정수)를 인쇄하지 않는 것을 잘못하고있는 중이 야 모르겠어요 :

lui $a0, 0x1001 
addi $a0, $a0, 12 # set the address to my string location 
addi $v0, $0, 4 
syscall 

내가 다른 주소를 제외하고 같은 코드를 작성하지만 아무것도를 인쇄하지 않습니다. 나는 또한 검색을 시도했지만이 질문에 대한 정확한 답을 찾을 수 없습니다.

알려 주시기 바랍니다. 어떤 도움을 크게 감상 할 수 있습니다. 내가 오해 한 것이 있으면 저를 시정하십시오. 미리 감사드립니다.

답변

0

코드에 몇 가지 오류가 있습니다. 당신은 정수를 인쇄하려면

첫째, 당신은 당신이 메모리에 저장되어있는 정수를 인쇄 할 경우, 당신은 메모리에서 그 단어를로드 할 수 있고, # 4

그리고 콜 # 1 대신를 사용한다 .

코드는 다음과 같이 보일 것이다 :

lw $a0, 0x100C # Load the contents of word stored at address 0x1000 + 12 
    addi $v0, $0, 1 # Set service #1 (which prints an integer) 
    syscall   # Do the system call 
관련 문제