Graphics

.model small
.data
buff db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1
db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1
db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
.code
mov ax,@data
mov ds,ax
mov ax,0006h
int 10h
mov si,offset buff
mov dx,0000h
l2:mov cx,0000h
l1:mov al,[si]
mov ah,0ch
int 10h
inc si
inc cx
cmp cx,000fh
jne l1
inc dx
cmp dx,0005h
jne l2

mov ah,08h
int 21h
mov ax,0003h
int 10h
mov ah,4ch
int 21h
end

Average

.model small
.data
a dw 0ffffh,0ffffh,0ffffh,00a5h,1125h,0356h,0129h,0307h,2008h,02f6h
.code
mov ax,@data
mov ds,ax
mov si,offset a
mov bx,[si]
inc si
inc si
mov dx,0000h
mov cl,09h

l1:    mov ax,[si]
add bx,ax
jnc l2
inc dx

l2:    inc si
inc si
dec cl
jnz l1

cmp dx,0000h
je l7
mov ax,bx
mov bx,000ah
div bx

mov bx,ax
mov cl,04h
mov dl,bh
rol dl,cl
and dl,0fh
cmp dl,09h
jbe l3
l3:    add dl,30h
mov ah,02h
int 21h

mov dl,bh
and dl,0fh
cmp dl,09h
jbe l4
add dl,07h
l4:    add dl,30h
mov ah,02h
int 21h

mov dl,bl
rol dl,cl
and dl,0fh
cmp dl,09h
jbe l5
add dl,07h
l5:    add dl,30h
mov ah,02h
int 21h

mov dl,bl
and dl,0fh
cmp dl,09h
jbe l6
add dl,07h

l6:    add dl,30h
mov ah,02h
int 21h
jmp en

l7:    mov cl,04h
mov ax,bx
mov bh,0ah
div bh
mov bx,ax
mov dl,bl
rol dl,cl
and dl,0fh
cmp dl,09h
jbe l8
add dl,07h

l8:    add dl,30h
mov ah,02h
int 21h

mov dl,bl
and dl,0fh
cmp dl,09h
jbe l9
add dl,07h
l9:    add dl,30h
mov ah,02h
int 21h

en:    mov ah,4ch
int 21h
end

Concatenate String

 

.model small

.data
str1 db 50 dup(‘$’)
str2 db 10,13,”$”
str3 db 10,13,”RESULT:$”
str4 db 10,13,”Enter First string:$”
str5 db 10,13,”Enter Second string:$”

.code

mov ax,@data
mov ds,ax

mov si,0000h
mov cx,0000h

lea dx,str4
mov ah,09h
int 21h

s1:    mov ah,01h
int 21h
mov str1[si],al
inc si
inc cx
cmp al,0Dh
jne s1

dec cx
dec si

lea dx,str2
mov ah,09h
int 21h

lea dx,str5
mov ah,09h
int 21h

s2:    mov ah,01h
int 21h
mov str1[si],al
inc si
inc cx
cmp al,0Dh
jne s2

dec cx
dec si
lea dx,str2
mov ah,09h
int 21h

lea dx,str3
mov ah,09h
int 21h

mov si,0000h

l2:    mov dl,str1[si]
mov ah,02h
int 21h
inc si
cmp si,cx
jbe l2

mov ah,4ch
int 21h
end

Factorial

.model small

.data
m1 db “Answer : $”
a dw 0003h

.code

mov ax,@data
mov ds,ax

lea dx,m1
mov ah,09h
int 21h

mov ax,a
mov bx,a
sub bx,01h
mov dx,0000h
mov si,0000h

c1:    mul bx
dec bx
jnz c1

mov ch,04h
mov cl,04h

l1:    rol ax,cl
mov bx,ax

mov dl,al

and dl,0fh
cmp dl,09h
jbe l2
add dl,07h
l2:    add dl,30h

mov ah,02h
int 21h

mov ax,bx

dec ch
jnz l1

mov ch,04h
mov cl,04h

mov ah,4ch
int 21h

End

GCD

.model small
.stack 100
.data
a   dw 0120
b   dw 0090
gcd dw 0h
.code
mov     ax,@data    ; initialise DS
mov     ds, ax
mov     ax,a    ; get the first number
mov     bx,b    ; get the second number
again:     cmp     ax, bx    ; check if nos are equal
je     endd    ; if equal, save the GCD
jb     exchg    ; if no,
; is AX<BX ?
; if yes interchange
l2:    mov     dx, 0
div     bx    ; check if ax is
; divisible by bx
cmp     dx, 0    ;
je     endd
mov     ax, dx    ; mov the remainder
; as no1 data
jmp     again
exchg : xchg     ax, bx
jmp l2

endd  : mov     gcd, bx
mov     ch, 04h    ; Count of digits to be
; displayed
mov     cl, 04h    ; Count to roll by 4 bits
l12:    rol     bx, cl    ; roll bl so that msb
; comes to  lsb
mov     dl, bl    ; load dl with data
; to be displayed
and     dl, 0fH    ; get only lsb
cmp     dl, 09    ; check if digit is 0-9
; or letter  A-F
jbe     l4
add     dl, 07    ; if letter add 37H else
; only add 30H
l4:       add     dl, 30H
mov     ah, 02    ; INT 21H
; (Display character)
int     21H
dec     ch    ; Decrement Count
jnz     l12
mov     ah, 4ch
int     21h
end

bcd 2 hex

.model small
.data
a dw 0099h

.code

mov ax,@data
mov ds,ax
mov bx,a
mov cl,00h
mov ax,0000h

cmp bx,0064h
jnc l5

l1:    sub bx,1000h
inc cl
cmp bx,1000h
jnc l1

l2:    add ax,03e8h
dec cl
jnz l2

l3:    sub bx,100h
inc cl
cmp bx,100h
jnc l3

l4:    add ax,64h
dec cl
jnz l4

l5:    sub bx,10h
inc cl
cmp bx,10h
jnc l5

l6:    add ax,0ah
dec cl
jnz l6

l7:    add ax,bx
mov bx,ax

mov ch,02h
mov cl,04h

mov dh,bh
mov dl,dh
rol dl,cl
and dl,0fh
cmp dl,09h
jbe l8
add dl,07h

l8:    add dl,30h
mov ah,02h
int 21h

mov dl,bh
and dl,0fh
cmp dl,09h
jbe l9
add dl,07h

l9:    add dl,30h
mov ah,02h
int 21h

mov dl,bl
rol dl,cl
and dl,0fh
cmp dl,09h
jbe l10
add dl,07h

l10:    add dl,30h
mov ah,02h
int 21h

mov dl,bl
and dl,0fh
cmp dl,09h
jbe l11
add dl,07h

l11:    add dl,30h
mov ah,02h
int 21h

mov ah,4ch
int 21h
end

hex 2 bcd

.model small
.data
a dw 0fffeh
.code
mov ax,@data
mov ds,ax
mov ax,0000h
mov dx,a
mov bx,0000h
l14:cmp dx,2710h
jb l35
sub dx,2710h
add ax,1000h
ja l14

l35:cmp dx,03e8h
ja l11
cmp dx,64h
ja l22
cmp dx,10h
ja l33
l11:mov ch,00h
l1:sub dx,03e8h
inc ch
cmp dx,03e8h
ja l1

l3:add bx,1000h
dec ch
jnz l3
l22:mov ch,00h

l4:sub dx,64h
inc ch
cmp dx,64h
ja l4

l5:add bx,100h
dec ch
jnz l5

l33:mov ch,00h
l6:sub dx,0ah
inc ch
cmp dx,0ah
ja l6

l7:add bx,10h
dec ch
jnz l7
add bx,dx
mov dl,ah
rol dl,04h
and dl,0fh
cmp dl,09h
jbe l117
add dl,07h
l117:add dl,30h
mov ah,02h
int 21h
mov dl,bh
rol dl,04h
and dl,0fh
cmp dl,09h
jbe l17
add dl,07h
l17:add dl,30h
mov ah,02h
int 21h

mov dl,bh
and dl,0fh
cmp dl,09h
jbe l8
add dl,07h
l8:add dl,30h
mov ah, 02h
int 21h

mov dl,bl
rol dl,04h
and dl,0fh
cmp dl,09h

jbe l9
add dl,07h
l9:add dl,30h
mov ah,02h
int 21h

mov dl,bl
and dl,0fh
cmp dl,09h
jbe l10
add dl,07h
l10:add dl,30h
mov ah, 02h
int 21h
mov ah,4ch
int 21h
end

Matrix Addition

.model small
.data
matrix1 db 01h,02h,03h,04h
matrix2 db 05h,06h,07h,08h
nline db 10,13,”$”
msg1 db 10,13,”MATRIX A IS:$”
msg2 db 10,13,”MATRIX B IS:$”
msg3 db 10,13,”MATRIX C IS:$”
.code
mov ax,@data
mov ds,ax
mov si,offset matrix1
mov di,offset matrix2
mov cl,02h
lea dx,msg1
mov ah,09h
int 21h
lea dx,nline
int 21h
l2:mov ch,02h
l1:mov dl,[si]
rol dl,04h
and dl,0fh
cmp dl,09h
jbe a1
add dl,07h
a1:add dl,30h
mov ah,02h
int 21h
mov dl,[si]
and dl,0fh
cmp dl,09h
jbe a2
add dl,07h
a2:add dl,30h
mov ah,02h
int 21h
mov dl,’ ‘
int 21h
inc si
dec ch
jnz l1
mov ah,09h
lea dx,nline
int 21h
dec cl
jnz l2
mov ah,09h
lea  dx,nline
int 21h
lea dx,msg2
mov ah,09h
int 21h
lea dx,nline
int 21h
mov ch,02h
l4:mov cl,02h
l3:mov dl,[di]
rol dl,04h
and dl,0fh
cmp dl,09h
jbe a3
add dl,07h
a3:add dl,30h
mov ah,02h
int 21h
mov dl,[di]

and dl,0fh
cmp dl,09h
jbe a4
add dl,07h
a4:add dl,30h
mov ah,02h
int 21h
mov dl,’ ‘
int 21h
inc di
dec cl
jnz l3

mov ah,09h
lea dx,nline
int 21h
dec ch
jnz l4
lea dx,nline
mov ah,09h
int 21h
lea dx,msg3
mov ah,09h
int 21h
lea dx,nline
int 21h
mov si,offset matrix1
mov di,offset matrix2
mov cl,02h
l8:mov ch,02h

l7:mov bh,[si]
add bh,[di]
mov dl,bh
rol dl,04h
and dl,0fh
cmp dl,09h
jbe l5
add dl,07h
l5:add dl,30h
mov ah,02h
int 21h
mov dl,bh
and dl,0fh
cmp dl,09h
jbe l6
add dl,07h
l6:add dl,30h
mov ah,02h
int 21h
mov dl,’ ‘
int 21h
inc si
inc di
dec ch
jnz l7
lea dx,nline
mov ah,09h
int 21h
dec cl
jnz l8
mov ah,4ch
int 21h
end

MAtrix display

.model small
.data
a dw 1111h,2222h,3333h,000ah,000bh,000ch,000dh,000eh,000fh
b dw 4444h,5555h,6666h,0100h,0200h,0300h,0400h,0500h,0600h
nline db 10,13,”$”
.code
mov ax,@data
mov ds,ax
mov si,offset a
mov di,offset b
mov dh,09h
mov bp,0003h;outerloop
rep2:mov ch,03h;innerloop
rep1:mov dx,[si]
mov bx,[di]
sub bx,dx
mov cl,04h
mov dh,04h
beta:rol bx,cl
mov dl,bl
and dl,0fh
cmp dl,09h
jbe alpha
add dl,07h
alpha:add dl,30h
mov ah,02h
int 21h
dec dh
jnz beta
mov dl,’ ‘
int 21h
inc si
inc si
inc di
inc di
dec ch
jnz rep1
mov ah,09h
lea dx,nline
int 21h
dec bp
jnz rep2
mov ah,4ch
int 21h
end

multiply 16 bit-by repeated addition

.model small

.data

a dw 6666h
b dw 4444h

.code
mov ax,@data
mov ds,ax
mov cx,b
mov ax,a

rep1:add bx,ax
jnc rep2
inc dx

rep2:dec cx
jnz rep1
mov si,bx
mov bx,dx
sub bx,0dc0h
mov bp,0002h
mov cl,04h
mov ch,04h
jmp l2

l3:mov ch,04h
mov bx,si
l2:rol bx,cl
mov dh,bl
and dh,0fh
cmp dh,09h
jbe l1
add dh,07h
l1: add dh,30h
mov dl,dh
mov ah,02h
int 21h

dec ch
jnz l2

dec bp
jnz l3

mov ah,4ch
int 21h
end

Next Page »