Archive for the ‘MuP’ Category
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
Leave a Comment