【发布时间】:2012-10-03 11:01:40
【问题描述】:
我正在尝试制作一个可以显示字符的 ascii 值的程序。问题是它不显示真正的 ascii 值。我在 MIPS 汇编中编写此代码,这与普通汇编语言非常相似。代码如下:
.data
User: .asciiz "Bush"
Line: .asciiz "\n"
Address: .word User
.text
main:
li $t0,1
li $t1,2
li $t2,3
li $t3,4
li $t4,5
lb $a0,User($0)
li $v0,1
syscall
la $a0,Line
li $v0,4
syscall
lb $a0,User($t0)
li $v0,1
syscall
la $a0,Line
li $v0,4
syscall
lb $a0,User($t1)
li $v0,1
syscall
la $a0,Line
li $v0,4
syscall
lb $a0,User($t2)
li $v0,1
syscall
la $a0,Line
li $v0,4
syscall
lb $a0,User($t3)
li $v0,1
syscall
la $a0,Line
li $v0,4
syscall
li $t1,-1
jal Length
j Exit
Length:
beq $a0,0,End
addi $t1,$t1,1
lb $a0,User($t1)
j Length
End:
move $a0,$t1
li $v0,1
syscall
jr $ra
Exit:
li $v0,10
syscall
它没有显示真实的ascii值的可能原因是什么。此外,当我尝试制作一个查找所有英文字母的 ascii 值的程序时,我会遇到运行时错误。如果有人能帮助我解决这个问题,那对我来说将是非常重要的。
问候
【问题讨论】:
-
与普通汇编语言非常相似的 MIPS 汇编:嗯?每个体系结构都有自己的汇编语言,或者有时对于相同的二进制机器代码有不止一种 asm 语法。这个 MIPS asm 语法是普通的 MIPS 汇编语言。
-
因缺少 minimal reproducible example 而被否决。正如 Jeff 的回答所说,这确实运行并将预期的 ASCII 代码显示为整数值asciitable.com,以十进制表示。如果“此外”部分是您真正的问题,那么那绝对不是 MCVE。
标签: assembly character ascii mips