You are on page 1of 12

1.

ASCII ADJUSTMENT assume cs:code ds:data data segment opr1 equ 32h opr2 equ 5fh result db 02 dup(00) data ends code segment start: mov ax,data mov ds,ax mov bl,opr1 xor al,al mov al,opr2 add al,bl aaa mov result,al code ends end start 2.BCD ADJUSTMENT assume cs:code ds:data data segment opr1 equ 92h opr2 equ 55h result db 02 dup(00) data ends code segment start: mov ax,data mov ds,ax mov bl,opr1 xor al,al mov al,opr2 add al,bl daa mov result,al jnc msbo inc [result+1] msbo: mov ah,4ch int 21h code ends end start 3.BINARY SEAARCH ASSUME DS:DATA,CS:CODE DATA SEGMENT

LIST DB 12H,14H,22H,28H,30H,42H msg1: db "number not found", 0Dh,0Ah, 24h msg2: db "number found", 0Dh,0Ah, 24h DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV BL,03H MOV SI,OFFSET LIST XOR AX,AX MOV AL,06H MOV CL,00H MOV DL,05H LABEL1: CMP CL,DL JG A4 MOV BL,DL ADD DL,CL XOR AX,AX MOV AL,DL MOV DL,02H DIV DL XCHG AL,BL XCHG AL,DL MOV SI,OFFSET LIST ADD SI,BX MOV AL,[SI] CMP AL,42H JL A2 JG A1 JE A3 A1: DEC BL MOV DL,BL JMP LABEL1 A2: INC BL MOV CL,BL JMP LABEL1 A3: MOV JMP A5 A4: MOV JMP A5 DX, msg2 ; load offset of msg into dx.

DX, msg1

; load offset of msg into dx.

A5: MOV AH,09H INT 21H CODE ENDS END START

4.EVEN OR ODD ASSUME DS:DATA,CS:CODE DATA SEGMENT MSG1: DB "NUMBER IS EVEN", 0DH,0AH, 24H MSG2: DB "NUMBER IS ODD", 0DH,0AH, 24H DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV AX,6H ROR AX,1 JC A1 JMP A2 A1: MOV DX,MSG2 JMP A3 A2: MOV DX,MSG1 JMP A3 A3: MOV AH,09H INT 21H CODE ENDS END START 5.FACTORIAL assume cs:code ds:data data segment num equ 05h data ends code segment start: mov ax,data

mov ds,ax mov ax,01 mov cx,num a1: mul cx loop a1 code ends end start 6.FIBONACCI ASSUME CS:CODE DS:DATA DATA SEGMENT COUNT EQU 05H DATA ENDS CODE SEGMENT START: MOV BX,00H MOV AX,01H MOV DX,AX ADD AX,BX MOV CX,COUNT A1: MOV BX,DX MOV DX,AX ADD AX,BX LOOP A1 MOV AH,4CH INT 21H CODE ENDS END START 7.GREATEST ASSUME DS:DATA,CS:CODE DATA SEGMENT LIST DW 21H,65H,42H,43H,54H,89H COUNT EQU 05H RESULT DB 01H DUP(?) DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET LIST MOV CX,COUNT MOV AX,[SI] A1:

CMP AX,[SI+2] JNL NEXT MOV AX,[SI+2] NEXT: INC SI INC SI DEC CL JNZ A1 MOV SI,OFFSET RESULT MOV [SI],AX MOV AH,4CH INT 21H END START CODE ENDS

8.MATRIX ADDITION ASSUME DS:DATA ,CS:CODE DATA SEGMENT MAT1 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H MAT2 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H RMAT3 DW 09H DUP(?) DIM EQU 09H DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV CX,DIM MOV SI,OFFSET MAT1 MOV DI,OFFSET MAT2 MOV BX,OFFSET RMAT3 NEXT: XOR AX,AX MOV AL,[SI] ADD AL,[DI] MOV WORD PTR[BX],AX INC SI INC DI ADD BX,02 LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START

9.MATRIX MULTIPLICATION assume cs:code ds:data data segment rowcol equ 03h mat1 db 01h,01h,01h,01h,01h,01h,01h,01h,01h mat2 db 01h,00h,00h,00h,01h,00h,00h,00h,01h pmat3 dw 09h dup(?) data ends code segment start: mov ax,data mov ds,ax mov ch,rowcol mov bx,offset pmat3 mov si,offset mat1 nextrow: mov di,offset mat2 mov cl,rowcol nextcol: mov dl,rowcol mov bp,0000h mov ax,0000h sahf next_ele: mov al,[si] mul byte ptr[di] add bp,ax inc si add di,03 dec dl jnz next_ele sub di,08 sub si,03 mov [bx],bp add bx,02 dec cl jnz nextcol add si,03 dec ch jnz nextrow mov ah,4ch int 21h code ends end start 10.MATRIX SUBSTRACTION

ASSUME DS:DATA ,CS:CODE DATA SEGMENT MAT1 DB 02H,04H,06H,08H,0AH,0BH,0CH,0DH,0EH MAT2 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H RMAT3 DW 09H DUP(?) DIM EQU 09H DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV CX,DIM MOV SI,OFFSET MAT1 MOV DI,OFFSET MAT2 MOV BX,OFFSET RMAT3 NEXT: XOR AX,AX MOV AL,[SI] SUB AL,[DI] MOV WORD PTR[BX],AX INC SI INC DI ADD BX,02 LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START

11.MEMORY BLOCK TRANSFER assume cs:code ds:data data segment data ends code segment start: mov si,2000h mov di,3000h mov cx,0fh again: mov ax,[si] mov [di],ax add si,02h add di,02h dec cx jnz again hlt

code ends end start

12.PERMUTAATION assume cs:code ds:data data segment num db 05h r db 03h data ends code segment start: mov ax,data mov ds,ax mov ax,01 mov cl,num a1: mul cl loop a1 mov bx,ax mov dl,r mov cl,num sub cx,dx mov ax,01 a2: mul cl loop a2 mov dx,ax mov ax,bx div dl code ends end start

13.POSITIVE AND NEGATIVE assume cs:code ds:data data segment list dw -10,-5,5,6,4 count equ 05h data ends code segment start: mov ax,data mov ds,ax mov si,offset list mov cl,count again:

mov ax,[si] shl ax,01 jc nega: inc bx jmp next: nega: inc dx next: add si,02 dec cl jnz again: mov ah,4ch int 21h code ends end start 14.PRIME ASSUME DS:DATA,CS:CODE DATA SEGMENT MSG1: DB "NUMBER IS NOT PRIME", 0Dh,0Ah, 24h MSG2: DB "NUMBER IS PRIME", 0Dh,0Ah, 24h DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX XOR AX,AX MOV CX,02H MOV AX,02H CMP AX,01H JE A3 CMP AX,02H JE A3 MOV BL,AL DIV CL MOV CL,AL A1: MOV AX,BX DIV CL CMP AH,00H JE A2 DEC CL CMP CL,01H JE A3 JMP A1 A2: MOV DX,MSG1

JMP A4 A3: MOV DX,MSG2 JMP A4 A4: MOV AH,09H INT 21H CODE ENDS END START

15.SORT ASSUME DS:DATA,CS:CODE DATA SEGMENT LIST DB 56H,67H,42H,21H COUNT EQU 04H DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV DI,OFFSET LIST MOV DL,COUNT MOV CL,COUNT INC DI A1: MOV SI,OFFSET LIST DEC DL JZ A4 MOV AL,[DI] A2: CMP JL INC CMP JE JMP AL,[SI] NEXT SI DI,SI A3 A2

NEXT: XCHG AL,[SI] INC SI CMP DI,SI

JE A3 JMP A2 A3: INC DI XCHG AL,[SI] JMP A1 A4: MOV BL,[SI] INC SI LOOP A4 MOV AH,4CH INT 21H CODE ENDS END START 16.SQUARE ROOT Assume CS:code,DS:data Data segment num equ 16 data ends code segment start: mov mov mov mov mov up: ax,data DS,ax cl,num bl,1 al,0

cmp cl,0 jz zresult sub cl,bl inc al add bl,02 jmp up

zresult: mov ah,4ch int 21h end start code ends

17.SUM OF ARRAY

ASSUME DS:DATA ,CS:CODE DATA SEGMENT LIST DB 01H,02H,03H,04H,05H COUNT EQU 05H DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET LIST MOV AX,0H MOV CX,COUNT A1: ADD AL,[SI] INC SI LOOP A1: CODE ENDS END START

You might also like