Statement: Subtract the 16-bit number stored in memory locations 2002H and 2003H from the 16-bit number stored in memory locations 2000H and 2001H. The most significant bytes of the two numbers are stored in memory locations 2001H and 2003H. Store the result in memory locations 2004H and 2005H. The most significant byte is stored in memory location 2005H.
Example:
(2000H) = 19H
(2001H) = 6AH
(2002H) = 15H
(2003H) = 5CH
Result = 6A19H - 5C15H =0E04H
(2004H) = 04H
(2005H) = 0EH
Program:
LHLD 2000H ; Obtain the first 16-bit number in HL register pair
XCHG ; Save the first 16-bit number in DE register pair
LHLD 2002H ; Obtain the second 16-bit number in HL register pair
MOV A, E ; Move the lower byte of the first number into accumulator
SUB L ; Subtract the lower byte of second number from the accumulator
MOV L, A ; Store the result in L register
MOV A, D ; Move the higher byte of the first number into accumulator
SBB H ; Subtract the higher byte of second number with the borrow
MOV H, A ; Store the result in H register
SHLD 2004H ; Store the 16-bit result in location 2004H and 2005H
HLT ; Terminate program execution
Comments
Post a Comment