80 likes | 223 Vues
Strings in MIPS. Character Data. §2.9 Communicating with People. 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, …
E N D
Character Data §2.9 Communicating with People • 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 Chapter 2 — Instructions: Language of the Computer — 2
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?
Hello World # This is a simple program to print hello world .data greet: .asciiz "Hello world\n" .text main: li $v0, 4 la $a0, greet syscall # print the string jr $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