Computer Science 210 Computer Organization

Slides:



Advertisements
Similar presentations
Computer Science 210 Computer Organization Strings, I/O, and Trap Service Routines.
Advertisements

Chapter 7 Introduction to LC-3 Assembly Language Assembly Language Assembly Process Using the Editor & Simulator for Assembly Language Programming.
Introduction to Computing Systems from bits & gates to C & beyond Chapter 7 LC-2 Assembly Language.
Chapter 7 Assembly Language. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 7-2 Human-Readable Machine Language.
Introduction to Computing Systems from bits & gates to C & beyond Chapter 7 LC-2 Assembly Language.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Chapter 7 Assembly Language. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 7-2 Human-Readable Machine Language.
Fall EE 333 Lillevik 333f06-l4 University of Portland School of Engineering Computer Organization Lecture 4 Assembly language programming ALU and.
1 COMS 361 Computer Organization Title: Instructions Date: 9/28/2004 Lecture Number: 10.
The assembler is the system program that translate source code written in assembly language to object code( Machine Language) and other information for.
Chapter 3 Assembly Language: Part 1. Machine language program (in hex notation) from Chapter 2.
Introduction to LC-3 Assembly Language. LC-3 Assembly Language Syntax Each line of a program is one of the following: –an instruction –an assember directive.
Introduction to LC-3 Assembly Language
ECE 265 – LECTURE 9 PROGRAM DESIGN 8/12/ ECE265.
Assembly Language.
Assemblers.
Introduction to Computing Systems and Programming Assembly Language.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Programming With C.
Assemblers.
Computer Science 210 Computer Organization Overview of Assembly Language.
Computer Science 210 Computer Organization More on Assembler.
Chapter 7 Assembly Language. 7-2 Human-Readable Machine Language Computers like ones and zeros… Humans like symbols… Assembler is a program that turns.
Algorithms  Problem: Write pseudocode for a program that keeps asking the user to input integers until the user enters zero, and then determines and outputs.
S YSTEMS P ROGRAMMING CHAPTER 2 PROGRAMMING IN ASSEMBLY LANGUAGE Er. Bharadwaj Choudhury.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 10 – Loaders.
Computer Science 210 Computer Organization
Introduction to Computer Engineering
Computer Science 210 Computer Organization
Chapter 7 Assembly Language
Chapter 7 & 9.2 Assembly Language
Computer Science 210 Computer Organization
Assembly Language Ms. V.Anitha AP/CSE SCT
Computer Science 210 Computer Organization
Algorithms Problem: Write pseudocode for a program that keeps asking the user to input integers until the user enters zero, and then determines and outputs.
Chapter 7 Assembly Language
Chapter 3 Machine Language and Assembly Language.
Chapter 3 Machine Language and Assembly Language.
COSC121: Computer Systems
Introduction to C Topics Compilation Using the gcc Compiler
Computer Science 210 Computer Organization
Computer Science 210 Computer Organization
Chapter 7 LC-2 Assembly Language.
Computer Science 210 Computer Organization
Assembler CASE Tool.
Computer Science 210 Computer Organization
Introduction to Computer Engineering
Computer Science 210 Computer Organization
Introduction to Computer Engineering
Computer Science 210 Computer Organization
Chapter 7 Assembly Language
Chapter 9 TRAP Routines and Subroutines
Chapter 7 LC-2 Assembly Language.
Computer Science 210 Computer Organization
COSC121: Computer Systems
Introduction to Computer Engineering
Chapter 7 Assembly Language
INTRODUCTION ABOUT ASSEMBLY
Chapter 9 TRAP Routines and Subroutines
Chapter 7 Assembly Language
Computer Science 210 Computer Organization
Introduction to Computer Engineering
8051 ASSEMBLY LANGUAGE PROGRAMMING
Chapter 7 Assembly Language An Hong 2016 Fall
Computer Organization and Assembly Language
Introduction to Computer Engineering
Introduction to Computer Engineering
Introduction to Computer Engineering
Introduction to Computer Engineering
Chapter 7 Assembly Language
Presentation transcript:

Computer Science 210 Computer Organization Overview of Assembly Language

Problems with Machine Language Opcodes are in binary, hard to remember Immediate operands, register # are in binary Destinations of branches are in binary and must be calculated by hand Memory locations (variables) are in binary

Problems with Machine Language When an instruction is inserted or removed, many fields in other instructions must be updated Easy to get the format of an instruction wrong

Needed Improvements Mnemonic symbols (ADD, BRp) for opcodes Mnemonic symbols (count, endwhile) for data variables in memory and destinations of branches Automatic update of addresses after modifications to code

Needed Improvements Use of decimal or hex numeric literals for immediate operands Simple syntax checking (format of instructions, undeclared labels, etc.) Reserve memory and initialize it

Program Development /opt/lc3tools/lc3as Create source code Editor Assembler Translate to machine code Linker Add library code Loader Place code in appropriate memory locations Runtime System Execute code /opt/lc3tools/lc3as usage: ./lc3as <ASM filename>

An Assembly Language Program ;; ;; Author: Ken Lambert ;; File: abs1.asm ;; This program resets the value of the variable NUMBER ;; to its absolute value .ORIG x3000 ;; Pseudocode design: ; if number < 0 ; number = -number ;; Main program register usage: ; R1 = number ; Main program code LD R1, NUMBER ; if number < 0 BRzp ENDABS NOT R1, R1 ADD R1, R1, #1 ST R1, NUMBER ; number = -1 ENDABS HALT ; Data for main program NUMBER .BLKW 1 .END

LC-3 Assembly Language Syntax Each line of code is An instruction An assembler directive (or pseudo-op) A comment Whitespace is ignored Instruction format: LABEL OPCODE OPERANDS ; COMMENTS optional mandatory

Opcodes and Operands Opcodes are reserved symbols like AND, ADD, etc. Registers: specified by Ri Numbers: indicated by # (decimal) or x (hex) Label: symbolic name of memory location Separated by a comma

Labels and Comments Placed at the beginning of a line or included as an operand within an instruction LOOP ADD R1,R1,#-1 BRp LOOP A comment begins with ; and extends to the end of that line

Assembler Directives Tell the assembler what to do at assembly time, start with a dot (.) Opcode Operand Meaning .ORIG address starting address of program .END end of program .BLKW n allocate n words of storage .FILL allocate one word, initialize with value n .STRINGZ n-character string allocate n+1 locations, initialize w/characters and null terminator

Trap Codes Pseudo-instructions for trap codes: Code Equivalent Description HALT TRAP x25 Halt execution and print message to console. IN TRAP x23 Print prompt on console, read (and echo) one character from keybd. Character stored in R0[7:0]. OUT TRAP x21 Write one character (in R0[7:0]) to console. GETC TRAP x20 Read one character from keyboard. Character stored in R0[7:0]. PUTS TRAP x22 Write null-terminated string to console. Address of string is in R0.

Style Guidelines Use the following style guidelines to maximize the clarity and maintainability of your programs: Provide a program header, with author’s name, date, etc., and purpose of program. Start labels, opcode, operands, and comments in same column for each line. (Unless entire line is a comment.) Use comments to explain what each register does. Give explanatory comment for most instructions. Use meaningful symbolic names. Mixed upper and lower case for readability. ASCIItoBinary, InputRoutine, SaveR1 Provide comments between program sections. Each line must fit on the page -- no wraparound or truncations. Long statements split in aesthetically pleasing manner.

The assembler, linker, and loader For Wednesday The assembler, linker, and loader