You are on page 1of 11

3)

data segment
num1 dw 9298h
num2 dw 4645h
sum dw ?
carry dw ?
diff dw ?
borrow dw ?
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
lea si,num1
lea di,num2
lea bx,sum
mov cl,2
clc
next: mov ax, [si]
adc ax,[di]
daa
mov [bx],ax
inc si
inc di
inc bx
dec cl
jnz next
jnc next1
inc byte ptr carry
next1: lea si,num1
lea di, num2
lea bx, diff
mov cl,2
clc
again: mov ax,[si]
sbb ax,[di]
das
mov [bx],ax
inc si
inc di
inc bx
dec cl
jnz again
jnc again1
dec byte ptr borrow
again1: hlt
code ends
end start

4a)
data segment
op1 dw 9bc2h
op2 dw 0a3f1h
prod dd ?
quo dw ?
rem dw ?
data ends
code segment
assume cs:code, ds:data
start: mov ax,data
mov ds,ax

mov ax,op1
mov bx,op2
mul bx
mov prod,ax
mov [prod+2],dx

mov ax,op1
cwd
div bx
mov quo,ax
mov rem,dx
hlt
code ends
end start

4b)

data segment
op1 db 0f6h
op2 db 24h
prod dw ?
quo db ?
rem db ?
data ends
code segment
assume cs:code, ds:data
start:mov ax,data
mov ds,ax

mov al,op1
mov bl,op2

imul bl
mov prod,ax
;mov [prod+l],dx

mov al,op1
cbw
idiv bl
mov quo,al
mov rem,ah
hlt
code ends
end start

4c)

data segment
op1 dw 0f349h
op2 dw 0a298h
prod dd ?
quo dw ?
rem dw ?
data ends
code segment
assume cs:code, ds:data
start: mov ax,data
mov ds,ax

mov ax,op1
mov bx,op2
imul bx
mov prod,ax
mov [prod+2],dx

mov ax,op1
cwd
idiv bx
mov quo,ax
mov rem,dx
hlt
code ends
end start

4d)
data segment
op1 dw 0f349h
op2 dw 0a298h
prod dd ?
quo dw ?
rem dw ?
data ends
code segment
assume cs:code, ds:data
start: mov ax,data
mov ds,ax

mov ax,op1
mov bx,op2
mul bx
mov prod,ax
mov [prod+2],dx

mov ax,op1
cwd
div bx
mov quo,ax
mov rem,dx
hlt
code ends
end start

5)
data segment
p db 5
q db 4
r db 9
s db -2
t db 7
ans db ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov al,q
imul r
cbw
idiv s
add al,p
sub al,t
mov ans,al
hlt
code ends
end start

6)
data segment
codelist db 3fh,06h,5bh,4fh,66h,6dh,7dh,27h,7fh,6fh
char db 5
codec db ?
data ends
code segment
assume ds:data,cs:code
start: mov ax,data
mov ds,ax
lea bx,codelist
mov al,char
xlat
mov codec,al
hlt
code ends
end start

7)
data segment
byte equ 'a'
string db 'microprocessor8086'
count equ ($-string)
yes db 'char is found $'
no db 'char is not fount $'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov es,ax
mov di,offset string
mov cx,count
mov bx,0
mov al,byte
cld
scan: nop
repne scasb
jnz exit
mov bx,di
lea dx,yes
mov ah,09h
int 21h
jmp exit1

exit: lea dx,no


mov ah,09h
int 21h
exit1:hlt
code ends
end start

8)
data segment
list db 54h,47h,38h,26h,46h
count equ ($-string)
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov dx, count-1
repeat: mov si,offset list
mov cx,dx
again: mov al,[si]
cmp al,[si+1]
jc next
xchg al,[si+1]
xchg al,[si]
next: inc si
loop again
dec dx
jnz repeat
hlt
code ends
end start

9
a)
code segment
assume cs:code
start: mov dx,0004h
mov ax,0249h
out dx,ax
call delay
mov ax,0492h
out dx,ax
call delay
mov ax,0924h
out dx,ax
call delay
jmp start

delay:mov cx,00ffh

again:dec cx
jnz again
ret
hlt
code ends
end start

b)
code segment
assume cs:code
start: mov dx,0004h
mov ax,030ch
out dx,ax
call delay
mov ax,0492h
out dx,ax
call delay
mov ax,0861h
out dx,ax
call delay
jmp start

delay:mov cx,00ffh

again:dec cx
jnz again
ret
hlt
code ends
end start

c)
code segment
assume cs:code
start: mov dx,0004h
mov ax,0249h
out dx,ax
call delay
mov ax,0002h
out dx,ax
call delay
mov ax,0004h
out dx,ax
call delay
mov ax,0010h
out dx,ax
call delay
mov ax,0020h
out dx,ax
call delay
mov ax,0080h
out dx,ax
call delay
mov ax,0100h
out dx,ax
call delay
mov ax,0400h
out dx,ax
call delay
mov ax,0800h
out dx,ax
call delay
jmp start

delay:mov cx,00ffh

again:dec cx
jnz again
ret
hlt
code ends
end start

d)
code segment
assume cs:code
start: mov dx,0004h
mov ax,0249h
out dx,ax
call delay
mov ax,024ah
out dx,ax
call delay
mov ax,024ch
out dx,ax
call delay
mov ax,0252h
out dx,ax
call delay
mov ax,0261h
out dx,ax
call delay
mov ax,0291h
out dx,ax
call delay
mov ax,0309h
out dx,ax
call delay
mov ax,0489h
out dx,ax
call delay
mov ax,0489h
out dx,ax
call delay
jmp start

delay:mov cx,00ffh

again:dec cx
jnz again
ret
hlt
code ends
end start

A)
data segment
list dw 2579h,0a500h,0c009h,0159h,0b900h
count equ ($-list)/2
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
xor bx,bx
xor dx,bx
mov cl,count
mov si,offset list
again:mov ax,[si]
shl ax,01
jc negative
inc bx
jmp next
negative:inc dx
next:add si,02
dec cl
jnz again
mov ah,4ch
int 21h
code ends
end start

B)
data segment
list db 52h,23h,56h,45h,12h,42h,32h,65h,11h,22h
count equ ($-list)
max db ?
min db ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov si,offset list
mov cl,count
mov al,[si]
again:cmp al,[si+1]
jnc next
mov al,[si+1]
next:inc si
dec cl
jnz again
mov si,offset max
mov [si],al
mov ah,4ch
;int 21h
mov si,offset list
mov cl,count
mov al,[si]
again1:cmp al,[si+1]
jc next1
mov al,[si+1]
next1:inc si
dec cl
jnz again1
mov si,offset min
mov [si],al
mov ah,4ch
int 21h
code ends
end start

10a) NEARCALL
data segment
op1 db 65h
op2 db 87h
res dw ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov al,op1
mov bl,op2
call mulnear
mov res,ax
hlt
mulnear proc near
mul bl
ret
mulnear endp
code ends
end start

10b) FARCALL
data segment
op1 db 6h
op2 db 87h
res dw ?
data ends

code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov al,op1
mov bl,op2
call far mulfar
mov res,ax
hlt
code ends

code1 segment
assume cs:code1,ds:data
mulfar proc far
mul bl
ret
mulfar endp
end
code1 ends
end start

10c) MACRO
data segment
; op1 db 65h
; op2 db 87h
res dw 0
data ends
code segment
assume cs:code,ds:data
multi macro op1,op2,res
mov al,op1
mov bl,op2
mul bl
mov res,ax
endm

start:mov ax,data
mov ds,ax
multi 65h,87h,res
hlt
code ends
end start

11)
data segment
num1 db 98h
num2 db 49h
sum db 0
carry db 0
diff db 0
borrow db 0
prod dw 0
quo db 0
rem db 0
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov al,num1
add al,num2
mov sum,al
jnc next
inc carry
next:mov al,num1
sub al,num2
mov diff,al
jnc next1
dec borrow
next1:mov al,num1
imul num2
mov prod,ax
mov al,num1
cbw
idiv num2
mov quo,al
mov rem,ah
hlt
code ends
end start

12)
data segment
num dw 6h
res dd 0
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
call fact
mov res,ax
hlt
fact proc near
mov cl,05h
mov ax,num
mov bx,num
again:dec bx
mul bx
dec cl
jnz again
mov res,ax
ret
fact endp
code ends
end start

You might also like