Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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