Download presentation
Presentation is loading. Please wait.
Published byAldous Black Modified over 8 years ago
1
Computer Organization CS345 David Monismith Based upon notes by Dr. Bill Siever and notes from the Patternson and Hennessy Text
2
Last Time Reviewed arrays Discussed the lw (load word) and sw (store word) instructions Discussed the li (load immediate) instruction We saw that there are different ways to store arrays
3
Recall: Array names are defined by a label. The name is followed by a colon. Array type is provided after the name using a directive. Some examples of directives arelisted below. –.asciiz - string (an array of characters or bytes) that is null terminated –.word - array of standard size data units (32-bit units for MIPS) –.space - array of bytes Arrays are declared in the.data section of an assembly program and follow the format: label:.directive initValues/size
4
Array Examples myString:.asciiz "This is my string\n" myIntArray:.word 1, 2, 3, 4, 5 myBytes:.space 200 We can load a word (integer) into a register if we have the address of an array. la $t1, myIntArray #here we load the address of myIntArray into $t1 lw $t2, 0($t1) #here we load the first data value from myIntArray into $t2 Notice that $t2 contains the value 1 decimal.
5
Arrays We can store a value at a position in the integer array. li $t3, 432 sw $t3, 8($t1) Here we store the value 432 in place of the value 3 in location 2 of the myIntegerArray.
6
Conversions This time we will continue with decimal to binary conversions. We've seen how to convert from binary to decimal (multiply by 2) 1001001 = 2^0 + 2^3 + 2^6 = 1 + 8 + 64 = 73 We've seen how to convert from binary to hex But how do we convert from decimal to binary?
7
Decimal to binary 0 = 0 1 = 1 2 = 10 3 = 11 4 = 100... Notice how the division by 2 method works 4 % 2 = 0 2 % 2 = 0 1 -> 100 binary = 4 decimal By repeatedly taking our value modulo 2, dividing by 2 and repeating, we can find the binary value of a decimal number.
8
Example Take 467 467 % 2 = 1 233 % 2 = 1 116 % 2 = 0 58 % 2 = 0 29 % 2 = 1 14 % 2 = 0 7 % 2 = 1 3 % 2 = 1 1
9
Result Result: 1 1101 0011 Let's check our result. 1 D 3 hex 256 + 13*16 + 3 = 256 + 208 + 3 = 256 + 211 = 467 Recall that every four binary digits represent a hex digit.
10
Questions for next time: What is the issue with plain binary numbers? – Signs must be represented – We need an extra bit to do that How do we account for overflow? That is, what if we add two very large binary numbers? – We need to be careful about adding very large numbers and consider different numberrepresentations. How do we represent instructions? – There are three formats that MIPS uses to represent instructions. – R format - all registers – I format - using registers and a 16 bit integer – J format - using one instruction and a 26 bit address
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.