Module 1 Exploration 1
Instruction
A 'control phrase' for a computer, for example "add" to add or "move" to transfer information.
Register
A data storage location
Operands
An input or output value for an instruction, for example, "Move the data in register X to register Y" would have one input register operand and one output register operand.
What is an instruction?
An instruction is a control phrase for the computer which will be translated (with its operands) into a op code (Machine Language)
What mechanism is used to turn Assembly Language code to Machine Code? Assembler Translator Cross Compiler Compiler
Assembler
A [ Select ] ["RISC", "CISC"] Architecture's instructions are decoded to micro-programs which are executed by the CPU, whereas a [ Select ] ["CISC", "RISC"] Architecture's instructions are directly executed by the CPU.
CISC RISC
Language Hierarchy: The purpose of a Compiler is to... Convert Program Code for one Architecture to Program Code for another Architecture. Convert Natural Language to Program Code Convert Assembly Language to Machine Code Convert High/Low level Program Code to Assembly/Machine Code
Convert High/Low level Program Code to Assembly/Machine Code
What type of tool can convert ARM Assembly to x86 Assembly? Linker Loader Cross Compiler Cross Assembler
Cross Assembler
(True/False) A single computer architecture may have programs written for it using more than one Assembly Language (x86, RISC-V, ...).
False An Assembly Language is defined by an ISA (Instruction Set architecture), and is the only Assembly Language defined for that computer architecture. Assembly languages are architecture specific
(True/False) Assembly Language programs are 'higher level' than C programs.
False Assembly Language programs are lower level than C program. A C program will compile into assembly on its way to Machine Code.
(True/False) Assembly Language programs are portable to a variety of computer architectures.
False Assembly Languages are architecture-specific.
A ___________ (part of the Operating System) reads an Executable File and stores the contents into memory (RAM) starting at the proper address for execution.
Loader
(True/False) The linker combines object files into an executable file.
True
(True/False) A single computer architecture may have programs written for it using more than one assembler (MASM, NASM, FASM, ...)
True Different assemblers give software developers different capabilities in the way their assembly language programs are written, assembled, and debugged. MASM and NASM can both be used to author x86 Assembly for IA32 processors, for example. Assemblers have a many-to-one correspondence to assembly languages; that is, even though there is only one assembly language for a particular ISA, there may be several assemblers available to choose from.
(True/False) High-level language (HLL) programs are portable to a variety of computer architectures.
True HLL programs require compilers to create architecture-specific code.
(True/False) Assembly Language instructions have a nearly 1:1 correspondence with Machine Code.
True Some Assembly Languages and architectures have a 1:1 correspondence from Assembly to Machine.
A program is considered portable if it . . . can be executed on multiple platforms. can be rewritten in a different programming language without losing its meaning. can be quickly copied from conventional RAM into high-speed RAM.
can be executed on multiple platforms.
A program that combines object files into an executable program is called a compiler linker loader assembler
linker