Chapter 2. Machine Instructions and Programs

Chapter 2. Machine Instructions and Programs

Computer Architecture Faculty Of Computers And Information Technology Second Term 2019- 2020 Dr.Khaled Kh. Sharaf Computer Architecture CHAPTER 6: MACHINE INSTRUCTIONS AND PROGRAMS Computer Architecture Objectives • Machine instructions and program execution, including branching and subroutine call and return operations. • Number representation and addition/subtraction in the 2’s- complement system. • Addressing methods for accessing register and memory operands. • Assembly language for representing machine instructions, data, and programs. • Program-controlled Input/Output operations. Computer Architecture NUMBER, ARITHMETIC OPERATIONS, AND CHARACTERS Computer Architecture Signed Integer • 3 major representations: Sign and magnitude One’s complement Two’s complement • Assumptions: 4-bit machine word 16 different values can be represented Roughly half are positive, half are negative Computer Architecture Sign and Magnitude Representation -7 +0 -6 1111 0000 +1 1110 0001 -5 +2 + 1101 0010 -4 1100 0011 +3 0 100 = + 4 -3 1011 0100 +4 1 100 = - 4 1010 0101 -2 +5 - 1001 0110 -1 1000 0111 +6 -0 +7 High order bit is sign: 0 = positive (or zero), 1 = negative Three low order bits is the magnitude: 0 (000) thru 7 (111) Number range for n bits = +/-2n-1 -1 Two representations for 0 Computer Architecture One’s Complement Representation -0 +0 -1 1111 0000 +1 1110 0001 -2 +2 + 1101 0010 -3 1100 0011 +3 0 100 = + 4 -4 1011 0100 +4 1 011 = - 4 1010 0101 -5 +5 - 1001 0110 -6 1000 0111 +6 -7 +7 • Subtraction implemented by addition & 1's complement • Still two representations of 0! This causes some problems • Some complexities in addition Computer Architecture Two’s Complement Representation -1 +0 -2 1111 0000 +1 1110 0001 -3 +2 + like 1's comp 1101 0010 except shifted -4 1100 0011 +3 0 100 = + 4 one position clockwise -5 1011 0100 +4 1 100 = - 4 1010 0101 -6 +5 - 1001 0110 -7 1000 0111 +6 -8 +7 • Only one representation for 0 • One more negative number than positive number Computer Architecture Binary, Signed-Integer Representations B Values represented Sign and b 3 b 2 b 1 b 0 magnitude 1' s complement 2' s complement 0 1 1 1 + 7 + 7 + 7 0 1 1 0 + 6 + 6 + 6 0 1 0 1 + 5 + 5 + 5 0 1 0 0 + 4 + 4 + 4 0 0 1 1 + 3 + 3 + 3 0 0 1 0 + 2 + 2 + 2 0 0 0 1 + 1 + 1 + 1 0 0 0 0 + 0 + 0 + 0 1 0 0 0 - 0 - 7 - 8 1 0 0 1 - 1 - 6 - 7 1 0 1 0 - 2 - 5 - 6 1 0 1 1 - 3 - 4 - 5 1 1 0 0 - 4 - 3 - 4 1 1 0 1 - 5 - 2 - 3 1 1 1 0 - 6 - 1 - 2 1 1 1 1 - 7 - 0 - 1 Figure 2.1. Binary, signed-integer representations. Computer Architecture MEMORY LOCATIONS, ADDRESSES, AND OPERATIONS Computer Architecture Memory Location, Addresses, and Operation n bits • Memory consists of many first word millions of storage cells, second word each of which can store 1 bit. • • • • Data is usually accessed in n-bit groups. n is called word length. i th word • • • last word Memory words. Computer Architecture Memory Location, Addresses, and Operation • 32-bit word length example 32 bits • • • b31 b30 b1 b0 Sign bit: b31 = 0 for positive numbers b31 = 1 for negative numbers (a) A signed integer 8 bits 8 bits 8 bits 8 bits ASCII ASCII ASCII ASCII character character character character (b) Four characters Computer Architecture Memory Location, Addresses, and Operation • To retrieve information from memory, either for one word or one byte (8-bit), addresses for each location are needed. • A k-bit address memory has 2k memory locations, namely 0 – 2k-1, called memory space. • 24-bit memory: 224 = 16,777,216 = 16M (1M=220) • 32-bit memory: 232 = 4G (1G=230) • 1K(kilo)=210 • 1T(tera)=240 Computer Architecture Memory Location, Addresses, and Operation • It is impractical to assign distinct addresses to individual bit locations in the memory. • The most practical assignment is to have successive addresses refer to successive byte locations in the memory – byte-addressable memory. • Byte locations have addresses 0, 1, 2, … If word length is 32 bits, they successive words are located at addresses 0, 4, 8,… Computer Architecture Memory Location, Addresses, and Operation • Address ordering of bytes • Word alignment • Words are said to be aligned in memory if they begin at a byte addr. that is a multiple of the num of bytes in a word. • 16-bit word: word addresses: 0, 2, 4,…. • 32-bit word: word addresses: 0, 4, 8,…. • 64-bit word: word addresses: 0, 8,16,…. • Access numbers, characters, and character strings Computer Architecture Memory Operation • Load (or Read or Fetch) Copy the content. The memory content doesn’t change. Address – Load Registers can be used • Store (or Write) Overwrite the content in memory Address and Data – Store Registers can be used Computer Architecture ADDRESSING MODES Computer Architecture Generating Memory Addresses • How to specify the address of branch target? • Can we give the memory operand address directly in a single Add instruction in the loop? • Use a register to hold the address of NUM1; then increment by 4 on each pass through the loop. Computer Architecture Computer Architecture Addressing Modes Opcode Mode ... • Implied • AC is implied in “ADD M[AR]” in “One-Address” instr. • TOS is implied in “ADD” in “Zero-Address” instr. • Immediate • The use of a constant in “MOV R1, 5”, i.e. R1 ← 5 • Register • Indicate which register holds the operand Computer Architecture Addressing Modes • Register Indirect • Indicate the register that holds the number of the register that holds the operand MOV R1, (R2) R1 • Autoincrement / Autodecrement R2 = 3 • Access & update in 1 instr. • Direct Address R3 = 5 • Use the given address to access a memory location Computer Architecture Addressing Modes • Indirect Address • Indicate the memory location that holds the address of the memory location that holds the data Memory AR = 101 100 101 0 1 0 4 102 103 104 1 1 0 A Computer Architecture Addressing Modes Memory • Relative Address • EA = PC + Relative Addr 0 1 PC = 2 2 + 100 AR = 100 101 102 1 1 0 A Could be Positive or 103 Negative 104 (2’s Complement) Computer Architecture Addressing Modes • Indexed Memory • EA = Index Register + Relative Addr Useful with XR = 2 “Autoincrement” or “Autodecrement” + 100 AR = 100 101 Could be Positive or Negative 102 1 1 0 A (2’s Complement) 103 104 Computer Architecture Addressing Modes • Base Register Memory • EA = Base Register + Relative Addr Could be Positive or AR = 2 Negative (2’s Complement) + 100 0 0 0 5 BR = 100 101 0 0 1 2 102 0 0 0 A Usually points to 103 0 1 0 7 the beginning of 104 0 0 5 9 an array Computer Architecture Addressing Modes Name Assembler syntax Addressing function • The different ways in which Immediate #Value Op erand = Value the location of an operand is Register R i EA = Ri specified in an instruction are Absolute (Direct) LOC EA = LOC referred to as Indirect (R i ) EA = [R i ] addressing (LOC) EA = [LOC] modes. Index X(R i ) EA = [R i ] + X Base with index (R i ,R j ) EA = [R i ] + [R j ] Base with index X(R i ,R j ) EA = [R i ] + [R j ] + X and offset Relative X(PC) EA = [PC] + X Autoincrement (R i )+ EA = [R i ] ; Increment R i Autodecrement (R i ) Decrement R i ; EA = [R i ] Computer Architecture Indexing and Arrays • Index mode – the effective address of the operand is generated by adding a constant value to the contents of a register. • Index register • X(Ri): EA = X + [Ri] • The constant X may be given either as an explicit number or as a symbolic name representing a numerical value. • If X is shorter than a word, sign-extension is needed. Computer Architecture Indexing and Arrays • In general, the Index mode facilitates access to an operand whose location is defined relative to a reference point within the data structure in which the operand appears. • Several variations: (Ri, Rj): EA = [Ri] + [Rj] X(Ri, Rj): EA = X + [Ri] + [Rj] Computer Architecture Relative Addressing • Relative mode – the effective address is determined by the Index mode using the program counter in place of the general-purpose register. • X(PC) – note that X is a signed number • Branch>0 LOOP • This location is computed by specifying it as an offset from the current value of PC. • Branch target may be either before or after the branch instruction, the offset is given as a singed num. Computer Architecture Additional Modes • Autoincrement mode – the effective address of the operand is the contents of a register specified in the instruction. After accessing the operand, the contents of this register are automatically incremented to point to the next item in a list. • (Ri)+. The increment is 1 for byte-sized operands, 2 for 16-bit operands, and 4 for 32-bit operands. • Autodecrement mode: -(Ri) – decrement first Move N,R1 Move #NUM1,R2 Initialization Clear R0 LOOP Add (R2)+,R0 Decrement R1 Branch>0 LOOP Move R0,SUM Figure 2.16. The Autoincrement addressing mode used in the program of Figure 2.12. Computer Architecture ASSEMBLY LANGUAGE Computer Architecture Levels of Programming Languages 1) Machine Language • Consists of individual instructions that will be executed by the CPU one at a time 2) Assembly Language (Low Level Language) • Designed for a specific family of processors (different processor groups/family has different Assembly Language) • Consists of symbolic instructions directly related to machine language instructions one-for-one and are assembled into machine language.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    98 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us