Assembly QTSpim中的程序集代码未正确接受用户输入
我正在为我的汇编语言类编写一个代码,它接受用户输入并将其存储在内存中,然后为用户再次打印出来。我不知道问题出在哪里,但每当我调用系统调用代码来读取用户输入时,它总是跳过前两个字母。下面是我的代码Assembly QTSpim中的程序集代码未正确接受用户输入,assembly,mips,qtspim,Assembly,Mips,Qtspim,我正在为我的汇编语言类编写一个代码,它接受用户输入并将其存储在内存中,然后为用户再次打印出来。我不知道问题出在哪里,但每当我调用系统调用代码来读取用户输入时,它总是跳过前两个字母。下面是我的代码 .data myname: .asciiz "Please Type Your Name:" ram1: .word 4 ram2: .word 4 blank: .asciiz "\n" .text .globl main main: li $v0, 4 #lo
.data
myname: .asciiz "Please Type Your Name:"
ram1: .word 4
ram2: .word 4
blank: .asciiz "\n"
.text
.globl main
main:
li $v0, 4 #loads the system call code to print a string
la $a0, myname
syscall
la $a0, ram1
li $a1, 20
li $v0, 8 #this is the opcode that reads a user input in the console
syscall
li $v0, 4 #loads the call code to print a string
la $a0, blank
andi $a1, $a1, 0
syscall
syscall
syscall
la $a0, myname
syscall
la $a0, ram1
syscall
我知道系统调用代码8需要2个参数才能正常运行,这是我添加的。如有任何见解,将不胜感激
干杯为什么只为缓冲区保留一个字(四个字节)?很多人的名字都比这个长。为什么在你的程序中的一个点上有三个
syscall
指令在一行中?我为我的缓冲区保留了8个字节,这就是为什么有ram1和ram2。三条系统调用指令用于打印用户输入和最终输出之间的空格。这是本作业说明的一部分。