You are on page 1of 3

Computer Organization &Assembly Language

Assignment Title

Basic Assembly Language Programing

Question

Problem:
Rules and limitations are the basic key factors that have great impact
over computer architecture and its organization. Any instruction that doesn’t
follows the rules and limitations defined that can not be processed. Keeping in
mind the Assembly language you are required to propose a rule set and limitations
that should be kept in mind while upgrading the architecture for next generation of
processors.

Solve:
First and foremost, there are MANY, MANY assembly languages. Some
of them are very similar, some are very distinct. They are all designed to help
HUMANS express algorithms and data structures by representing the machine
instructions and data types supported by the processors involved.
Secondly, and VERY important - is that most programmers don’t program in
assembly language for any practical or useful purpose. Assembly languages (as
used by most programmers) serve a PEDAGOGICAL purpose, helping someone
interested in computer science or computer engineering understand the
underpinnings of their focus. Programmers who are neither computer scientists nor
computer engineers (ie: “coders” or “code monkeys”) generally don’t care - unless
their curiosity takes them there.
Thirdly, assembly languages represent the instruction set architecture, not the
processor architecture. Modern CPU architecture is concerned with the internals of
pipelines, caches, speculative execution, power utilization, data bandwidth, etc. -
and can vary immensely from processor to processor while still presenting the
same (or nearly the same) instructions - and the same assembly language.
Modern CPUs often INTERPRET the Instruction Set Architecture (or a great deal
of it), kind of like how scripting languages work. The INTREPRETER is written in
processor specific code - that can be updated as bugs are found.
Instruction set architectures are (usually) initially designed to optimize certain sets
of operations. Over time, as technologies change and use-cases change, new sets
emerge, and most designers of CPUs chose to maintain instruction set
compatibility with previous models in order to support customer needs in an
incremental way. New features are wedged into the semantic spaces of the
instruction set architecture, often leading to weird and clumsy expressions of
otherwise straightforward operations.
The AMD/Intel x86_64 instruction set architecture is VERY old - and very crafty.

Assembly languages help hide some of this.

You might also like