You are on page 1of 10

MPLAB by alekya racha

1.8-bit  addition  using  immediate


  mode
1000:0100        MOV  AL,05      05 B0
1000:0102        ADD  AL,06       04 06
1000:0104        INT3                         CC
OUTPUT:           select  REGISTER
                             NAME
                             AX   000B=ANS
 
 

2.8-bit addition using  direct


 addressing mode
1000:0100        MOV  AL,[2200]            22 00 A0
1000:0103        ADD  AL,[2201]        22 01 06 02
1000:0107        MOV  [3000],AL             30 00 A2
1000:010A        INT3                                              CC
INPUT:      [2200]=05
                   [2201]=06
OUTPUT:           ANS  in [3000]=0B
 
 
3.8-bit subtraction  using  immediate
  mode.
1000:0100        MOV  AL,0A     0A B0
1000:0102        SUB  AL,06        06 2C       
1000:0104        INT3                         CC
OUTPUT: ANS  in  REGISTER AX
                   Select  REGISTER
                   NAME       AX = 0004
 
 

4.8-bit  subtraction  using  direct


  addressing  mode.
1000:0100        MOV  AL,[2200]             22 00 A0
1000:0103        SUB  AL,[2201]          22 01 06 2A
1000:0107        MOV  [3000],AL             30 00 A2
1000:010A        INT3                                              CC
INPUT:      [2200] = 0A
                   [2201] = 06
OUTPUT:  ANS  in [3000] = 04
 
 

5.16-bit addition  using  immediate


  addressing  mode.
1000:0100        MOV  AX,1234          12 34 B8
1000:0103        ADD  AX,7620            76 20 05
1000:0106        INT3                                         CC
OUTPUT:           ANS  in REGISTER
                             NAME  AX   8854
 
 

6.16-bit  addition  using  direct


  addressing mode.
1000:0100        MOV  AX,[2000]             20 00 A1
1000:0103        ADD  AX,[2002]         20 02 06 03
1000:0107        MOV  [2200],AX           22 00 A3
1000:010A        INT3                                             CC
INPUT:      [2000] = 34
                   [2001] = 12
                   [2002] = 78
                   [2003] = 56
OUTPUT:           ANS  in  [2200] =
 
 
7.16-bit subtraction  using direct 
 addressing  mode.
1000:0100        MOV  AX,[2000]              
1000:0103        SUB  AX,[2002]         
1000:0107        MOV  [2200],AX       22 00 A3
1000:010A        INT3                                         CC
INPUT:      [2000] = 99
                   [2001] = 99
                   [2002] = 9C
                   [2003] = 36
OUTPUT:  [2200] = FD
                   [2201] = 62
                   ANS  is  62FD
 
 

8.16-bit subtraction  using  immediate


  mode.
1000:0100        MOV  AX,9999          99 99 B8
1000:0103        SUB  AX,369C            36 9C 2D
1000:0106        INT3                                         CC
OUTPUT:           select REGISTER
                             NAME   AX  62FD
 
 

9.Addition   of  three  8-bit  numbers


  using  immediate  mode.
1000:0100        MOV  AL,05      AC B0
1000:0102        ADD  AL,06       11 04
1000:0104        ADC  AL,07        0F 14
1000:0106        INT3                         CC
OUTPUT:           select  REGISTER
                             NAME  AX  12
 
 

10.Addition   of  three  16-bit


  numbers  using  direct  addresing
  mode.
1000:0100        MOV  AX,[2000]            20 00 A1
1000:0103        ADD  AX,[2002]         20 02 06 03
1000:0107        ADC  AX,[2004]         20 04 06 13
1000:010B        MOV  [2200],AX            22 00 A3
1000:010E        INT3                                              CC
INPUT:      [2000] = 34
                   [2001] = 12
                   [2002] = 34
                   [2003] = 12
                   [2004] = 34
                   [2005] = 12
OUTPUT:  [2200] = 9C
                   [2201] = 36
                   ANS  is  369C
 
 

11.swap two  16-bit  numbers  using


  xchg  instruction.
1000:0100        MOV  AX,[2000]            20 00 A1
1000:0103        XCHG  AX,[2002]       20 02 06 87
1000:0107        MOV  [2000],AX            20 00 A3
1000:010A        INT3                                              CC
INPUT:      [2000] = 34
                   [2001] = 12
                   [2002] = 78
                   [2003] = 56
OUTPUT:  [2000] = 78
                   [2001] = 56
                   [2002] = 34
                   [2003] = 12
 
 

12.swap two  16-bit  numbers using


  two  temporary registers(direct
  addresing mode).
1000:0100        MOV  AX,[2000]             20 00 A1
1000:0103        MOV  BX,[2002]        20 02 1E 8B
1000:0107        MOV  [2002],AX            20 02 A3
1000:010A        MOV  [2000],BX        20 00 1E 89
1000:010E        INT3                                              CC
INPUT:      [2000] = 34
                   [2001] = 12
                   [2002] = 78
                   [2003] = 56
OUTPUT:  [2000] =78
                   [2001] =56
                   [2002] = 34
                   [2003] = 12
 
 

13.Swap two 16-bit numbers  using


  one  temporary register.
1000:0100        MOV  AX,[2000]       20 00 A1
1000:0103        MOV  [2050],AX       20 50 A3
1000:0106        MOV  AX,[2002]       20 02 A1
1000:0109        MOV  [2000],AX       20 00 A3
1000:010C        MOV  AX,[2050]       20 50 A1
1000:010F         MOV  [2002],AX       20 02 A3
1000:0112        INT3                                        CC
INPUT: Same as above program.
OUTPUT:Same as above program.
 
 

14.Perform 32-bit  addition using


  immediate  mode.
1000:0100        MOV  AX,5678          56 78 B8
1000:0103        ADD  AX,5678            56 78 05
1000:0106        MOV  [2200],AX       22 00 A3
1000:0109        MOV  AX,1234          12 34 B8
1000:010C        ADC  AX,1234            12 34 15
1000:010F         MOV  [2202],AX       22 02 A3
1000:0112        LAHF                                        9F
1000:0113        MOV  [2204],AH       22 04 26
1000:0117        INT3                                         CC
OUTPUT:  [2200] = F0
                   [2201] = AC
                   [2202] = 68
                   [2203] = 24
ANS  IS  2468ACF0
 
 

15.Perform  32-bit  addition using


  direct  addressing  mode.
1000:0100        MOV  AX,[2000]            20 00 A1
1000:0103        ADD  AX,[3000]         30 00 06 03
1000:0107        MOV  [2200],AX            22 00 A3
1000:010A        MOV  AX,[2002]            20 02 A1
1000:010D        ADC  AX,[3002]         30 02 06 13
1000:0111        MOV  [2202],AX             22 02 A3
1000:0114        LAHF                                              9F
1000:0115        MOV  [2204],AH       22 04 26 88
1000:0119        INT3                                               CC
INPUT:      [2000] = 78                 [3000] = 78
                   [2001] = 56                 [3001] = 56
                   [2002] = 34                 [3002] = 34
                   [2003] = 12                 [3003] = 12
OUTPUT:  [2200] = F0
                   [2201] = AC
                   [2202] = 68
                   [2203] = 24

You might also like