title: From-Machine-Language-to-Assembly-Language
date: 2023-11-20
author:
  - AllenYGY
status: DONE
tags:
  - NOTE
  - CO
  - Lec9
created: 2024-01-16T21:03
updated: 2024-05-31T01:16
publish: True
From-Machine-Language-to-Assembly-Language
Assembler is a program that turns symbols into binary machine instructions.
 Assembly language Syntax
- Each line of a program is one of the following:
- an instruction
- an assembler directive (or pseudo-op)
- a comment
 
- Whitespace (between symbols) and case are ignored.
- Comments (beginning with “;”) are also ign
 Assembly Language Instruction
LABEL OPCODE OPERANDS COMMENTS
- optional: Label, Comments
- mandatory: Opcode, Operands
Opcode and Operands
- Opcodes:
- reserved symbols that correspond to LC-3 instructions
- example: ADD, AND, LD, LDR
 
- Operands:
- Registers:
- Numbers: #(DEC) or x(HEX)
- Label: symbolic name oof memory location
 
Labels
placed  at the beginning of the line
assigns a symbolic name to the address corresponding to line
Loop ADD R1,R1,#-1
     Brp LOOP
- Anything after a semincolon is comments
- Ignored by assembler
- Used by humans to document/ understand programs
- Tips for useful comments:
- avoid restating the obvious, as “decrement R1”
- provide additional insight, as in “accumulate product in R6”
- use comments to separate pieces of program
 
Assembler Directives
- Do not refer to operations executed by program
- used by assembler
- look like instruction, but "opcode" starts whith dots
| Opcode | Operand | Meaning | 
| .ORIG | address | starting address of program | 
| .END | end of program |  | 
| .BLKW | n | allocate n words of storage | 
| .FILL | n | allocate one word,initializa with value n | 
| .STRINGZ | n-character string | allocate n+1 locations, initialize w/characters and null terminator |