HTTP://WWW.COMPUTER-WORLD1.COM

Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World
Computer World


The Web Ask
 


 
Computer Information
MENU  
  COMPUTER HELP
  Computing Notes
  => 1 Introduction To Computing
  => 1.1 Computer Hardware
  => 1.2 Computer Software
  => 1.3 The Human-Computer Interface
  => 1.4 Business Information Systems
  => 1.5 Batch Processing
  => 2 Word Processing
  => 2.1 Introduction
  => 2.2 Editing Facilities
  => 2.3 Bullets And Numbering
  => 2.4 Layout Facilities
  => 2.5 Headers And Footers
  => 2.6 Style Controls
  => 2.7 Spelling And Grammar Checking
  => 2.8 Inserting Columns
  => 2.9 Borders And Shading
  => 2.10 Tables
  => 2.11 Inserting Graphics
  => 2.12 Mail Merging
  => 2.13 Macros
  => 3 Programming In QuickBASIC
  => 3.1 Introduction
  => 3.2 Variables, Input And Output
  => 3.3 Arithmetic Operators
  => 3.4 Iteration
  => 3.5 Selection
  => 3.6 Functions
  => 3.7 Subprograms
  => 3.8 Recursion
  => 3.9 Arrays
  => 3.10 Program Structure
  => 3.11 Jackson Structure Diagrams
  => 3.12 String Processing
  => 4 Data Representation
  => 4.1 Different Computer Codes
  => 4.2 Binary Integers
  => 4.3 Higher Number Bases
  => 4.4 Graphics, Sounds And Other Interpretations
  => 4.5 Fixed Point Binary Numbers
  => 4.6 Floating Point Binary Numbers
  => 4.7 Range And Accuracy
  => 5 Spreadsheets
  => 5.1 Introduction
  => 5.2 General Features
  => 5.3 "What If" Calculations
  => 5.4 Changing The Workbook's Appearance
  => 5.5 Relative And Absolute Reference
  => 5.6 Sorting And Filters
  => 5.7 Charts
  => 5.8 Lookup
  => 5.9 The IF Function
  => 5.10 Goal Seeker
  => 5.11 Solver
  => 5.12 Macros
  => 6 Files
  => 6.1 File Concepts
  => 6.2 Serial & Sequential Files
  => 6.3 Indexed Sequential Files
  => 6.4 Random Access Files
  => 6.5 Overview of File Processing
  => 7 Standard Algorithms
  => 7.1 Linear Searches
  => 7.2 Binary Search
  => 7.3 Internal Sorting
  => 7.4 External Sorting
  => 8 Legal Issues And Data Security
  => 8.1 The Computer Missuse Act 1990
  => 8.2 The Data Protection Act 1984
  => 8.3 Computer Fraud
  => 8.4 Software Copyright
  => 8.5 Viruses And Trojans
  => 8.6 Security Of Data
  => 8.7 Data Integrity
  => 9 Databases
  => 9.1 Flat-file Databases
  => 9.2 Introduction To Relational Databases
  => 9.3 The Aims Of Database Normalisation
  => 9.4 Security And Integrity Issues
  => 9.5 Database Management
  => 10 Data Structures
  => 10.1 Introduction
  => 10.2 Linear Lists
  => 10.3 Linked Lists
  => 10.4 Queues
  => 10.5 Stacks
  => 10.6 Binary Trees
  => 11 Systems Development
  => 11.1 Introduction
  => 11.2 Analysis
  => 11.3 Design
  => 11.4 Graphical System Representation
  => 11.5 Development
  => 11.6 Testing
  => 11.7 Implementation
  => 11.8 Maintenance
  => 11.9 System Documentation
  => 12 Peripherals
  => 12.1 Input Devices
  => 12.2 Output Devices
  => 12.3 Storage Devices
  => 13 Computer Architecture
  => 13.1 The Processor And Memory
  => 13.2 The Fetch-Execute Cycle
  => 13.3 Data Buses
  => 13.4 Processing Architectures
  => 13.5 Assembly Language
  => 14 Translation
  => 14.1 Interpreters
  => 14.2 Compilers
  => 14.3 Compilation Phases
  => 14.4 Assemblers
  => 15 Operating Systems
  => 15.1 Operating System Functions
  => 15.2 Different OS Modes
  => 15.3 Job Control Language
  => 15.4 The Scheduler And Dispatcher
  => 15.5 Memory Management
  => 15.6 Peripheral Control
  => 15.7 Backing Store Management
  => 16 High Level Programming
  => 16.1 High And Low Level Languages
  => 16.2 Language Classification
  => 16.3 Language Generations
  => 16.4 Logic Programming
  => 16.5 Choosing A Programming Language
  => 17 Computers & Communication
  => 17.1 Data Transmission
  => 17.2 Local Area Networks
  => 17.3 Wide Area Networks
  => 17.4 The Internet
  बातमी वाचु शकता
  जनरल नॉलेज
  HELPLINE
  GALLERY
  Calculators and Converters
  Zoo Animal Photos
  Short form list
  LOGIN
  HOME
  CONTACT
  CHAT ME !!!
  INTRODUCTION
  SUBMIT URLs
  ADD OWN LINK
  Banner Exchange
  IPL T20 Live Scores
  NATIONAL ANTHEM OF INDIA
  Birthday Reminder
  FUNNY PAGE
  TOP LIST
  MAP AND SATELLITE IMAGE
  Your IP Address
  MOBILE WAP SETTINGS
  INDEX



Bookmark and Share



Online Reference
Dictionary, Encyclopedia & more
Word:
Look in: Dictionary & thesaurus
Medical Dictionary
Legal Dictionary
Financial Dictionary
Acronyms
Idioms
Encyclopedia
Wikipedia
Periodicals
Literature
Other languages:
by:


INDIA
13.5 Assembly Language
Section 13.4

Computer Architecture

13.5 Assembly Language

Each processor type has its own binary (machine code) langauge. Assembly language is short-hand for this.

13.5.1 Data Transfer Instructions

These move (copy) a value from register or location to another.

MOVE <source>, <destination>

Example Program

MOVE #100, R0
MOVE #112, R1
RTS

13.5.2 Memory Mapped Output

Certain memory locations map directly to an output device.

In the ASM Tutor memory locations 5 to 14 map to the mapped memory window.

MOVE #'H', 5

13.5.3 Address Mode

These modes specify how the data in an instruction is to be acquired.

Immediate Mode

In this mode the operand is a literal value.

MOVE #35, R0 - Move the value 3510

Direct (Absolute) Mode

Here the operand holds the address of the data to be used in the instruction.

MOVE 129, R0 - Move the data in the location 12910 into R0

Direct addressing is slower than immediate addressing because:

  • The data must subsequently be fetched from its location
  • High memory locations (E.g. Addresses above 128K in a 16-bit machine) will need to be loaded into the CPU in several FE cycles.

Indirect Mode

In this mode the operand holds a register/memory location that in turn holds the address of the data to be used.

MOVE (R1), R0 - Moves the contents of the memory location that is referenced by register R1 into register R0.

Indexed Mode

The operand address is calculated by adding a base address to a value in a register (often called the index register).

MOVE 200(R0), 129 - Move the value from the address stored in R0 + 200 to address 129.

Relative Mode

This mode is used in branch instructions.

13.5.4 The Keyboard Buffer

In the ASM tutor, memory address 4 is reserved as the keyboard buffer.

The contents are changed by clicking on the appropriate key in the interrupt window.

13.5.5 Unconditional Flow Control

Normally instructions execute in sequence as the program counter is incremented.

Jumping

Jumping causes the program to branch to a specified address.

JUMP <address>

For example

JMP 128 - Jumps to address 128
JMP (R3) - Jumps to address in R3

Sub-routines

Unconditional flow control can be acheived by the use of a sub-routine.

JSR <address> - Jump to an effective address

RTS - Return to the next instruction after the JSR that invoked the sub-rotuine.

13.5.6 Input And Output Using System Subroutines

Most OSs provide a number of sub-routines.

E.g.

  • to access a file
  • to display a window
  • to get input from the keyboard

ASM Tutor emulates this with addresses 86 to 89.

To Output A String

  • Make sure that the string is terminated with a 0.
  • Place the start address of the string into R0.
  • JSR 86

To Input A String

  • Place the start address of the buffer to receive a string into R0.
  • Place the size of the buffer into R0.
  • JSR 88

13.5.7 Arithmetic Instructionn

Addition

ADD <source>, <destination>

The source is added to the destination. The sum is placed in the destination.

Subtraction

SUB <source>, <destination>

The source is subtracted from the destination and the result is left in the destination.

13.5.8 Branch Instructions

Conditional flow control can be acheived by comparing two values and branching, depending on the result.

First use:

CMP - to compare two values and set the status register

Then a BXX instruction:

BEQ - Branch if equal
BNE - Branch if not equal
BGE - Branch if greater than or equal
BGT - Branch if greater than
BLE - Branch if less than or equal to
BLT - Branch if less than

13.5.9 The Status Register

After an arithmetic operation the result may be negative or an overflow may occur.

Normally the status register contains the following bits:

8 (23) 4 (22) 2 (21) 1 (20)
Carry Overflow Zero Negative

13.5.10 Logical Operators

These operations are used to manipulate the individal bits in memory locations.

The AND Operator

The AND operator takes two inputs and gives one output.

The output will be only be 1 if both the first and the second inputs are 1.

Input 1 Input 2 Output
0 0 0
0 1 0
1 0 0
1 1 1

When several logical operators are applied to values represented by several bits the answer is calculated in a bitwise manner.

E.g. 1010 AND 1001 gives 1000

An Application of AND - Masking

E.g.
1010 1110 1010 0001
AND 0000 0000 1111 1111
gives 0000 0000 1010 0001

In order to find the lower byte in a 16-bit word the word can be masked with 0000 0000 1111 1111.

The OR Operator

Input 1 Input 2 Output
0 0 0
0 1 1
1 0 1
1 1 1

The output will be 1 if either the first, second or both inputs are 1.

E.g. 1010 OR 1001 gives 1011

An Application of OR - Converting Binary Numbers To ASCII

The ASCII code for character '3' is:

0011 0011

This can be generated from the binary code for 310 by:

0011 0000

The NOT Operator

NOT only takes one input.

Input Output
0 1
1 0

An Application of NOT - Two's Complement

In an 8 bit system:

310 = 0000 00112
-310 = NOT 0000 0011 ADD 1
-310 = 1111 1100 ADD 1
-310 = 1111 1101

ASM Syntax

AND and OR take a source and a destination which are treated as input 1 and input 2. The results are then replaced in the destination.

AND <source>, <destination>
OR <source>, <destination>

Immediate mode binary numbers are prefixed with a '%'.

E.g. MOVE 1011 0111, 123

NOT takes a single address or register and swaps the 1s and 0s.

13.5.11 Shift Instructions

Most assemblers support three types of shift instruction:

  • Logic
  • Arithmetic
  • Rotate

Logical Shift

A logical shift causes the m.s.b. to be shifted to the carry bit (in the status register) and zero moves to the l.s.b.

ASM Syntax

LSL #1, <address> - Logical shift left (one place)
LSR #1, <address> - Logical shift right (one place)

Arithmetic Shift

This results in multiplying or dividing the value by 2. Arithmetic shifting takes account of two's complement negative numbers.

ASM Syntax

ASL #1, <address> - Arithmetic shift left (one place)
ASR #1, <address> - Aritmetic shift right (one place)

Rotational Shift

Here the bits in an address are are physically rotated left or right. The bit that jumps from one end to the other is replicated in the carry bit.

ASM Syntax

ROL #1, <address> - Rotate left (one place)
ROR #1, <address> - Rotate right (one place)

13.5.12 Iteration In Assembly Language

It is useful to be able to work out the equivalent assembly language code for high-level constructs.

FOR K = 1 TO 10

DO N to N + 1

END FOR


< Previous Back To Topic Next >

COMPUTER-WORLD1  
 
Username:
Password:
 
SHOUTBOX  
 








 
SMS 160by2  
 
Forgot Password / Username

 
VISITS  
 
 
Time  
  free guide to setting up a website
 
Today, there have been 88 visitorson this page!
Matrimony Search Widgets
Matrimony Search


Home
SILICONINDIA FACEBOOK YOUTUBE MYSPACE

HOME :: :: INDEX :: :: COMPUTING NOTES :: ::COMPUTER HELP

This website was created for free with Own-Free-Website.com. Would you also like to have your own website?
Sign up for free