Arithmetic Instructions 8085 8085 Microprocessor by Ravinder Nath Rajotiya - December 14, 2020May 10, 20210 Share on Facebook Share Send email Mail Print Print Arithmetic Instructions: The different instructions under this category are listed in table below: 1 ADDReg/Mem Adds accumulator with Reg or Memory word Acc ← Acc + Reg/Mem 2 ADC Reg/Mem Adds acc with carry to Reg or Memory Acc ← Acc + Reg/Mem + Cy 3 ADI 8-bit data Adds 8-bit immediate data to Accumulator Acc ← Acc + 8-bit data 4 ACI 8-bit data Adds with carry 8-bit data to Accumulator Acc ← Acc + 8-bit data + Cy 5 DAD Rp Add Register pair to HL HL ← HL + Rp 6 SUB Reg/Mem Subtract reg/Mem from accumulator Acc ← Acc + Reg/Mem 7 SBB Reg / Mem Subtract reg/Mem from acc with borrow Acc ← Acc – Reg/Mem – Cy 8 SUI 8-bit data subtract 8-bit data from acc Acc ← Acc – 8-bit data 9 SBI 8-bit data subtract 8-bit data from acc with borrow Acc ← Acc – 8-bit data – Cy 10 INR Reg / Mem Increments the content of Register or Memory 11 DCR Reg / Mem Increments the content of Register or Memory 12 INX Reg pair Increments content of a register pair 13 DCX Reg Pair Decrements the content of Register Pair 14 DAA Decimal Adjust Accumulator, when executed converts the hex result in Decimal Example programs: Ex-1: WAP in AL to add two 8-bit numbers Answer: MVI A, 55h MVI B, 45h ADD B STA 2050h HLT Ex-2: WAP in AL to fetch two data bytes from the memory, add them and store the result back to memory. Answer: Assuming that the data is at memory location 2020h and 2021h and after addition it is to be stored at memory location 2050h LXI H, 2020h MOV A, M INX H ADD M STA 2050h HLT Ex-3: WAP in AL to add two 16-bit numbers and store the result in memory location 2020h(low byte) and at 2021h(high Byte) Answer: Assuming that the numbers are known, so we can use immediate addressing mode to load the HL and DE registers with 16-bit immediate data. We can make used of DAD instruction to add two 16-bit numbers. The requirement of this instruction is that one number must be in HL, and another: LXI H, 2345H LXI D, 1234H DAD D XCHG LXI H, 2020H MOV M, E INX H MOV M, D HLT SECOND METHOD Assuming that the two 16-bit numbers are stored in memory at locations 2020,2021 and 2nd number at 2022h and 2023h. The low byte of two umbers are at 2020h and 2022h and the high byte of two numbers are at location2021h and 2023h. We would need two pointers to point to LSB of two numbers and since the memory active pointer is always the HL pair, we will need XCHG instruction to move to 2nd number. LXI H, 2020h LXI D, 2022h MOV A, M XCHG ADD M STA 2030h INX H INX D XCHG MOV A, H XCHG ADC M STA 2051h HLT Share on Facebook Share Send email Mail Print Print