Introduction to Assembly Language Programming
Registers:
Register are used to store information temporarily, while the information could be
- a byte of data to be processed, or
- an address pointing to the data to be fetched
The 8 bits of a register are shown from MSB D7 to the LSB D0
MOV destination, soruce
purpose of this command copy source to destination.
symbol "#" shows that it is value (number)
Example:
MOV A,#55H ;load value 55H into reg. A
;NOTE: Method use to transfer value is known as
;Direct Addressing mode
MOV R0,A ;copy contents of A into R0
;(now A=R0=55H)
;NOTE: Method use to transfer value is known as
;Register Addressing mode
MOV R1,A ;copy contents of A into R1
;(now A=R0=R1=55H)
MOV R2,A ;copy contents of A into R2
;(now A=R0=R1=R2=55H)
MOV R3,#95H ;load value 95H into R3
;(now R3=95H)
MOV A,R3 ;copy contents of R3 into A
;now A=R3=95H
important points
- MOV A, #23H
- if you forgot to add symbol "#" then it will consider it as location. With this symbol it will consider it as value.
- MOV R5, #0F9H
- Add an extra 0 before HEX number A to F to indicate that it isis a hex number and not a letter as done in example; MOV R5, #0F9H
- If values 0 to F moved into an 8-bit register, the rest of the bits are assumed all zeros
- “MOV A, #5”, the result will be A=05; i.e., A= 00000101 in binary
- Moving a value that is too large into a register will cause an error
- MOV A, #7F2H ; ILLEGAL: 7F2H>(FFH) 8 bits
ADD command
ADD A, source
The ADD instruction tells the CPU to add the source byte to accumulator register A and put the result in register A
- Source operand can be either a register or immediate data, but the destination must always be register A
- Remember: “ADD R4, A” and “ADD R2, #12H” are invalid since A must be the destination of any arithmetic operation
Example:
MOV A, #25H ;load 25H into A
MOV R2, #34H ;load 34H into R2
ADD A, R2 ;add R2 to Accumulator
;(A = A + R2)
There are always many ways to write the same program, depending on the registers used
MOV A, #25H ;load one operand
;into A (A=25H)
ADD A, #34H ;add the second
;operand 34H to A
No comments:
Post a Comment