├── complement(kit).asm ├── square(kit).asm ├── cube(kit).asm ├── StepperMotor(kit).asm ├── interfacing.asm ├── square.asm ├── cube.asm ├── factorial.asm ├── factorial(userinput).asm ├── largest.asm ├── searching.asm ├── odd-even.asm ├── addition.asm ├── palindrome.asm └── subtraction.asm /complement(kit).asm: -------------------------------------------------------------------------------- 1 | MOV AX,[3000] 2 | NOT AX 3 | MOV [4000],AX 4 | HLT 5 | -------------------------------------------------------------------------------- /square(kit).asm: -------------------------------------------------------------------------------- 1 | MOV AX,[3000] 2 | MUL AX 3 | MOV [4000],AX 4 | MOV [4002],DX 5 | HLT 6 | -------------------------------------------------------------------------------- /cube(kit).asm: -------------------------------------------------------------------------------- 1 | MOV AX,[3000] 2 | MOV BX,[3000] 3 | MUL BX 4 | MUL BX 5 | MOV [4000],AX 6 | MOV [4002],DX 7 | HLT 8 | -------------------------------------------------------------------------------- /StepperMotor(kit).asm: -------------------------------------------------------------------------------- 1 | MOV AL,80 2 | OUT 46,AL 3 | MOV CL,04 4 | MOV BX,0500 5 | MOV AL,[BX] 6 | OUT 40,AL 7 | CALL 0415 8 | INC BX 9 | LOOPNZ 0409 10 | JMP 0404 11 | PUSH CX 12 | MOV CX,FFFF 13 | LOOPNZ 0419 14 | POP CX 15 | -------------------------------------------------------------------------------- /interfacing.asm: -------------------------------------------------------------------------------- 1 | 0400: MOV AL,00H 2 | 0402: OUT 22H,AL 3 | 0404: MOV AL,02DH 4 | 0406: OUT 22H,AL 5 | 0408: MOV AL,90H 6 | 040A: OUT 22H,AL 7 | 040C: MOV BX,041E 8 | 040F: MOV SI,0 9 | 0412: MOV CX,7 10 | 0415: REP1: MOV AL,[BX+SI] 11 | 0417: OUT 20H,AL 12 | 0419: INC SI 13 | 041A: LOOPNZ REP 14 | -------------------------------------------------------------------------------- /square.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | SQUARE DW ? 3 | NUM DW 5 4 | ENDS DATA 5 | 6 | CODE SEGMENT 7 | ASSUME CS:CODE,DS:DATA 8 | START:MOV AX,DATA 9 | MOV DS,AX 10 | MOV AX,[NUM] 11 | IMUL AX 12 | MOV [SQUARE],AX 13 | 14 | MOV AH,4CH 15 | INT 21H 16 | CODE ENDS 17 | END START 18 | -------------------------------------------------------------------------------- /cube.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | CUBE DW ? 3 | NUM DW 5 4 | ENDS DATA 5 | 6 | CODE SEGMENT 7 | ASSUME CS:CODE,DS:DATA 8 | START:MOV AX,DATA 9 | MOV DS,AX 10 | MOV AX,[NUM] 11 | IMUL AX 12 | IMUL [NUM] 13 | MOV [CUBE],AX 14 | 15 | MOV AH,4CH 16 | INT 21H 17 | CODE ENDS 18 | END START 19 | -------------------------------------------------------------------------------- /factorial.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | FACT DW ? 3 | NUM DB 5 4 | ENDS DATA 5 | 6 | CODE SEGMENT 7 | ASSUME DS:DATA, CS:CODE 8 | START: MOV AX,DATA 9 | MOV DS,AX 10 | MOV CL,NUM 11 | MOV AX,0001 12 | MOV BX,0001 13 | AGAIN: MUL BX 14 | INC BX 15 | DEC CL 16 | JNZ AGAIN 17 | MOV BX,AX 18 | MOV FACT,AX 19 | 20 | MOV AH,4CH 21 | INT 21H 22 | CODE ENDS 23 | END START 24 | -------------------------------------------------------------------------------- /factorial(userinput).asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | MSG DB 10,13,"ENTER THE NUMBER WHOSE FACT TO BE FOUND:$" 3 | FACT DB ? 4 | DATA ENDS 5 | 6 | CODE SEGMENT 7 | ASSUME DS:DATA, CS:CODE 8 | START: 9 | MOV AX,DATA 10 | MOV DS,AX 11 | LEA DX,MSG 12 | MOV AH,09H 13 | INT 21H 14 | MOV AH,01H 15 | INT 21H 16 | MOV CL,AL 17 | MOV AX,0001H 18 | MOV BX,0001H 19 | AGAIN: 20 | MUL BX 21 | INC BX 22 | DEC CL 23 | JNZ AGAIN 24 | MOV BX,AX 25 | MOV FACT,BX 26 | MOV AH,4CH 27 | INT 21H 28 | CODE ENDS 29 | END START 30 | -------------------------------------------------------------------------------- /largest.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | ARRAY DW 1111,2222,3333,4444 3 | COUNT DB 4 4 | LARGEST DW ? 5 | ENDS DATA 6 | 7 | CODE SEGMENT 8 | ASSUME CD:CODE,DS:DATA 9 | START:MOV AX,DATA 10 | MOV DS,AX 11 | MOV CL,COUNT 12 | LEA SI,ARRAY 13 | MOV BX,[SI] 14 | INC SI 15 | INC SI 16 | AGAIN:CMP [SI],BX 17 | JL NOCHANGE 18 | MOV BX,[SI] 19 | NOCHANGE:INC SI 20 | INC SI 21 | DEC CL 22 | JNZ AGAIN 23 | MOV LARGEST,BX 24 | 25 | MOV AH,4CH 26 | INT 21H 27 | CODE ENDS 28 | END START 29 | -------------------------------------------------------------------------------- /searching.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | ARRAY DW 1111,2222,3333,4444,5555 3 | ARRAYSIZE DB 5 4 | MSG DB 10,13,"FOUND$" 5 | MSG1 DB 10,13,"NOT FOUND$" 6 | DATA ENDS 7 | 8 | CODE SEGMENT 9 | ASSUME CS:CODE,DS:DATA 10 | START: 11 | MOV AX,DATA 12 | MOV DS,AX 13 | MOV CX,ARRAYSIZE 14 | LEA SI,ARRAY 15 | MOV AX,5555 16 | 17 | NEXT: 18 | CMP AX,[SI] 19 | JZ FOUND 20 | 21 | INC SI 22 | INC SI 23 | DEC CX 24 | JNZ NEXT 25 | 26 | NOT FOUND: 27 | LEA DX,MSG1 28 | MOV AH,09H 29 | INT 21H 30 | JMP EXIT 31 | 32 | FOUND: 33 | LEA DX,MSG 34 | MOV AH,09H 35 | INT 21H 36 | 37 | EXIT: 38 | MOV AH,4CH 39 | INT 21H 40 | 41 | 42 | 43 | CODE ENDS 44 | END START 45 | -------------------------------------------------------------------------------- /odd-even.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | RESULT DW ? 3 | MSG DB 10,13,"ENTER THE NUMBER :$" 4 | MSG2 DB 10,13,"IS EVEN$" 5 | MSG3 DB 10,13,"IS ODD$" 6 | 7 | DATA ENDS 8 | 9 | CODE SEGMENT 10 | ASSUME CS:CODE,DS:DATA 11 | START: 12 | MOV AX,DATA 13 | MOV DS,AX 14 | 15 | LEA DX,MSG 16 | MOV AH,09H 17 | INT 21H 18 | 19 | MOV AH,01H 20 | INT 21H 21 | 22 | MOV BL,AL 23 | MOV AX,BX 24 | MOV CX,0002H 25 | DIV CX 26 | MOV RESULT,DL 27 | CMP DL, 0 28 | JZ EVEN 29 | 30 | LEA DX,MSG3 31 | MOV AH,09H 32 | INT 21H 33 | JMP EXIT 34 | 35 | EVEN: 36 | LEA DX,MSG2 37 | MOV AH,09H 38 | INT 21H 39 | 40 | EXIT: 41 | MOV AH,4CH 42 | INT 21H 43 | 44 | CODE ENDS 45 | END START 46 | -------------------------------------------------------------------------------- /addition.asm: -------------------------------------------------------------------------------- 1 | ASSUME DS:DATA, CS:CODE 2 | 3 | DATA SEGMENT 4 | 5 | MSG DB 0AH,0DH,"ENTER FIRST NUMBER:$" 6 | MSG2 DB 0AH,0DH,"ENTER SECOND NUMBER:$" 7 | MSG3 DB 0AH,0DH,"SUM IS:$" 8 | 9 | DATA ENDS 10 | 11 | CODE SEGMENT 12 | START: 13 | MOV AX,DATA 14 | MOV DS,AX 15 | LEA DX,MSG 16 | MOV AH,09H 17 | INT 21H 18 | MOV AH,01H 19 | INT 21H 20 | MOV BH,AL 21 | MOV AH,01H 22 | INT 21H 23 | MOV BL,AL 24 | 25 | LEA DX,MSG2 26 | MOV AH,09H 27 | INT 21H 28 | MOV AH,01H 29 | INT 21H 30 | MOV CH,AL 31 | MOV AH,01H 32 | INT 21H 33 | MOV CL,AL 34 | 35 | MOV AL,BL 36 | MOV AH,00H 37 | ADD AL,CL 38 | AAA 39 | ADD AX,3030H 40 | MOV BL,AL 41 | MOV AL,AH 42 | MOV AH,00H 43 | ADD AL,BH 44 | ADD AL,CH 45 | AAA 46 | ADD AX,3030H 47 | MOV BH,AL 48 | MOV CL,AH 49 | LEA DX,MSG3 50 | MOV AH,09H 51 | INT 21H 52 | 53 | MOV DL,CL 54 | MOV AH,02H 55 | INT 21H 56 | MOV DL,BH 57 | MOV AH,02H 58 | INT 21H 59 | MOV DL,BL 60 | MOV AH,02H 61 | INT 21H 62 | MOV AH,4CH 63 | INT 21H 64 | CODE ENDS 65 | END START 66 | -------------------------------------------------------------------------------- /palindrome.asm: -------------------------------------------------------------------------------- 1 | DATA SEGMENT 2 | MSG DB 10,13,"ENTER THE STRING: $" 3 | MSG1 DB 10,13,"PALINDROME $" 4 | MSG2 DB 10,13,"NOT A PALINDROME $" 5 | STR1 DB 50 DUP (0) 6 | DATA ENDS 7 | 8 | CODE SEGMENT 9 | ASSUME CS:CODE,DS:DATA 10 | START: 11 | MOV AX,DATA 12 | MOV DS,AX 13 | LEA DX,MSG 14 | MOV AH,09H 15 | INT 21H 16 | LEA SI,STR1 17 | LEA DI,STR1 18 | MOV AH,01H 19 | 20 | NEXT: 21 | INT 21H 22 | CMP AL,0DH 23 | JE TERMINATE 24 | MOV [DI],AL 25 | INC DI 26 | JMP NEXT 27 | 28 | 29 | 30 | TERMINATE: 31 | MOV AL,"$" 32 | MOV [DI],AL 33 | 34 | DO THIS: 35 | DEC DI 36 | MOV AL,[SI] 37 | CMP [DI],AL 38 | JNE NOTPAL 39 | INC SI 40 | CMP SI,DI 41 | JL DO THIS 42 | 43 | 44 | NOTPAL: 45 | LEA DX,MSG2 46 | MOV AH,09H 47 | INT 21H 48 | 49 | PAL: 50 | LEA DX,MSG1 51 | MOV AH,09H 52 | INT 21H 53 | 54 | EXIT: 55 | MOV AH,4CH 56 | INT 21H 57 | 58 | 59 | CODE ENDS 60 | END START 61 | -------------------------------------------------------------------------------- /subtraction.asm: -------------------------------------------------------------------------------- 1 | ASSUME DS:DATA,CS:CODE 2 | 3 | DATA SEGMENT 4 | MSG DB 0AH,0DH,"ENTER FIRST NUMBER:$" 5 | MSG2 DB 0AH,0DH,"ENTER SECOND NUMBER:$" 6 | MSG3 DB 0AH,0DH,"DIFFERENCE IS:$" 7 | MSG4 DB 0AH,0DH,"DIFFERENCE IS NEGATIVE :$" 8 | 9 | CODE SEGMENT: 10 | START: 11 | MOV AX,DATA 12 | MOV DS,AX 13 | 14 | LEA DX,MSG 15 | MOV AH,09H 16 | INT 21H 17 | MOV AH,01H 18 | INT 21H 19 | MOV BH,AL 20 | MOV AH,01H 21 | INT 21H 22 | MOV BL,AL 23 | 24 | LEA DX,MSG2 25 | MOV AH,09H 26 | INT 21H 27 | MOV AH,01H 28 | INT 21H 29 | MOV CH,AL 30 | MOV AH,01H 31 | INT 21H 32 | MOV CL,AL 33 | 34 | CMP CX,BX 35 | J ZERO 36 | ZNC NEGATIVE 37 | CLC 38 | 39 | MOV AL,BL 40 | MOV AH,00H 41 | SUB AL,CL 42 | AAS 43 | MOV CL,AH 44 | ADD AL,30H 45 | MOV BL,AL 46 | 47 | MOV AH,00H 48 | SUB BH,CH 49 | MOV AL,BH 50 | AAS 51 | ADD AL,CL 52 | ADD AL,30H 53 | MOV BH,AL 54 | JMP DISPO 55 | JMP FULL 56 | 57 | 58 | ZERO: 59 | LEA DX,MSG3 60 | MOV AH,09H 61 | INT 21H 62 | MOV AX,BX 63 | SUB AX,CX 64 | MOVE BH,AH 65 | ADD AL,30H 66 | MOV DL,AL 67 | MOVE AH,02H 68 | INT 21H 69 | ADD BH,30H 70 | MOV DL,BH 71 | MOVE AH,02H 72 | INT 21H 73 | JMP FULL 74 | 75 | 76 | 77 | NEGATIVE: 78 | MOV AL,CL 79 | MOV AH,00H 80 | SUB AL,BL 81 | AAS 82 | MOV BL,AH 83 | ADD AL,30H 84 | MOV CL,AL 85 | MOV AH,00H 86 | SUB CH,BH 87 | MOV AL,CH 88 | AAS 89 | ADD AL,BL 90 | ADD AL,30H 91 | MOV CH,AL 92 | 93 | LEA DX,MSG4 94 | MOV AH,09H 95 | INT 21H 96 | MOV DL,CH 97 | MOV AH,02H 98 | INT 21H 99 | MOV DL,CL 100 | MOV AH,02H 101 | INT 21H 102 | JMP FULL 103 | 104 | 105 | DISPO: 106 | LEA DX,MSG3 107 | MOV AH,09H 108 | INT 21H 109 | MOV DL,BH 110 | MOV AH,02H 111 | INT 21H 112 | MOV DL,BL 113 | MOV AH,02H 114 | INT 21H 115 | 116 | FULL: 117 | MOV AH,4CH 118 | INT 21H 119 | 120 | DATA ENDS 121 | CODE ENDS 122 | END START 123 | --------------------------------------------------------------------------------