Download Assembly Language

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Back to Assembly lang
name
operation
START: MOV
operand(s)
CX, 5
;comment
;
;
যা ইচ্ছা লিখ! ‘ ’ লিও!
name
operation
operand(s)
• Okay  letters, digits, ?, ., @, _, $, %
• Illegal names –
-
If any blanks – aaa aaa
If begin with a digit – 2asad
If ‘.’ not first char. – aq.12
If has illegal char – aa&bb
;comment
name
operation
operand(s)
;comment
• For an Instruction: Symbolic operation code
[opcode]:
Assembler translates these codes into Machine
lang opcode.
 MOV, ADD, SUB, …
• For an Directive: pseudo-operation code –
pseudo-op, do not translate
 PROC is used to create a procedure
name
operation
operand(s)
;comment
• An instruction may have 0/1/2 operands
e.g.,
NOP
; no operands – does nothing
INC
AX
; 1 op. – adds 1 to contents of AX
ADD
destination, source
4.2 Program data
• Binary – 1011b, 1100B
• Decimal – 10111, 10111d, -3419D
1,23 – x
• Hex – start with a decimal digit, ends with ‘H’
– 3BA3H, 0FFFFH
• Characters – within ‘aa’ or “aa”
Pseudo-ops
•
•
•
•
•
DB – define data BYTE
DW – word
DD – doubleword – two consecutive words
DQ – quadword – 4 …
DT – tenbytes – 10…
4.3 Variables
name
operation
name
e.g.,
ALPHA
AA
DB
DB
initial value
4
DB
operand(s)
;comment
; -128 ~ 127; or 0-255
; variable ALPHA=4
?
; uninitialized byte
4.3.3 Array
EktaArray
Symbol
EktaArray
EktaArray+1
EktaArray+2
DB
10H, 20H, 22H
Address
200h
Contents
10H
201h
202h
20H
22H
For DW – 2 bytes
Symbol
EktaArray
EktaArray+2
EktaArray+4
Address
200h
Contents
10H
202h
204h
20H
22H
WORD1
DW
1234H
; low Byte of WORD1 contains 34H
; high Byte of WORD1 contains 12H
4.5 basic instructions
• MOV – move; contents of destination is
replaced by the contents of source
• XCHG – exchange; swapping
Q: exa??
• ADD
W1, AX
;W1 = W1 + AX
;W1 – changes with added/sum value
;AX – unchanged
• SUB
AX, DX
;Subtract DX from AX
;New value in AX – AX changes
; DX unchanged
Direct ADD/SUB between memory locations  WRONG!
• ADD
W1, W2
; wrong as direct memory location
Source
Gen Reg.
Memory Loc.
Constant
Destination
General Reg.
Yes
Yes
Yes
Memory loc.
Yes
NO
Yes
INC
Increment
• INC
INC
destination
W1
;e.g., W1=0003
Before
After INC,
W1=0003
W1=????
0004
DEC
Decrement
• DEC
DEC
destination
W1
;e.g., W1=FFFF
Before
After INC,
W1=FFFF
W1=????
FFFE
NEG
negate the contents of destination
• NEG
destination
; reg. / mem.
; replace the contents by it’s two’s complement
NEG
Before
After NEG,
W1
;e.g., W1=0002
W1=0002
W1=????
FFFE
• Note:
- Both types MUST be the same type
e.g.,
MOV
AH, ‘A’
; what is in AH?
; ‘A’ = 41H
41H
MOV
AX, ‘A’ ; what is in AX?
0041H
Do!
High- to Assembly
1. B = A
2. A = 5 – A
3. A = B – 2 x A
1. B = A
• MOV
• MOV
AX, A
B, AX
• A direct mem-to-mem move is illegal
2. A = 5 - A
• MOV
• SUB
• MOV
AX, 5
AX, A
A, AX
• NEG
• ADD
A
A, 5
3. A = B – 2xA
• MOV
• SUB
• SUB
AX, B ;AX = B
AX, A;AX=B-A
AX, A;AX=B-A – A
; AX = B – 2A
• MOV
A, AX; A = AX = B – 2A
Related documents