MIPS汇编程序uint16作为输入

时间:2013-11-28 21:24:29

标签: assembly mips

如何从控制台输入无符号整数16(uint16,halfword)并将其存储在MIPS中? 我应该将其加载为字符串或int? 我知道我可以使用带有不同陷阱代码的系统调用来输入,但是如何输入uint16

read_int        5   
read_float      6   
read_double     7 
read_string     8

1 个答案:

答案 0 :(得分:1)

正如Luu Vinh Phuc建议的那样,您可以使用read int syscall来获得无符号的16位整数。系统调用实际上将读取32位有符号整数,但对于整个16位无符号整数范围,低16位将是相同的。您可以手动检查高16位是否为零以验证没有溢出。

li $v0, 5                    # this is the code for reading an integer
syscall                      # execute the syscall, and read the int into $v0
srl $t0, $v0, 16             # get just the high 16 bits
bne $t0, $0, input_overflow  # branch somewhere else if you have an overflow

这将在寄存器$ v0中留下无符号的16位整数。