strings in mips. chapter 2 — instructions: language of the computer — 2 character data...
TRANSCRIPT
Strings in MIPS
Chapter 2 — Instructions: Language of the Computer — 2
Character Data
• Byte-encoded character sets– ASCII: 128 characters• 95 graphic, 33 control
– Latin-1: 256 characters• ASCII, +96 more graphic characters
• Unicode: 32-bit character set– Used in Java, C++ wide characters, …– Most of the world’s alphabets, plus symbols– UTF-8, UTF-16: variable-length encodings
§2.9 Comm
unicating with People
How NOT to do Strings in MIPS
• Should we try to output a string by putting ASCII values into $a0?
• This is not correct. • Just as in C, you output a string by passing the
MEMORY ADDRESS of the beginning of a sequence of characters (bytes).
• Similarly, if you do a syscall 8 (read_string), the contents of the string read in are not in $a0.
• How could, say, a 256 byte string fit into a 4 byte quantity?
A look at syscodes
Hello World
# This is a simple program to print hello world
.data greet: .asciiz "Hello world\n".text
main:li $v0, 4
la $a0, greetsyscall # print the stringjr $ra # return from main
Another example .data theString:
.space 64 .text main: li $v0, 8 la $a0, theString li $a1, 64 syscall li $v0,4 syscall
• If you run this program and type this in:Hello!