Syntax: ORA R Where R can be any of the general purpose registers (A,B,C,D,E,H and L) Byte: 1byte Addressing Mode: Register Addressing Working: 1.This is 1 byte instruction. 2. Microprocessor will allocate first byte for opcode during execution. 3. During execution of this instruction, microprocessor will perform Logical ORing operation between content of Accumulator and operand register. 4. S, Z, P are modified. Cy and Ac are reset . Example: ORA B where [B] = 22H and [A]= 11H After execution of ORA B [A] =33 H [B] = 22H A= 11 = 0001 0001 B = 22 =0010 0010 A=33= 0011 0011 FLAG= 00 0 0 0 1 0 0 = 04H
Syntax: LDA 16-bit Where 16-bit is for memory location. Byte: 3byte Addressing Mode: Direct Addressing Working: for execution of this instruction, microprocessor will allocate first byte for opcode, second byte for lower order address and third byte for higher order. Example: LDA 4000H where [4000H] = A0 H After execution of LDA 4000H [A]= A0 H
Syntax: SBB R Where R can be any of the general purpose registers (A,B,C,D,E,H andL) Byte: 1byte Addressing Mode: Register Addressing Working: 1. 2. A= A- R-b 3. 4. Flag Example: SBB D where [D] = 10H , [A]= 22H and [c flag]= 1 After execution of SBB B [A] = 11H [D] = 10H // A= A-R-b => 22-10-1 =11H Program: write an ALP for subtraction of values present in Registers A ,B and C. Where A carries 44H and B carries 30H and C carries 10H. Store result at memory location 5000H. Label Mnemonics Comments Start: SUB B ; a=a - b// 44-30= 14h SBB C ; a= a - c - cy... A= 14-10-0 = 4h STA 5000H Stop: HLT Output: [5000H]= 04H
Comments
Post a Comment