Вы находитесь на странице: 1из 13

MICROPROCESSOR LAB PROGRAMS

1.WAP TO PERFORM ARTHEMATIC OPERATOPN ON TWO 16BIT NUMBERS USING LOOPS .MODEL SMALL .STACK 64H .DATA M DB 10,13,'ENTER 1 FOR ADD,2 FOR SUB,3 FOR MUL, 4 FOR DIV $' M1 DB 10,13,'ENTERED NUMBER IS INVALID $' N1 DW 2048H N2 DW 0002H .CODE START: MOV AX,@DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET M INT 21H XOR AX,AX MOV AH,01 INT 21H PUSH AX SUB AX,0130H MOV CL,AL MOV AX,N1 MOV BX,N2 CMP CL,01H JNZ SECOND ADD AX,BX JMP LAST SECOND:CMP CL,02H JNZ THIRD SUB AX,BX JMP LAST THIRD:CMP CL,03H JNZ FOUR MUL BX JMP LAST FOUR:CMP CL,04H JNZ DOWN DIV BX LAST:MOV DI,0000H MOV [DI],AX MOV AH,4CH INT 21H DOWN:MOV AH,09H MOV DX,OFFSET M1 INT 21H END START HLT RESULT:

2.WAP TO PERFORM ARTHEMATIC OPERATOPN ON TWO 16BIT NUMBERS .MODEL SMALL .STACK 64H .DATA N1 dw 2048H N2 dw 0002H .CODE START: MOV AX,@DATA MOV DS,AX XOR AX,AX MOV AX,N1 MOV BX,N2 ADD AX,BX MOV SI,1000H MOV [SI],AX MOV AX,N1 SUB AX,BX MOV SI,1002H MOV [SI],AX MOV AX,N1 MUL BX MOV SI,1004H MOV [SI],DX MOV [SI+2],AX MOV AX,N1 DIV BX MOV SI,1008H MOV [SI],DX MOV [SI+2],AX END START hlt RESULT:

3.WAP TO PERFORM ARTHEMATIC OPERATION ON MULTIPLE NUMBERS .MODEL SMALL .STACK 64H .DATA M db 10,13,'ENTER 1 FOR ADD,2 FOR SUB $' M1 db 10,13,'ENTERED NUMBER IS INVALID $' N1 db 10H,09H,08H,06H,05H N2 dw 000H .CODE START: MOV AX,@DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET M INT 21H XOR AX,AX MOV AH,01 INT 21H PUSH AX SUB AX,0130H MOV BL,AL LEA SI,N1 MOV CX,0005H MOV AX,N2 CMP BL,01H JNZ SECOND FIRST:ADD AL,[SI] DEC CX INC SI CMP CX,0000H JNZ FIRST JMP LAST SECOND:CMP BL,02H JNZ DOWN MOV AX,[SI] DEC CX INC SI AGAIN:SUB AL,[SI] INC SI DEC CX CMP CX,0000H JNZ AGAIN LAST:MOV DI,0000H MOV [DI],AX MOV AH,4CH INT 21H DOWN:MOV AH,09H MOV DX,OFFSET M1 INT 21H END START HLT RESULT:

4.WAP TO PERFORM ASCII ARTHEMATIC ON TWO 8 BIT NUMBERS .MODEL SMALL .STACK 64H .DATA N1 db 39H N2 db 33H .CODE START: MOV AX,@DATA MOV DS,AX XOR AX,AX MOV AL,N1 MOV BL,N2 ADD AL,BL AAA MOV SI,1000H MOV [SI],AX MOV AL,N1 SUB AL,BL AAS MOV SI,1002H MOV [SI],AX MOV AL,N1 MUL BL AAM MOV SI,1004H MOV [SI],AX END START hlt RESULT: 5.WAP TO PERFORM AAD OPERATION ON TWO 8 BIT NUMBERS .MODEL SMALL .STACK 64H .DATA N1 DW 0509H N2 DB 07H R DB ? Q DB ? .CODE START: MOV AX,@DATA MOV DS,AX MOV AX,N1 MOV CL,N2 AAD DIV CL MOV R,AH MOV Q,AL END START hlt RESULT:

6.WAP TO CONVERT PACKED BCD TO UN PACKED BCD .MODEL SMALL .STACK 64H .DATA N1 DW 1234H N2 DB 04H RES DW ? .CODE START: MOV AX,@DATA MOV DS,AX XOR AX,AX MOV AX,N1 MOV CL,N2 MOV DX,AX MOV AH,AL ROR AH,CL AND AX,0F0FH XCHG AL,AH MOV DL,DH ROL DH,CL AND DX,0F0FH XCHG DL,DH MOV RES,DX MOV RES+2,AX END START hlt RESULT: 7.WAP TO CONVERT BCD TO EQUIVALENT ASCII .MODEL SMALL .STACK 64H .DATA N1 DB 39H N2 DB 04H RES DW ? .CODE START: MOV AX,@DATA MOV DS,AX XOR AX,AX MOV AL,N1 MOV CL,N2 MOV AH,AL ROR AH,CL AND AX,0F0FH ADD AX,3030H XCHG AH,AL MOV RES,AX END START hlt RESULT:

8.WAP TO PERFORM ALL SHIFT OPERATIONS .MODEL SMALL .STACK 64H .DATA N1 dW 1234H N2 dB 02H .CODE START: MOV AX,@DATA MOV DS,AX XOR AX,AX MOV AX,N1 MOV CL,N2 SAL AX,CL MOV SI,1000H MOV [SI],AX MOV AX,N1 SHL AX,CL MOV SI,1002H MOV [SI],AX MOV AX,N1 SAR AX,CL MOV SI,1004H MOV [SI],AX MOV AX,N1 SHR AX,CL MOV SI,1006H MOV [SI],AX END START hlt RESULT:

9.WAP TO PERFORM ALL RORATE OPERATIONS .MODEL SMALL .STACK 64H .DATA M db 10,13,'ENTER 1 FOR ROL,2 FOR RCL,3 FOR ROR, 4 FOR RCR $' M1 db 10,13,'ENTERED NUMBER IS INVALID $' N1 dw 2048H N2 dB 02H .CODE START: MOV AX,@DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET M INT 21H XOR AX,AX MOV AH,01 INT 21H PUSH AX SUB AX,0130H MOV CH,AL MOV AX,N1 MOV CL,N2 CMP CH,01H JNZ SECOND ROL AX,CL JMP LAST SECOND:CMP CH,02H JNZ THIRD STC RCL AX,CL JMP LAST THIRD:CMP CH,03H JNZ FOUR ROR AX,CL JMP LAST FOUR:CMP CH,04H JNZ DOWN CLC RCR AX,CL LAST:MOV DI,0000H MOV [DI],AX MOV AH,4CH INT 21H DOWN:MOV AH,09H MOV DX,OFFSET M1 INT 21H END START HLT RESULT:

10.WAP TO REVERSE A STRING .MODEL SMALL .STACK 64H .DATA M1 db 10,13,'ENTER THE STRING:$' M2 db 10,13,'REVERSE STRING:$' BUFF db 80 db 0 db 80 dup(0) .CODE START: MOV AX,@DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET M1 INT 21H MOV AH,0AH LEA DX,BUFF INT 21H MOV AH,09H MOV DX,OFFSET M2 INT 21H LEA BX,BUFF INC BX MOV CH,00H MOV CL,BUFF+1 MOV DI,CX BACK:MOV DL,[BX+DI] MOV AH,02H INT 21H DEC DI JNZ BACK MOV AH,4CH INT 21H END START hlt RESULT:

11. WAP TO PERFORM RECURSION OPERATION .MODEL SMALL .STACK 64H .DATA N1 db 07H RES DW ? .CODE START: MOV AX,@DATA MOV DS,AX XOR AX,AX XOR CX,CX MOV AL,N1 MOV CL,N1 DEC CL FACT:MUL CX DEC CL JNZ FACT XCHG AH,AL MOV RES,AX END START HLT RESULT: 12. WAP TO PERFORM TO SORT GIVEN NUMBERS IN ASCENDING ORDER .MODEL SMALL .STACK 64H .DATA ARRAY db 06,59H,25H,13H,17H,57H,00H .CODE START: MOV AX,@DATA MOV DS,AX MOV CL,ARRAY FIRST:MOV CH,ARRAY DEC CH XOR DI,DI LEA BX,ARRAY SECOND:MOV DL,[BX+DI+1] CMP DL,[BX+DI+2] JBE THIRD MOV AH,[BX+DI+2] MOV [BX+DI+2],DL MOV [BX+DI+1],AH THIRD:INC DI DEC CH JNZ SECOND DEC CL JNZ FIRST END START HlT RESULT:

13. WAP TO PERFORM TO SORT GIVEN NUMBERS IN DESCENDING ORDER .MODEL SMALL .STACK 64H .DATA ARRAY db 06,59H,25H,13H,17H,57H,00H .CODE START: MOV AX,@DATA MOV DS,AX MOV CL,ARRAY FIRST:MOV CH,ARRAY DEC CH XOR DI,DI LEA BX,ARRAY SECOND:MOV DL,[BX+DI+1] CMP DL,[BX+DI+2] JAE THIRD MOV AH,[BX+DI+2] MOV [BX+DI+2],DL MOV [BX+DI+1],AH THIRD:INC DI DEC CH JNZ SECOND DEC CL JNZ FIRST END START HlT RESULT:

14. WAP TO COMPARE TWO STRINGS .MODEL SMALL .STACK 64H .DATA STRING1 DB "SYSTEM$" STRING2 DB "LAPTOP$" M1 DB 'BOTH STRINGS ARE EQUAL$' M2 DB 'BOTH STRINGS ARE NOT EQUAL$' .CODE START: MOV AX,@DATA MOV DS,AX LEA SI,STRING1 LEA DI,STRING2 MOV CX,0006H XOR AX,AX UP: MOV AL,[SI] MOV BL,[DI] CMP AL,BL JNZ DOWN INC SI INC DI LOOP UP MOV AH,09H MOV DX,OFFSET M1 INT 21H DOWN: MOV AH,09H MOV DX,OFFSET M2 INT 21H END START HLT RESULT:

15. WAP TO INSERT A NUMBER IN A GIVEN ARRAY OF NUMBERS .MODEL SMALL .STACK 100H .DATA ARRAY DB 09,53H,20H,30H,25H,50H,09H,70H,13H,90H NUM1 DB 04 NUM2 DB 18H .CODE START: MOV AX,@DATA MOV DS,AX LEA BX,ARRAY MOV CL,ARRAY MOV DI,09 MOV SI,04 MOV DL,NUM1 SUB CL,DL INC CL UP: MOV DH,[BX+DI] MOV [BX+DI+1],DH DEC DI DEC CL JNZ UP MOV AL,NUM2 MOV [BX+SI],AL END START HLT RESULT: 16. WAP TO DELETE A NUMBER FROM A GIVEN ARRAY OF NUMBERS .MODEL SMALL .STACK 100H .DATA ARRAY DB 09,53H,20H,30H,25H,50H,09H,70H,13H,90H NUM DB 05 .CODE START: MOV AX,@DATA MOV DS,AX LEA BX,ARRAY MOV CL,NUM MOV CH,09 SUB CH,CL MOV DI,05 UP: MOV DH,[BX+DI+1] MOV [BX+DI],DH INC DI DEC CH JNZ UP END START HLT RESULT:

17. WAP A PROGRAM TO PERFORM READING A CHARACTER FROM KEY BOARD AND DISPLAYING A STRING .MODEL SMALL .STACK 100H .DATA N DB 10,13,'ENTER THE LETTER TO BE READ $' .CODE START: MOV AX,@DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET N INT 21H MOV AH,01H INT 21H PUSH AX SUB AH,01H END START HLT RESULT:

Вам также может понравиться