Program 17: Find Square of An 8-Bit Number
Program 17: Find Square of An 8-Bit Number
Load H-L pair with the address of operands memory location. Move the operand from memory to register B.
Add B with A.
Decrement register C.
No
Is C = 0?
Stop
Page 1 of 3
8085 Programs
Program: Address 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 200A 200B 200C 200D 200E Explanation: This program finds the square of an 8-bit number stored in memory location 3000H. The square of a number is found by multiplying it by itself. Therefore, the number is added with itself and is also used as counter. Let us assume that the operands stored at memory location 3000H is 03H. Then, by using successive addition method, we get 03H + 03H + 03H = 09H. Initially, H-L pair is loaded with the address of the operand. The operand is moved to register B from memory location 3000H and then it is copied to register C. Accumulator is initialized to 00H. Register B is added with accumulator and the result is stored in accumulator. Register C (counter) is decremented by 1. Then, counter is checked for zero. If it hasnt become zero yet, then register B is again added with accumulator, and counter is again checked for zero. If counter becomes zero, then H-L pair is incremented and the result is moved from accumulator to memory location 3001H. INX MOV HLT H M, A ADD DCR JNZ B C 2007H MOV MOV MVI B, M C, M A, 00H Mnemonics LXI Operand H, 3000H Opcode 21 00 30 46 4E 3E 00 80 0D C2 07 20 23 77 76 Remarks Load H-L pair with address 3000H. Lower-order of 3000H. Higher-order of 3000H. Move the operand from memory to reg. B. Move the same number from reg. B to reg. C. Initialize accumulator with 00H. Immediate value 00H. Add B with A. Decrement reg. C (counter). Jump back to address 2007H if C 0. Lower-order of 2007H. Higher-order of 2007H. Increment H-L pair. Move the result from accumulator to memory. Halt.
Page 2 of 3
8085 Programs
Page 3 of 3