Professional Documents
Culture Documents
.model: Model is an assembler directive. It is to inform the assembler that how many
logical segments are used in the program.
.model tiny: In this model all the memory is treated as single segment.
.model small: In this model we have one code segment and one data segment.
.model large: In this model we have two code segments and two data segments.
Ends: It is an assembler directive which informs the assembler that it is the end of the
segment.
Masm: To convert the source code into object code and show errors.
Syntax: masm filename.asm
g: go(complete execution).
MASM Programs - 1
8-bit Addition
code:-
.model small
.code
main proc
mov al,02h
mov bl,05h
add al,bl
hlt
main endp
end main
output:-
ax=0007
output:-
-eds:5000 5
-eds:4000 4
ax=0009
8-bit Subtraction
code:-
.model small
.code
main proc
mov al,12h
mov bl,21h
sub al,bl
hlt
main endp
end main
output:-
ax=00f1
output:-
-eds:2145 10
-eds:5432 4
ax=000c
8-bit Multiplication
code:-
.model small
.code
main proc
mov al,12h
mov bl,15h
mul al,bl
hlt
main endp
end main
output:-
ax=017a
8-bit Division
code:-
.model small
.code
main proc
mov al,10h
mov bl,02h
div bl
hlt
main endp
end main
output:-
ax=0008
16-bit Addition
code:-
.model small
.code
main proc
mov ax,0245h
mov bx,0436h
add ax,bx
hlt
main endp
end main
output:-
ax=067b
16-bit Subtraction
code:-
.model small
.code
main proc
mov ax,0245h
mov bx,0324h
sub ax,bx
hlt
main endp
end main
output:-
ax=ff21
16-bit Multiplication
code:-
.model small
.code
main proc
mov ax,0245h
mov bx,0123h
mul ax,bx
hlt
main endp
end main
output:-
ax=946f
output:-
-eds:5112 12 21
-eds:1224 22 13
ax=ba64
16-bit Division
code:-
.model small
.code
main proc
mov ax,0245h
mov bx,0124h
div bx
hlt
main endp
end main
output:-
ax=0001
output:-
-eds:2432 44 24
-eds:5413 22 22
ax=0001
Factorial
code:-
.model small
.code
main proc
mov cl,05h
mov al,cl
dec cl
go:mul cl
loop go
hlt
main endp
end main
output:-
ax=0078
output:-
-eds:2000 05 00
ax=0078
MASM Programs - 2
Sum of Numbers
code:-
.model small
.code
main proc
mov si,2000h
mov cl,04h
mov al,[si]
repeat:inc si
add al,[si]
loop repeat
hlt
main endp
end main
output:-
-eds:2000 08 06 0a 04 03
ax=001f
Average of Numbers
code:-
.model small
.code
main proc
mov si,2000h
mov cl,04h
mov bl,05h
mov al,[si]
repeat:inc si
add al,[si]
loop repeat
div bl
hlt
main endp
end main
output:-
-eds:2000 02 04 05 03 06
ax=0004
Sum of Squares
code:-
.model small
.code
main proc
mov si,3000h
mov cl,[si]
mov bx,00h
next:mov al,cl
mul cl
add bx,ax
dec cl
jnz next
hlt
main endp
end main
output:-
-eds:3000 04
bx=001e
Sum of Cubes
code:-
.model small
.code
main proc
mov si,3000h
mov cl,[si]
mov bx,00h
next:mov al,cl
mul cl
mul cl
add bx,ax
dec cl
jnz next
hlt
main endp
end main
output:-
-eds:3000 04
bx=0064
Ascending Order
code:-
.model small
.code
main proc
mov si,2000h
mov bl,05h
dec bl
go:mov cl,bl
repeat:mov al,[si]
inc si
cmp al,[si]
jb next
xchg al,[si]
dec si
mov [si],al
inc si
next:loop repeat
mov si,2000h
dec bl
jnz go
hlt
main endp
end main
output:-
-eds:2000 06 08 04 03 01
-dds:2000 01 03 04 06 08
Descending Order
code:-
.model small
.code
main proc
mov si,2000h
mov bl,05h
dec bl
go:mov cl,bl
repeat:mov al,[si]
inc si
cmp al,[si]
ja next
xchg al,[si]
dec si
mov [si],al
inc si
next:loop repeat
mov si,2000h
dec bl
jnz go
hlt
main endp
end main
output:-
-eds:2000 0f 03 0a 09 05
-dds:2000 0f 0a 09 05 03
Maximum of Numbers
code:-
.model small
.code
main proc
mov si,2000h
mov cl,05h
mov al,[si]
inc si
go:cmp al,[si]
jb next
jmp next1
next:mov al,[si]
next1:inc si
loop go
hlt
main endp
end main
output:-
-eds:2000 23 45 12 56 32 67
ax=0067
Minimum of Numbers
code:-
.model small
.code
main proc
mov si,3000h
mov cl,04h
mov al,[si]
inc si
go:cmp al,[si]
ja next
jmp next1
next:mov al,[si]
next1:inc si
loop go
hlt
main endp
end main
output:-
-eds:3000 23 45 12 56 32
ax=0012
Sum of Numbers
code:-
.model small
.code
main proc
mov si,2000h
mov cl,04h
mov al,[si]
repeat:inc si
add al,[si]
loop repeat
hlt
main endp
end main
output:-
-eds:2000 08 06 0a 04 03
ax=001f
Average of Numbers
code:-
.model small
.code
main proc
mov si,2000h
mov cl,04h
mov bl,05h
mov al,[si]
repeat:inc si
add al,[si]
loop repeat
div bl
hlt
main endp
end main
output:-
-eds:2000 02 04 05 03 06
ax=0004
Sum of Squares
code:-
.model small
.code
main proc
mov si,3000h
mov cl,[si]
mov bx,00h
next:mov al,cl
mul cl
add bx,ax
dec cl
jnz next
hlt
main endp
end main
output:-
-eds:3000 04
bx=001e
Sum of Cubes
code:-
.model small
.code
main proc
mov si,3000h
mov cl,[si]
mov bx,00h
next:mov al,cl
mul cl
mul cl
add bx,ax
dec cl
jnz next
hlt
main endp
end main
output:-
-eds:3000 04
bx=0064
Ascending Order
code:-
.model small
.code
main proc
mov si,2000h
mov bl,05h
dec bl
go:mov cl,bl
repeat:mov al,[si]
inc si
cmp al,[si]
jb next
xchg al,[si]
dec si
mov [si],al
inc si
next:loop repeat
mov si,2000h
dec bl
jnz go
hlt
main endp
end main
output:-
-eds:2000 06 08 04 03 01
-dds:2000 01 03 04 06 08
Descending Order
code:-
.model small
.code
main proc
mov si,2000h
mov bl,05h
dec bl
go:mov cl,bl
repeat:mov al,[si]
inc si
cmp al,[si]
ja next
xchg al,[si]
dec si
mov [si],al
inc si
next:loop repeat
mov si,2000h
dec bl
jnz go
hlt
main endp
end main
output:-
-eds:2000 0f 03 0a 09 05
-dds:2000 0f 0a 09 05 03
Maximum of Numbers
code:-
.model small
.code
main proc
mov si,2000h
mov cl,05h
mov al,[si]
inc si
go:cmp al,[si]
jb next
jmp next1
next:mov al,[si]
next1:inc si
loop go
hlt
main endp
end main
output:-
-eds:2000 23 45 12 56 32 67
ax=0067
Minimum of Numbers
code:-
.model small
.code
main proc
mov si,3000h
mov cl,04h
mov al,[si]
inc si
go:cmp al,[si]
ja next
jmp next1
next:mov al,[si]
next1:inc si
loop go
hlt
main endp
end main
output:-
-eds:3000 23 45 12 56 32
ax=0012
Logical AND
code:-
.model small
.code
main proc
mov ax,3f0f h
mov bx,0008h
and ax,bx
hlt
main endp
end main
output:-
ax=0008
Logical OR
code:-
.model small
.code
main proc
mov ax,3F0Fh
mov bx,0008h
or ax,bx
hlt
main endp
end main
output:-
ax=3f0f
Logical NOT
code:-
.model small
.code
main proc
mov ax,3F0Fh
not ax,bx
hlt
main endp
end main
output:-
ax=c0f0
Logical XOR
code:-
.model small
.code
main proc
mov ax,3F0Fh
mov bx,0008h
xor ax,bx
hlt
main endp
end main
output:-
ax=3f07
Length of String
code:-
.model small
.stack 100h
.data
a db 'chandra'
b dw $-a
.code
main proc
mov ax,@data
mov ds,ax
mov si,offset a
mov cx,b
int 21h
main endp
end main
output:-
cx=0007
Display a String
code:-
.model small
.stack 100h
.data
a db 'abcd'
b dw $-a
.code
main proc
mov ax,@data
mov ds,ax
mov si,offset a
mov cx,b
repeat:mov dl,[si]
mov ah,02h
int 21h
inc si
loop repeat
mov ah,04h
int 21h
main endp
end main
output:-
abcd
Reverse a String
code:-
.model small
.stack 100h
.data
a db 'abcd'
b dw $-a
.code
main proc
mov ax,@data
mov ds,ax
mov si,offset a
mov cx,b
add si,cx
dec si
repeat:mov dl,[si]
mov ah,02h
int 21h
dec si
loop repeat
mov ah,04h
int 21h
main endp
end main
output:-
dcba
Palindrome Number
code:-
.model small
.code
main proc
mov si,4000h
mov cl,04h
mov ax,[si]
mov bx,[si]
xchg al,ah
ror al,cl
ror ah,cl
cmp ax,bx
jc next
mov dl,00h
jz exit
next:mov dl,01h
exit:hlt
main endp
end main
output:-
-eds:4000 12 21
dx=0000
FAQ - 1
1. Define microprocessor?
A microprocessor is a multipurpose, programmable, clock-driven, register-
based electronic device that reads binary instructions from a storage
device called memory accepts binary data as input and processes data
according to instructions, and provides result as output.
2. Define microcomputer?
A computer that is designed using a microprocessor as its CPU. It
includes microprocessor, memory, and I/O.
3. Define ROM?
A memory that stores binary information permanently. The information
can be read from this memory but cannot be altered.
4. What is an ALU?
The group of circuits that provides timing and signals to all operation in
the computer and controls data flow.
5. Define small-scale integration?
The process of designing a few circuits on a single chip. The term refers
to the technology used to fabricate logic gates on a chip.
6. What is an instruction?
An instruction is a binary pattern entered through an input device in
memory to command the microprocessor to perform specific function.
7. What are the four primary operations of a MPU?
a. Memory read
b. Memory write
c. I/O read
d. I/O write
8. What do you mean by address bus?
The 8085 MPU with its 14-bit address is capable of addressing 214
=16,384 (ie) 16K memory locations.
10. Why is the data bus bi-directional?
The data bus is bi-directional because the data flow in both directions
between the MPU and memory and peripheral devices.